Salome HOME
Adding multi-functions input capabilities (5)
[modules/adao.git] / src / daComposant / daCore / Aidsm.py
index 29d9143364f9afb6e80cee2e0b1622a60851e925..df5de4278d7e28b644f5cfd8e13a6f360422ea95 100644 (file)
@@ -90,8 +90,12 @@ class Aidsm(object):
             AppliedInXb          = None,
             AvoidRC              = True,
             Checked              = False,
+            ColMajor             = False,
+            ColNames             = None,
+            DataFile             = None,
             DiagonalSparseMatrix = None,
             Info                 = None,
+            InputAsMF            = False,
             Matrix               = None,
             ObjectFunction       = None,
             ObjectMatrix         = None,
@@ -113,7 +117,7 @@ class Aidsm(object):
         try:
             if   Concept in ("Background", "CheckingPoint", "ControlInput", "Observation"):
                 commande = getattr(self,"set"+Concept)
-                commande(Vector, VectorSerie, Script, Stored, Scheduler, Checked )
+                commande(Vector, VectorSerie, Script, DataFile, ColNames, ColMajor, Stored, Scheduler, Checked )
             elif Concept in ("BackgroundError", "ObservationError", "EvolutionError"):
                 commande = getattr(self,"set"+Concept)
                 commande(Matrix, ScalarSparseMatrix, DiagonalSparseMatrix,
@@ -135,13 +139,14 @@ class Aidsm(object):
             elif Concept == "ObservationOperator":
                 self.setObservationOperator(
                     Matrix, OneFunction, ThreeFunctions, AppliedInXb,
-                    Parameters, Script, Stored, AvoidRC, Checked )
+                    Parameters, Script,
+                    Stored, AvoidRC, InputAsMF, Checked )
             elif Concept in ("EvolutionModel", "ControlModel"):
                 commande = getattr(self,"set"+Concept)
                 commande(
                     Matrix, OneFunction, ThreeFunctions,
-                    Parameters, Script, Scheduler, Stored, AvoidRC, Checked )
-
+                    Parameters, Script, Scheduler,
+                    Stored, AvoidRC, InputAsMF, Checked )
             else:
                 raise ValueError("the variable named '%s' is not allowed."%str(Concept))
         except Exception as e:
@@ -158,6 +163,9 @@ class Aidsm(object):
             Vector         = None,
             VectorSerie    = None,
             Script         = None,
+            DataFile       = None,
+            ColNames       = None,
+            ColMajor       = False,
             Stored         = False,
             Scheduler      = None,
             Checked        = False):
@@ -168,7 +176,10 @@ class Aidsm(object):
             name               = Concept,
             asVector           = Vector,
             asPersistentVector = VectorSerie,
-            asScript           = self.with_directory(Script),
+            asScript           = self.__with_directory(Script),
+            asDataFile         = DataFile,
+            colNames           = ColNames,
+            colMajor           = ColMajor,
             scheduledBy        = Scheduler,
             toBeChecked        = Checked,
             )
@@ -180,6 +191,9 @@ class Aidsm(object):
             Vector         = None,
             VectorSerie    = None,
             Script         = None,
+            DataFile       = None,
+            ColNames       = None,
+            ColMajor       = False,
             Stored         = False,
             Scheduler      = None,
             Checked        = False):
@@ -190,7 +204,10 @@ class Aidsm(object):
             name               = Concept,
             asVector           = Vector,
             asPersistentVector = VectorSerie,
-            asScript           = self.with_directory(Script),
+            asScript           = self.__with_directory(Script),
+            asDataFile         = DataFile,
+            colNames           = ColNames,
+            colMajor           = ColMajor,
             scheduledBy        = Scheduler,
             toBeChecked        = Checked,
             )
@@ -202,6 +219,9 @@ class Aidsm(object):
             Vector         = None,
             VectorSerie    = None,
             Script         = None,
+            DataFile       = None,
+            ColNames       = None,
+            ColMajor       = False,
             Stored         = False,
             Scheduler      = None,
             Checked        = False):
@@ -212,7 +232,10 @@ class Aidsm(object):
             name               = Concept,
             asVector           = Vector,
             asPersistentVector = VectorSerie,
-            asScript           = self.with_directory(Script),
+            asScript           = self.__with_directory(Script),
+            asDataFile         = DataFile,
+            colNames           = ColNames,
+            colMajor           = ColMajor,
             scheduledBy        = Scheduler,
             toBeChecked        = Checked,
             )
@@ -224,6 +247,9 @@ class Aidsm(object):
             Vector         = None,
             VectorSerie    = None,
             Script         = None,
+            DataFile       = None,
+            ColNames       = None,
+            ColMajor       = False,
             Stored         = False,
             Scheduler      = None,
             Checked        = False):
@@ -234,7 +260,10 @@ class Aidsm(object):
             name               = Concept,
             asVector           = Vector,
             asPersistentVector = VectorSerie,
-            asScript           = self.with_directory(Script),
+            asScript           = self.__with_directory(Script),
+            asDataFile         = DataFile,
+            colNames           = ColNames,
+            colMajor           = ColMajor,
             scheduledBy        = Scheduler,
             toBeChecked        = Checked,
             )
@@ -259,7 +288,7 @@ class Aidsm(object):
             asEyeByScalar = ScalarSparseMatrix,
             asEyeByVector = DiagonalSparseMatrix,
             asCovObject   = ObjectMatrix,
-            asScript      = self.with_directory(Script),
+            asScript      = self.__with_directory(Script),
             toBeChecked   = Checked,
             )
         if Stored:
@@ -283,7 +312,7 @@ class Aidsm(object):
             asEyeByScalar = ScalarSparseMatrix,
             asEyeByVector = DiagonalSparseMatrix,
             asCovObject   = ObjectMatrix,
