Skip to content

Commit

Permalink
ENH : group pip aso
Browse files Browse the repository at this point in the history
  • Loading branch information
GaelleLeroux authored and allemangD committed Jan 29, 2024
1 parent 0df833f commit 6b13ba9
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 22 deletions.
36 changes: 35 additions & 1 deletion ASO/ASO.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,48 @@
QGridLayout,
QMediaPlayer,
)
import pkg_resources
from slicer.ScriptedLoadableModule import *
from slicer.util import VTKObservationMixin
from slicer.util import VTKObservationMixin,pip_install
from functools import partial
import platform

from ASO_Method.IOS import Auto_IOS, Semi_IOS
from ASO_Method.CBCT import Semi_CBCT, Auto_CBCT
from ASO_Method.Method import Method
from ASO_Method.Progress import Display

def check_lib_installed(lib_name, required_version=None):
try:
installed_version = pkg_resources.get_distribution(lib_name).version
if required_version and installed_version != required_version:
return False
return True
except pkg_resources.DistributionNotFound:
return False

# import csv

def install_function():
libs = [('vtk', None), ('torch', None), ('monai', None),('pytorch_lightning',None),('dicom2nifti',None)]
libs_to_install = []
for lib, version in libs:
if not check_lib_installed(lib, version):
libs_to_install.append((lib, version))

if libs_to_install:
message = "The following libraries are not installed or need updating:\n"
message += "\n".join([f"{lib}=={version}" if version else lib for lib, version in libs_to_install])
message += "\n\nDo you want to install/update these libraries?\n Doing it could break other modules"
user_choice = slicer.util.confirmYesNoDisplay(message)

if user_choice:
for lib, version in libs_to_install:
lib_version = f'{lib}=={version}' if version else lib
pip_install(lib_version)
else :
return False
return True

class ASO(ScriptedLoadableModule):
"""Uses ScriptedLoadableModule base class, available at:
Expand Down Expand Up @@ -817,6 +850,7 @@ def enableCheckbox(self):
"""

def onPredictButton(self):
install_function()
"""Function to launch the prediction"""
error = self.ActualMeth.TestProcess(
input_folder=self.ui.lineEditScanLmPath.text,
Expand Down
24 changes: 8 additions & 16 deletions ASO_CBCT/ASO_CBCT_utils/Net.py
Original file line number Diff line number Diff line change
@@ -1,29 +1,21 @@
from slicer.util import pip_install, pip_uninstall

#try to upgrade pip
try:
pip_install("pip -q --upgrade")
except:
pass


try:
import torch
except ImportError:
pip_install('torch')
import torch


import torch


import torch.nn as nn
import torch.optim as optim

try:
import pytorch_lightning as pl
except ImportError:
pip_install("pytorch_lightning -q")
import pytorch_lightning as pl

pip_uninstall("monai -q")
pip_install("monai -q")
import pytorch_lightning as pl



from monai.networks.nets.densenet import DenseNet169

# Different Network
Expand Down
8 changes: 3 additions & 5 deletions ASO_CBCT/ASO_CBCT_utils/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,9 @@
)
from vtkmodules.vtkFiltersGeneral import vtkTransformPolyDataFilter

try:
import dicom2nifti
except ImportError:
pip_install("dicom2nifti -q")
import dicom2nifti

import dicom2nifti


cross = lambda x, y: np.cross(
x, y
Expand Down

0 comments on commit 6b13ba9

Please sign in to comment.