Salome HOME
updated copyright message
[modules/kernel.git] / src / KERNEL_PY / salome_notebook.py
index 727d01df7a780b19bf68efa8e9204ea5b1f823cd..27acdc550b5f0532f14d3af288c879edc2e43a51 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2023  CEA, EDF, OPEN CASCADE
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -29,73 +29,76 @@ Module salome_notebook gives access to Salome Notebook.
 
 import salome
 
-class PseudoStudyForNoteBook(object):
-    
+class PseudoStudyForNoteBook:
+
     def __init__(self, **kwargs):
         self.kwargs = kwargs
         pass
-    
+
     def GetVariableNames(self):
         return list(self.kwargs.keys())
-    
+
     def IsVariable(self, variableName):
         return variableName in self.kwargs
-    
+
     def IsReal(self, variableName):
         val = self.kwargs[variableName]
         try:
             float(val)
             return True
-        except:
+        except Exception:
             pass
         return False
-    
+
     IsInteger = IsReal
     IsBoolean = IsReal
-    
+
     def IsString(self, variableName):
         return not self.IsReal(variableName)
-    
+
     def GetString(self, variableName):
         return self.kwargs[variableName]
-    
+
     def GetReal(self, variableName):
         return float(self.kwargs[variableName])
-    
+
     GetInteger = GetReal
     GetBoolean = GetReal
-    
+
     pass
 
 class NoteBook:
-    
-    def __init__(self, Study):
-        self.myStudy = Study
-    
+
+    def __init__(self, theIsEnablePublish=True):
+        if theIsEnablePublish:
+            self.myStudy = salome.myStudy
+        else:
+            self.myStudy = PseudoStudyForNoteBook()
+
     def set(self, variableName, variable):
         """
-        Create (or modify) variable with name "variableName" 
+        Create (or modify) variable with name "variableName"
         and value equal "theValue".
         """
-        if type(variable) == float:
+        if isinstance(variable, float):
             self.myStudy.SetReal(variableName, variable)
-            
-        elif type(variable) == int:
+
+        elif isinstance(variable, int):
             self.myStudy.SetInteger(variableName, variable)
-            
-        elif type(variable) == bool:
+
+        elif isinstance(variable, bool):
             self.myStudy.SetBoolean(variableName, variable)
-            
-        elif type(variable) == str:
+
+        elif isinstance(variable, str):
             self.myStudy.SetString(variableName, variable)
-            
+
     def get(self, variableName):
         """
         Return value of the variable with name "variableName".
         """
         aResult = None
         if self.myStudy.IsVariable(variableName):
-            
+
             if self.myStudy.IsReal(variableName):
                 aResult = self.myStudy.GetReal(variableName)
 
@@ -108,18 +111,18 @@ class NoteBook:
             elif self.myStudy.IsString(variableName):
                 aResult = self.myStudy.GetString(variableName)
                 aResult_orig = aResult
-                l = self.myStudy.GetVariableNames()
-                l.remove(variableName)
+                list_of_variables = self.myStudy.GetVariableNames()
+                list_of_variables.remove(variableName)
                 # --
                 # To avoid the smallest strings to be replaced first,
                 # the list is sorted by decreasing lengths
                 # --
-                l.sort(key=str.__len__)
-                l.reverse()
-                for name in l:
+                list_of_variables.sort(key=str.__len__)
+                list_of_variables.reverse()
+                for name in list_of_variables:
                     if aResult.find(name) >= 0:
                         val = self.get(name)
-                        aResult = aResult.replace(name, "%s"%(val))
+                        aResult = aResult.replace(name, "%s" % (val))
                         pass
                     pass
                 try:
@@ -128,18 +131,18 @@ class NoteBook:
                     msg = str(e)
                     msg += "\n"
                     msg += "A problem occurs while parsing "
-                    msg += "the variable %s "%(variableName.__repr__())
-                    msg += "with value %s ..."%(aResult_orig.__repr__())
+                    msg += "the variable %s " % (variableName.__repr__())
+                    msg += "with value %s ..." % (aResult_orig.__repr__())
                     msg += "\n"
                     msg += "Please, check your notebook !"
                     raise Exception(msg)
                 pass
-                
+
         return aResult
-    
-    def isVariable(self, variableName): 
+
+    def isVariable(self, variableName):
         """
-        Return true if variable with name "variableName" 
+        Return true if variable with name "variableName"
         exists in the study, otherwise return false.
         """
         return self.myStudy.IsVariable(variableName)
@@ -149,31 +152,32 @@ class NoteBook:
         value = float(typ(value))
         self.myStudy.SetStringAsDouble(variableName, value)
         return
-    
+
     def setAsReal(self, variableName):
         self.setAs(variableName, float)
         return
-    
+
     def setAsInteger(self, variableName):
         self.setAs(variableName, int)
         return
-    
+
     def setAsBool(self, variableName):
         self.setAs(variableName, bool)
         return
-    
+
     def check(self):
         for variableName in self.myStudy.GetVariableNames():
             self.get(variableName)
             pass
         return
-    
+
     pass
 
+
 def checkThisNoteBook(**kwargs):
-    study = PseudoStudyForNoteBook(**kwargs)
-    note_book = NoteBook(study)
+    note_book = NoteBook(False)
     note_book.check()
     return
 
-notebook = NoteBook(salome.myStudy)
+
+notebook = NoteBook()