-            asScript      = self.with_directory(Script),
+            asScript      = self.__with_directory(Script),
             toBeChecked   = Checked,
             )
         if Stored:
@@ -307,7 +336,7 @@ class Aidsm(object):
             asEyeByScalar = ScalarSparseMatrix,
             asEyeByVector = DiagonalSparseMatrix,
             asCovObject   = ObjectMatrix,
-            asScript      = self.with_directory(Script),
+            asScript      = self.__with_directory(Script),
             toBeChecked   = Checked,
             )
         if Stored:
@@ -323,6 +352,7 @@ class Aidsm(object):
             Script         = None,
             Stored         = False,
             AvoidRC        = True,
+            InputAsMF      = False,
             Checked        = False):
         "Definition d'un concept de calcul"
         Concept = "ObservationOperator"
@@ -332,10 +362,11 @@ class Aidsm(object):
             asMatrix         = Matrix,
             asOneFunction    = OneFunction,
             asThreeFunctions = ThreeFunctions,
-            asScript         = self.with_directory(Script),
+            asScript         = self.__with_directory(Script),
             asDict           = Parameters,
             appliedInX       = AppliedInXb,
             avoidRC          = AvoidRC,
+            inputAsMF        = InputAsMF,
             scheduledBy      = None,
             toBeChecked      = Checked,
             )
@@ -349,9 +380,10 @@ class Aidsm(object):
             ThreeFunctions = None,
             Parameters     = None,
             Script         = None,
-            Stored         = False,
             Scheduler      = None,
+            Stored         = False,
             AvoidRC        = True,
+            InputAsMF      = False,
             Checked        = False):
         "Definition d'un concept de calcul"
         Concept = "EvolutionModel"
@@ -361,10 +393,11 @@ class Aidsm(object):
             asMatrix         = Matrix,
             asOneFunction    = OneFunction,
             asThreeFunctions = ThreeFunctions,
-            asScript         = self.with_directory(Script),
+            asScript         = self.__with_directory(Script),
             asDict           = Parameters,
             appliedInX       = None,
             avoidRC          = AvoidRC,
+            inputAsMF        = InputAsMF,
             scheduledBy      = Scheduler,
             toBeChecked      = Checked,
             )
@@ -378,9 +411,10 @@ class Aidsm(object):
             ThreeFunctions = None,
             Parameters     = None,
             Script         = None,
-            Stored         = False,
             Scheduler      = None,
+            Stored         = False,
             AvoidRC        = True,
+            InputAsMF      = False,
             Checked        = False):
         "Definition d'un concept de calcul"
         Concept = "ControlModel"
@@ -390,10 +424,11 @@ class Aidsm(object):
             asMatrix         = Matrix,
             asOneFunction    = OneFunction,
             asThreeFunctions = ThreeFunctions,
-            asScript         = self.with_directory(Script),
+            asScript         = self.__with_directory(Script),
             asDict           = Parameters,
             appliedInX       = None,
             avoidRC          = AvoidRC,
+            inputAsMF        = InputAsMF,
             scheduledBy      = Scheduler,
             toBeChecked      = Checked,
             )
@@ -448,7 +483,7 @@ class Aidsm(object):
             name          = Concept,
             asAlgorithm   = Algorithm,
             asDict        = Parameters,
-            asScript      = self.with_directory(Script),
+            asScript      = self.__with_directory(Script),
             )
         return 0
 
@@ -460,7 +495,7 @@ class Aidsm(object):
             raise ValueError("No algorithm registred, ask for one before updating parameters")
         self.__adaoObject["AlgorithmParameters"].updateParameters(
             asDict        = Parameters,
-            asScript      = self.with_directory(Script),
+            asScript      = self.__with_directory(Script),
             )
         return 0
 
@@ -475,7 +510,7 @@ class Aidsm(object):
             name          = Concept,
             asAlgorithm   = Algorithm,
             asDict        = Parameters,
-            asScript      = self.with_directory(Script),
+            asScript      = self.__with_directory(Script),
             )
         return 0
 
@@ -495,7 +530,7 @@ class Aidsm(object):
             onVariable  = Variable,
             asTemplate  = Template,
             asString    = String,
-            asScript    = self.with_directory(Script),
+            asScript    = self.__with_directory(Script),
             asObsObject = ObjectFunction,
             withInfo    = Info,
             scheduledBy = Scheduler,
@@ -687,7 +722,9 @@ class Aidsm(object):
         "Effacement du contenu du cas en cours"
         self.__init__(self.__name)
 
-    def with_directory(self, __filename=None):
+    # -----------------------------------------------------------
+
+    def __with_directory(self, __filename=None):
         if os.path.exists(str(__filename)):
             __fullpath = __filename
         elif os.path.exists(os.path.join(str(self.__directory), str(__filename))):
@@ -696,11 +733,9 @@ class Aidsm(object):
             __fullpath = __filename
         return __fullpath
 
-    # -----------------------------------------------------------
-
     def __dir__(self):
         "Clarifie la visibilité des méthodes"
-        return ['set', 'get', 'execute', '__doc__', '__init__', '__module__']
+        return ['set', 'get', 'execute', 'dump', 'load', '__doc__', '__init__', '__module__']
 
     def prepare_to_pickle(self):
         "Retire les variables non pickelisables, avec recopie efficace"
@@ -715,7 +750,10 @@ class Aidsm(object):
         if sys.version_info[0] == 2:
             del self.__adaoObject # Because it breaks pickle in Python 2. Not required for Python 3
             del self.__case       # Because it breaks pickle in Python 2. Not required for Python 3
-        return 0
+        if sys.version_info.major < 3:
+            return 0
+        else:
+            return self.__StoredInputs
 
 # ==============================================================================
 if __name__ == "__main__":