Skip to content

Commit e3719dc

Browse files
committed
v2.5.8
1 parent 54e6deb commit e3719dc

File tree

21 files changed

+51
-47
lines changed

21 files changed

+51
-47
lines changed

src/ltrace/ltrace/remote/handlers/InstanceSegmenterHandler.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import re
44
import shutil
55
from datetime import datetime
6-
from pathlib import Path, PurePosixPath, WindowsPath
6+
from pathlib import Path, PurePosixPath
77
from typing import Any, Callable
88

99
import numpy as np
@@ -21,7 +21,7 @@
2121
generateName,
2222
separateLabelmapVolumeIntoSlices,
2323
maskInputWithROI,
24-
LazyLoad2
24+
LazyLoad2,
2525
)
2626

2727
ThinSectionInstanceSegmenter = LazyLoad2("ThinSectionInstanceSegmenter.ThinSectionInstanceSegmenter")
@@ -30,7 +30,7 @@
3030

3131
class ThinSectionInstanceSegmenterExecutionHandler:
3232
REMOTE_DIR = PurePosixPath("/nethome/drp")
33-
NFS_DIR = WindowsPath("\\\\dfs.petrobras.biz\\cientifico\\cenpes\\res\\drp")
33+
NFS_DIR = Path(r"\\dfs.petrobras.biz\cientifico\cenpes\res\drp")
3434

3535
job_id_pattern = re.compile("job_id = ([a-zA-Z0-9]+)")
3636

@@ -386,7 +386,9 @@ def __call__(self, results):
386386
helpers.updateSegmentationFromLabelMap(outNode, labelmapVolumeNode=node)
387387
Segmenter.revertColorTable(invmap, outNode)
388388

389-
Segmenter.setupResultInScene(outNode, referenceNode, None, croppedReferenceNode=tmpReferenceNode)
389+
Segmenter.setupResultInScene(
390+
outNode, referenceNode, None, croppedReferenceNode=tmpReferenceNode
391+
)
390392
outNode.GetDisplayNode().SetVisibility(True)
391393

392394
slicer.mrmlScene.RemoveNode(node)
@@ -441,4 +443,4 @@ def __call__(self, results):
441443
except Exception as e:
442444
tmpPrefix = outputPrefix.replace("LabelMap.nrrd", "TMP_*")
443445
clearPattern(tmpPrefix)
444-
raise
446+
raise

src/ltrace/ltrace/remote/handlers/PUCModelExecutionHandler.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import shutil
33
from typing import Any, Callable
44
import re
5-
from pathlib import Path, PurePosixPath, WindowsPath
5+
from pathlib import Path, PurePosixPath
66

77
import slicer
88

@@ -14,7 +14,7 @@
1414
class PUCModelExecutionHandler:
1515
REMOTE_DIR = PurePosixPath("/nethome/drp")
1616
# TODO handle linux cases
17-
NFS_DIR = WindowsPath("\\\\dfs.petrobras.biz\\cientifico\\cenpes\\res\\drp")
17+
NFS_DIR = Path(r"\\dfs.petrobras.biz\cientifico\cenpes\res\drp")
1818

1919
job_id_pattern = re.compile("job_id = ([a-zA-Z0-9]+)")
2020

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
from .OneResultSlurm import OneResultSlurmHandler
2-
from .MonaiLabelServerHandler import MonaiLabelServerHandler
2+
from .MonaiLabelServerHandler import MonaiLabelServerHandler

src/ltrace/ltrace/remote/jobs.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class JobManager:
2121
worker: Thread = None
2222
endstates = set(("FAILED", "CANCELLED", "IDLE", "DONE"))
2323
compilers = {}
24+
keep_working: bool = True
2425

2526
read_lock = Lock()
2627

@@ -38,7 +39,9 @@ def mount(cls, job: JobExecutor):
3839
except Exception as e:
3940
logging.error(f"Failed to mount job {job.uid}. Cause: {repr(e)}")
4041

41-
return job
42+
@staticmethod
43+
def keepWorking():
44+
return JobManager.keep_working
4245

4346
@classmethod
4447
def register(cls, key: str, compiler: Callable):
@@ -281,7 +284,7 @@ def loadjson(path: Path):
281284

282285
def start_monitor():
283286
def jobspy():
284-
while True:
287+
while JobManager.keepWorking():
285288
try:
286289
uid, event = JobManager.agenda.get()
287290
JobManager.communicate(uid, event)

src/ltrace/ltrace/slicer/helpers.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2350,6 +2350,7 @@ def __getattr__(self, name):
23502350

