Skip to content
Snippets Groups Projects

Local itk-vtk-viewer

5 files
+ 96
46
Compare changes
  • Side-by-side
  • Inline

Files

+ 26
4
from pathlib import Path
import os
import platform
import qim3d
class NotInstalledError(Exception): pass
SOURCE_FNM = "fnm env --use-on-cd | Out-String | Invoke-Expression;"
def get_dir() -> Path:
qim_dir = Path(qim3d.__file__).parents[0] #points to .../qim3d/qim3d/
dir = qim_dir.joinpath("viz/itk_vtk_viewer")
@@ -17,15 +20,34 @@ def get_nvm_dir(dir:Path = None) -> Path:
def get_node_binaries_dir(nvm_dir:Path = None) -> Path:
"""
Versions could change in time. This makes sure we use the newest one.
For windows we have to pass the argument nvm_dir and it is the itk-vtk_dir
"""
following_folder = "versions/node"
if platform.system() == "Linux":
following_folder = "versions/node"
binaries_folder = 'bin'
elif platform.system() == 'Windows':
following_folder = 'node-versions'
binaries_folder = 'installation'
node_folder = nvm_dir.joinpath(following_folder) if nvm_dir is not None else get_nvm_dir().joinpath(following_folder)
l = sorted(os.listdir(node_folder))
try:
l = sorted(os.listdir(node_folder))
except FileNotFoundError:
raise NotInstalledError
for name in l[::-1]:
path = node_folder.joinpath(name)
if os.path.isdir(path):
return path.joinpath("bin")
return path.joinpath(binaries_folder)
def get_viewer_dir(dir:Path = None) -> Path:
following_folder = "viewer_app"
return dir.joinpath(following_folder) if dir is not None else get_dir().joinpath(following_folder)
def get_viewer_binaries(viewer_dir:Path = None) -> Path:
following_folder1 = 'node_modules'
following_folder2 = '.bin'
if viewer_dir is None:
viewer_dir = get_viewer_dir()
return viewer_dir.joinpath(following_folder1).joinpath(following_folder2)
\ No newline at end of file
Loading