23512351
return getattr(self.module, name)
23522352

2353+
23532354
def checkUniqueNames(nodes):
23542355
nodeNames = set()
23552356
for node in nodes:

src/ltrace/ltrace/slicer/project_manager.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -359,23 +359,22 @@ def __hasWriteAccess(self, path: Path) -> bool:
359359
except (PermissionError, IOError):
360360
return False
361361

362-
def getWritableStorageInfo(self, userHome: Path) -> int:
362+
def getWritableStorageInfo(self, storageDestination: Path) -> int:
363363
"""Get writable storage information for the user home directory."""
364364

365-
if self.__hasWriteAccess(userHome):
366-
usage = psutil.disk_usage(userHome.as_posix())
365+
if self.__hasWriteAccess(storageDestination):
366+
usage = psutil.disk_usage(storageDestination.as_posix())
367367
return usage.free
368368
else:
369-
logging.error(f"Warning: No write access to {userHome}!")
369+
logging.error(f"Warning: No write access to {storageDestination}!")
370370
return 0
371371

372372
def __validateProjectIsWritable(self, scenePath: str) -> bool:
373373
"""Checks if project can be written and if has enough space for expected files sizes"""
374374
try:
375-
userHomeDirectory = Path.home()
376-
hdSize = self.getWritableStorageInfo(userHomeDirectory)
375+
hdSize = self.getWritableStorageInfo(Path(scenePath).parent)
377376
sceneSize = self.__listAllStorableNodes(scenePath)
378-
377+
print(f"hdSize: {hdSize}, sceneSize: {sceneSize}", scenePath)
379378
if hdSize <= sceneSize:
380379
logging.error(
381380
f"Not enough space in drive ({naturalsize(hdSize)}) for scene ({naturalsize(sceneSize)})."

src/ltrace/ltrace/slicer/widget/help_button.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,26 @@
77
from ltrace.slicer_utils import getResourcePath
88
import re
99

10+
1011
def is_url(url: str) -> bool:
1112
if url is None:
1213
return False
1314

1415
return re.match(r"^(?:https|file)s?://", url) is not None
1516

17+
1618
class HelpButton(qt.QToolButton):
1719

1820
DEFAULT_URL = (getResourcePath("manual") / "index.html").as_posix()
1921

20-
def __init__(self, message: str = None, url: str = None, replacer: typing.Union[None, typing.Callable] = None, *args, **kwargs) -> None:
22+
def __init__(
23+
self,
24+
message: str = None,
25+
url: str = None,
26+
replacer: typing.Union[None, typing.Callable] = None,
27+
*args,
28+
**kwargs,
29+
) -> None:
2130
super().__init__(*args, **kwargs)
2231

2332
if not is_url(url):

src/modules/AppContext/AppContext.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,6 @@ def __init__(self, projectManager):
205205
self.nodeAddedObserverHandler = None
206206

207207
def __del__(self):
208-
super().__del__()
209208
slicer.mrmlScene.RemoveObserver(self.startCloseSceneObserverHandler)
210209
slicer.mrmlScene.RemoveObserver(self.endCloseSceneObserverHandler)
211210
slicer.mrmlScene.RemoveObserver(self.nodeAddedObserverHandler)

src/modules/ImageLogCustomSegmenter/ImageLogCustomSegmenter.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,3 @@ def dispatch(self, image, coi: str, depthInterval: typing.Iterable[np.uint32], o
342342
job_name = f"segmentation: {outputPrefix} ({coi}, {depthInterval})"
343343

344344
slicer.modules.RemoteServiceInstance.cli.run(cmd_handler, name=job_name, job_type="pucnet")
345-
346-
347-

src/modules/ImageLogCustomSegmenter/ImageLogCustomSegmenterRemoteTask/PUCModelExecutionHandler.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import shutil
33
from typing import Any, Callable
44
import re
5-
from pathlib import Path, PurePosixPath, WindowsPath
5+
from pathlib import Path, PurePosixPath
66

77
import slicer
88

@@ -14,7 +14,7 @@
1414
class PUCModelExecutionHandler:
1515
REMOTE_DIR = PurePosixPath("/nethome/drp")
1616
# TODO handle linux cases
17-
NFS_DIR = WindowsPath("\\\\dfs.petrobras.biz\\cientifico\\cenpes\\res\\drp")
17+
NFS_DIR = Path(r"\\dfs.petrobras.biz\cientifico\cenpes\res\drp")
1818

1919
job_id_pattern = re.compile("job_id = ([a-zA-Z0-9]+)")
2020

0 commit comments

Comments
 (0)