]> SALOME platform Git repositories - modules/homard.git/commitdiff
Salome HOME
Merge Python 3 porting.
authorrnv <rnv@opencascade.com>
Thu, 22 Jun 2017 15:53:35 +0000 (18:53 +0300)
committerrnv <rnv@opencascade.com>
Thu, 22 Jun 2017 15:53:35 +0000 (18:53 +0300)
12 files changed:
1  2 
bin/runHOMARD.py
src/HOMARD_I/HOMARD_Gen_i.cxx
src/tests/Test/test_1.py
src/tests/Test/test_2.py
src/tests/Test/test_3.py
src/tests/Test/test_4.py
src/tests/Test/test_5.py
src/tests/Test/tutorial_1.py
src/tests/Test/tutorial_2.py
src/tests/Test/tutorial_3.py
src/tests/Test/tutorial_4.py
src/tests/Test/tutorial_5.py

index 1012c6370a731dd30161a1e34d56dfe501752b91,59390ec68637d1e66ac2d9a71365077647d134d6..76ddece9b77ffe34132833d94425480e20d40723
@@@ -23,20 -23,20 +23,20 @@@ usage="""USAGE: runHOMARD.py [options
  [command line options] :
  --help                        : affichage de l'aide
  --gui                         : lancement du GUI
- --logger                    : redirection des messages dans un fichier
- --xterm                             : les serveurs ouvrent une fen�tre xterm et les messages sont affich�s dans cette fen�tre
- --modules=module1,module2,... : o� modulen est le nom d'un module Salome � charger dans le catalogue
+ --logger                      : redirection des messages dans un fichier
 ---xterm                       : les serveurs ouvrent une fenêtre xterm et les messages sont affichés dans cette fenêtre
 ---modules=module1,module2,... : où modulen est le nom d'un module Salome à charger dans le catalogue
++--xterm                       : les serveurs ouvrent une fen??tre xterm et les messages sont affich??s dans cette fen??tre
++--modules=module1,module2,... : o?? modulen est le nom d'un module Salome ?? charger dans le catalogue
  --containers=cpp,python,superv: lancement des containers cpp, python et de supervision
- --killall                   : arr�t des serveurs de salome
 ---killall                     : arrêt des serveurs de salome
++--killall                     : arr??t des serveurs de salome
  
-  La variable d'environnement <modulen>_ROOT_DIR doit etre pr�alablement
-  positionn�e (modulen doit etre en majuscule).
 - La variable d'environnement <modulen>_ROOT_DIR doit etre préalablement
 - positionnée (modulen doit etre en majuscule).
++ La variable d'environnement <modulen>_ROOT_DIR doit etre pr??alablement
++ positionn??e (modulen doit etre en majuscule).
   KERNEL_ROOT_DIR est obligatoire.
  """
  
  # -----------------------------------------------------------------------------
  #
- # Fonction d'arr�t de salome
 -# Fonction d'arrêt de salome
++# Fonction d'arr??t de salome
  #
  
  def killSalome():
@@@ -128,7 -128,7 +128,7 @@@ except getopt.error as msg
  
  # -----------------------------------------------------------------------------
  #
- # V�rification des variables d'environnement
 -# Vérification des variables d'environnement
++# V??rification des variables d'environnement
  #
  try:
    kernel_root_dir=os.environ["KERNEL_ROOT_DIR"]
@@@ -148,7 -148,7 +148,7 @@@ for module in liste_modules 
  
  # il faut KERNEL en premier dans la liste des modules
  # - l'ordre des modules dans le catalogue sera identique
- # - la liste des modules presents dans le catalogue est exploit�e pour charger les modules CORBA python,
 -# - la liste des modules presents dans le catalogue est exploitée pour charger les modules CORBA python,
++# - la liste des modules presents dans le catalogue est exploit??e pour charger les modules CORBA python,
  #   il faut charger les modules python du KERNEL en premier
  
  if "KERNEL" in liste_modules:liste_modules.remove("KERNEL")
@@@ -162,7 -162,7 +162,7 @@@ if "SUPERV" in liste_modules:with_conta
  
  # -----------------------------------------------------------------------------
  #
- # D�finition des classes d'objets pour le lancement des Server CORBA
 -# Définition des classes d'objets pour le lancement des Server CORBA
++# D??finition des classes d'objets pour le lancement des Server CORBA
  #
  
  class Server:
@@@ -342,7 -342,7 +342,7 @@@ def startSalome()
    RegistryServer().run()
  
    #
-   # Attente de la disponibilit� du Registry dans le Naming Service
 -  # Attente de la disponibilité du Registry dans le Naming Service
++  # Attente de la disponibilit?? du Registry dans le Naming Service
    #
    clt.waitNS("/Registry")
  
    cataServer.run()
  
    #
-   # Attente de la disponibilit� du Catalog Server dans le Naming Service
 -  # Attente de la disponibilité du Catalog Server dans le Naming Service
++  # Attente de la disponibilit?? du Catalog Server dans le Naming Service
    #
    import SALOME_ModuleCatalog
    clt.waitNS("/Kernel/ModulCatalog",SALOME_ModuleCatalog.ModuleCatalog)
  
  
    #
-   # Attente de la disponibilit� du SalomeDS dans le Naming Service
 -  # Attente de la disponibilité du SalomeDS dans le Naming Service
++  # Attente de la disponibilit?? du SalomeDS dans le Naming Service
    #
 -  clt.waitNS("/myStudyManager")
 +  clt.waitNS("/Study")
  
    #
    # Lancement Session Server
    SessionServer().run()
  
    #
-   # Attente de la disponibilit� du Session Server dans le Naming Service
 -  # Attente de la disponibilité du Session Server dans le Naming Service
++  # Attente de la disponibilit?? du Session Server dans le Naming Service
    #
    import SALOME
    session=clt.waitNS("/Kernel/Session",SALOME.Session)
    # Lancement Container C++ local
    #
    if with_container_cpp:
-         ContainerCPPServer().run()
-         #
-         # Attente de la disponibilit� du Container C++ local 
-           # dans le Naming Service
-         #
-         clt.waitNS("/Containers/" + theComputer + "/FactoryServer")
+     ContainerCPPServer().run()
+     #
 -    # Attente de la disponibilité du Container C++ local
++    # Attente de la disponibilit?? du Container C++ local
+     # dans le Naming Service
+     #
+     clt.waitNS("/Containers/" + theComputer + "/FactoryServer")
    #
    # Lancement Container Python local
    #
    if with_container_python:
-         ContainerPYServer().run()
-         #
-         # Attente de la disponibilit� du Container Python local 
-           #  dans le Naming Service
-         #
-         clt.waitNS("/Containers/" + theComputer + "/FactoryServerPy")
+     ContainerPYServer().run()
+     #
 -    # Attente de la disponibilité du Container Python local
++    # Attente de la disponibilit?? du Container Python local
+     #  dans le Naming Service
+     #
+     clt.waitNS("/Containers/" + theComputer + "/FactoryServerPy")
  
    if with_container_superv:
-       #
-       # Lancement Container Supervision local
-       #
-       ContainerSUPERVServer().run()
-       #
-       # Attente de la disponibilit� du Container Supervision local 
-         # dans le Naming Service
-       #
-       clt.waitNS("/Containers/" + theComputer + "/SuperVisionContainer")
+     #
+     # Lancement Container Supervision local
+     #
+     ContainerSUPERVServer().run()
+     #
 -    # Attente de la disponibilité du Container Supervision local
++    # Attente de la disponibilit?? du Container Supervision local
+     # dans le Naming Service
+     #
+     clt.waitNS("/Containers/" + theComputer + "/SuperVisionContainer")
    #
    # Activation du GUI de Session Server
    #
@@@ -463,15 -463,15 +463,15 @@@ if __name__ == "__main__"
  Sauvegarde du dictionnaire des process dans , %s
  Pour tuer les process SALOME, executer : python killSalome.py depuis
  une console, ou bien killSalome() depuis le present interpreteur,
- s'il n'est pas ferm�.
 -s'il n'est pas fermé.
++s'il n'est pas ferm??.
  
  runHOMARD, avec l'option --killall, commence par tuer les process restants 
- d'une execution pr�c�dente.
 -d'une execution précédente.
++d'une execution pr??c??dente.
  
  Pour lancer uniquement le GUI, executer startGUI() depuis le present interpreteur,
- s'il n'est pas ferm�.
 -s'il n'est pas fermé.
++s'il n'est pas ferm??.
  
- """ % filedict
+ """ % filedict)
     
     #
     #  Impression arborescence Naming Service
index 8c2e4bbab28067fb8ac9313f64071c736434b694,4d44ae9ee2b7a255c4787f58d6b8ddff529dfe0e..915463dfbb6380834bb5c4d0e9ed4e22ac2201e6
@@@ -120,16 -118,17 +121,16 @@@ HOMARD_Gen_i::~HOMARD_Gen_i(
  }
  //=============================================================================
  //=============================================================================
--// Utilitaires pour l'étude
++// Utilitaires pour l'??tude
  //=============================================================================
  //=============================================================================
 -void HOMARD_Gen_i::addInStudy(SALOMEDS::Study_ptr theStudy)
 +void HOMARD_Gen_i::UpdateStudy()
  {
 -  ASSERT(!CORBA::is_nil(theStudy));
 -  MESSAGE("addInStudy: ajout eventuel du composant HOMARD dans current study ID = " << GetCurrentStudyID()) ;
 -  SALOMEDS::StudyBuilder_var myBuilder = theStudy->NewBuilder();
 +  ASSERT(!CORBA::is_nil(myStudy));
 +  SALOMEDS::StudyBuilder_var myBuilder = myStudy->NewBuilder();
  
    // Create SComponent labelled 'homard' if it doesn't already exit
 -  SALOMEDS::SComponent_var homardFather = theStudy->FindComponent(ComponentDataType());
 +  SALOMEDS::SComponent_var homardFather = myStudy->FindComponent(ComponentDataType());
    if (CORBA::is_nil(homardFather))
    {
      myBuilder->NewCommand();
@@@ -1303,13 -1324,13 +1304,13 @@@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::Cr
    char* MeshFile ;
    // le constructeur de ifstream permet d'ouvrir un fichier en lecture
    std::ifstream fichier( file_configuration.c_str() );
--  if ( fichier ) // ce test échoue si le fichier n'est pas ouvert
++  if ( fichier ) // ce test ??choue si le fichier n'est pas ouvert
    {
      std::string ligne; // variable contenant chaque ligne lue
      std::string mot_cle;
      std::string argument;
      int decalage;
--    // cette boucle sur les lignes s'arrête dès qu'une erreur de lecture survient
++    // cette boucle sur les lignes s'arr??te d??s qu'une erreur de lecture survient
      while ( std::getline( fichier, ligne ) )
      {
        // B.1. Pour la ligne courante, on identifie le premier mot : le mot-cle
@@@ -1549,12 -1570,12 +1550,12 @@@ std::string HOMARD_Gen_i::CreateCase1(c
              CHDIR(DirName_1.c_str()) ;
  
              std::ifstream fichier( file_name_1.c_str() );
--            if ( fichier ) // ce test échoue si le fichier n'est pas ouvert
++            if ( fichier ) // ce test ??choue si le fichier n'est pas ouvert
              {
                int NumeIter ;
                std::string ligne; // variable contenant chaque ligne lue
                std::string mot_cle;
--              // cette boucle sur les lignes s'arrête dès qu'une erreur de lecture survient
++              // cette boucle sur les lignes s'arr??te d??s qu'une erreur de lecture survient
                while ( std::getline( fichier, ligne ) )
                {
                  // B.1. Pour la ligne courante, on identifie le premier mot : le mot-cle
@@@ -2584,7 -2605,7 +2585,7 @@@ CORBA::Long HOMARD_Gen_i::Compute(cons
          text = "Error during the adaptation.\n" ;
          bool stopvu = false ;
          std::ifstream fichier( LogFile.c_str() );
--        if ( fichier ) // ce test échoue si le fichier n'est pas ouvert
++        if ( fichier ) // ce test ??choue si le fichier n'est pas ouvert
          {
            std::string ligne; // variable contenant chaque ligne lue
            while ( std::getline( fichier, ligne ) )
@@@ -3235,7 -3256,7 +3236,7 @@@ void HOMARD_Gen_i::DriverTexteFieldInte
          // Le type d'interpolation
          std::string TypeInterpstr = std::string((*ListField)[iaux+1]) ;
          MESSAGE( "... FieldName = " << FieldName << ", TypeInterp = " << TypeInterpstr );
--        // On cherche à savoir si des instants ont été précisés pour cette itération
++        // On cherche ?? savoir si des instants ont ??t?? pr??cis??s pour cette it??ration
          int tsrvu = 0;
          for (int jaux = 0; jaux< numberOfFieldsx3; jaux++)
          {
            }
            jaux += 2 ;
          }
--        // Si aucun instant n'a été défini
++        // Si aucun instant n'a ??t?? d??fini
          if ( tsrvu == 0 )
          {
            NumField += 1 ;
@@@ -3931,7 -3958,7 +3932,7 @@@ void HOMARD_Gen_i::PublishFileUnderYACS
  // Creation d'un schema YACS
  // nomCas : nom du cas a traiter
  // FileName : nom du fichier contenant le script de lancement du calcul
--// DirName : le repertoire de lancement des calculs du schéma
++// DirName : le repertoire de lancement des calculs du sch??ma
  //=============================================================================
  HOMARD::HOMARD_YACS_ptr HOMARD_Gen_i::CreateYACSSchema (const char* nomYACS, const char* nomCas, const char* ScriptFile, const char* DirName, const char* MeshFile)
  {
@@@ -4112,7 -4139,7 +4113,7 @@@ CORBA::Long HOMARD_Gen_i::YACSWriteOnFi
    // G. Lecture du schema de reference et insertion des donnees propres au fil de la rencontre des mots-cles
    YACSDriver* myDriver = new YACSDriver(XMLFile, DirName);
    std::ifstream fichier( XMLFile_base.c_str() );
--  if ( fichier ) // ce test échoue si le fichier n'est pas ouvert
++  if ( fichier ) // ce test ??choue si le fichier n'est pas ouvert
    {
      // G.1. Lecture du schema de reference et insertion des donnees propres au fil de la rencontre des mots-cles
      std::string ligne; // variable contenant chaque ligne lue
@@@ -4324,7 -4352,7 +4325,7 @@@ SALOMEDS::TMPFile* HOMARD_Gen_i::Save(S
    // HOMARD data file name
    std::string aFileName = "";
    if (isMultiFile)
-     aFileName = SALOMEDS_Tool::GetNameFromPath(SMESH_Gen_i::getStudyServant()->URL());
 -    aFileName = SALOMEDS_Tool::GetNameFromPath(Kernel_Utils::encode(aStudy->URL()));
++    aFileName = SALOMEDS_Tool::GetNameFromPath(Kernel_Utils::encode(SMESH_Gen_i::getStudyServant()->URL()));
    aFileName += "_HOMARD.dat";
  
    // initialize sequence of file names
@@@ -4448,10 -4477,10 +4449,10 @@@ CORBA::Boolean HOMARD_Gen_i::Load(SALOM
    // HOMARD data file name
    std::string aFileName = "";
    if (isMultiFile)
-     aFileName = SALOMEDS_Tool::GetNameFromPath(SMESH_Gen_i::getStudyServant()->URL());
 -    aFileName = SALOMEDS_Tool::GetNameFromPath(Kernel_Utils::encode(aStudy->URL()));
++    aFileName = SALOMEDS_Tool::GetNameFromPath(Kernel_Utils::encode(SMESH_Gen_i::getStudyServant()->URL()));
    aFileName = tmpDir + aFileName + "_HOMARD.dat";
  
 -  StudyContext& context = myContextMap[ aStudy->StudyId() ];
 +  StudyContext& context = myStudyContext;
  
    // save data
    // -> create file
@@@ -4984,7 -5031,7 +4985,7 @@@ void HOMARD_Gen_i::SetPreferences( 
    File += "/bin/salome/VERSION" ;
    MESSAGE ( "File = "<<File ) ;
    std::ifstream fichier0( File.c_str() ) ;
--  if ( fichier0 ) // ce test échoue si le fichier n'est pas ouvert
++  if ( fichier0 ) // ce test ??choue si le fichier n'est pas ouvert
    {
      std::string ligne; // variable contenant chaque ligne lue
      while ( std::getline( fichier0, ligne ) )
      MESSAGE ( "PrefFile = "<<PrefFile ) ;
  
      std::ifstream fichier( PrefFile.c_str() );
--    if ( fichier ) // ce test échoue si le fichier n'est pas ouvert
++    if ( fichier ) // ce test ??choue si le fichier n'est pas ouvert
      {
        bool section_langue = false ;
        bool section_homard = false ;
index 4267c919271f021bbc0b5fea39662b4eba7cd18e,d2a6e28fbac16de312ece89ce84ca558586185a3..f9fe63ac54e0be8398569e22b870920381d5968d
@@@ -202,11 -202,11 +202,11 @@@ HOMARD.SetLanguageShort("fr"
  # Exec of HOMARD-SALOME
  #
  try :
 -  ERROR = homard_exec(salome.myStudy)
 +  ERROR = homard_exec()
    if ERROR :
      raise Exception('Pb in homard_exec at iteration %d' %ERROR )
- except Exception, eee:
-   raise Exception('Pb in homard_exec: '+eee.message)
+ except Exception as eee:
+   raise Exception('Pb in homard_exec: ' + str(eee))
  #
  # Test of the results
  #
index 3b903cc70b8e9794635af1a59b9a76c63ca9ef8c,9e0c6dbe41c2bb3b5d747db0fb9f4e5feefce4fb..12273aa594a339d5043427751f084c96dac86117
@@@ -174,10 -174,10 +174,10 @@@ HOMARD.SetLanguageShort("fr"
  # Exec of HOMARD-SALOME
  #
  try :
 -  ERROR = homard_exec(salome.myStudy)
 +  ERROR = homard_exec()
    if ERROR :
      raise Exception('Pb in homard_exec at iteration %d' %ERROR )
- except Exception, eee:
+ except Exception as eee:
    raise Exception('Pb in homard_exec: '+eee.message)
  #
  # Test of the results
index 15ddbd7d9d30c50591442437ea564b8271317d9c,5c8e4bb00b2bc5b11606f6405bb5e30c7318c08f..6c9b3dc63b67101ac36cf8f4407839f2dd3d816a
@@@ -208,10 -208,10 +208,10 @@@ HOMARD.SetLanguageShort("fr"
  # Exec of HOMARD-SALOME
  #
  try :
 -  ERROR = homard_exec(salome.myStudy)
 +  ERROR = homard_exec()
    if ERROR :
      raise Exception('Pb in homard_exec at iteration %d' %ERROR )
- except Exception, eee:
+ except Exception as eee:
    raise Exception('Pb in homard_exec: '+eee.message)
  #
  # Test of the results
index f294ceaf0c7b326d6dc43821238fd627f9809abc,452d455f16bbaec5d8f4400ca80aae48bc5a02de..eadda0ce20bee7195417fa225f0c581db55f07c1
@@@ -317,11 -317,11 +317,11 @@@ Python script for HOMAR
  # Geometry and Mesh
  #
  try :
 -  ERROR = geom_smesh_exec(salome.myStudy)
 +  ERROR = geom_smesh_exec()
    if ERROR :
      raise Exception('Pb in geom_smesh_exec')
- except Exception, eee:
-   raise Exception('Pb in geom_smesh_exec: '+eee.message)
+ except Exception as eee:
+   raise Exception('Pb in geom_smesh_exec: ' + str(eee))
  
  HOMARD = salome.lcc.FindOrLoadComponent('FactoryServer', 'HOMARD')
  assert HOMARD is not None, "Impossible to load homard engine"
@@@ -330,11 -330,11 +330,11 @@@ HOMARD.SetLanguageShort("fr"
  # Exec of HOMARD-SALOME
  #
  try :
 -  ERROR = homard_exec(salome.myStudy)
 +  ERROR = homard_exec()
    if ERROR :
      raise Exception('Pb in homard_exec at iteration %d' %ERROR )
- except Exception, eee:
-   raise Exception('Pb in homard_exec: '+eee.message)
+ except Exception as eee:
+   raise Exception('Pb in homard_exec: ' + str(eee))
  #
  # Test of the results
  #
index afcb13e11003f9eba361f8b17ee5fe17c06ac8b5,cad22fd5b20564e3a97c166aad4d7839c9f1b2a6..38ed4b017cab959f1354f0040a4a113e0f788f94
@@@ -305,11 -305,11 +305,11 @@@ Python script for HOMAR
  # Geometry and Mesh
  #
  try :
 -  ERROR = mesh_exec(salome.myStudy)
 +  ERROR = mesh_exec()
    if ERROR :
      raise Exception('Pb in mesh_exec')
- except Exception, eee:
-   raise Exception('Pb in mesh_exec: '+eee.message)
+ except Exception as eee:
+   raise Exception('Pb in mesh_exec: ' + str(eee))
  
  HOMARD = salome.lcc.FindOrLoadComponent('FactoryServer', 'HOMARD')
  assert HOMARD is not None, "Impossible to load homard engine"
@@@ -318,11 -318,11 +318,11 @@@ HOMARD.SetLanguageShort("fr"
  # Exec of HOMARD-SALOME
  #
  try :
 -  ERROR = homard_exec(salome.myStudy)
 +  ERROR = homard_exec()
    if ERROR :
      raise Exception('Pb in homard_exec at iteration %d' %ERROR )
- except Exception, eee:
-   raise Exception('Pb in homard_exec: '+eee.message)
+ except Exception as eee:
+   raise Exception('Pb in homard_exec: ' + str(eee))
  #
  # Test of the results
  #
index 5b49365cbdab24be4cd52602114bf03c8e85c9b6,5aceb08f19edc3e9df5884ca057db46226ba5999..06566b9b9d9d3f845432c6bb94c1e32da5b2d674
@@@ -120,10 -120,10 +120,10 @@@ homard.SetLanguageShort("fr"
  # Exec of HOMARD-SALOME
  #
  try :
 -  ERROR = homard_exec(salome.myStudy)
 +  ERROR = homard_exec()
    if ERROR :
      raise Exception('Pb in homard_exec at iteration %d' %ERROR )
- except Exception, eee:
+ except Exception as eee:
    raise Exception('Pb in homard_exec: '+eee.message)
  #
  # Test of the results
index 6c486104d4e608131ba081c4238aff9f17a28890,ef643aa6ba011d430e9c477343126ca14c7d75c9..58c456dcd50b8f8e613ae7ad9dba3ecfaf5095e9
@@@ -131,10 -131,10 +131,10 @@@ HOMARD.SetLanguageShort("fr"
  # Exec of HOMARD-SALOME
  #
  try :
 -  ERROR = homard_exec(salome.myStudy)
 +  ERROR = homard_exec()
    if ERROR :
      raise Exception('Pb in homard_exec at iteration %d' %ERROR )
- except Exception, eee:
+ except Exception as eee:
    raise Exception('Pb in homard_exec: '+eee.message)
  #
  # Test of the results
index 337dd83d5504bc57797ee7b193f082f84d48fc2c,edf7196016c6a18cc0e9121471dd72cdd0f055dc..d982d9b4a1081da893ca585ce6799b2d9dbdbf76
@@@ -160,10 -160,10 +160,10 @@@ HOMARD.SetLanguageShort("fr"
  # Exec of HOMARD-SALOME
  #
  try :
 -  ERROR = homard_exec(salome.myStudy)
 +  ERROR = homard_exec()
    if ERROR :
      raise Exception('Pb in homard_exec at iteration %d' %ERROR )
- except Exception, eee:
+ except Exception as eee:
    raise Exception('Pb in homard_exec: '+eee.message)
  #
  # Test of the results
index 12cddf95aca252f89c5f9d5f54f90da5830e1168,55b8c8dc7a17aeaf04f550d4056dd11ba597e441..8d22a0ea75c58b2fc02ce342276deb0146ad3925
@@@ -147,10 -147,10 +147,10 @@@ HOMARD.SetLanguageShort("fr"
  # Exec of HOMARD-SALOME
  #
  try :
 -  ERROR = homard_exec(salome.myStudy)
 +  ERROR = homard_exec()
    if ERROR :
      raise Exception('Pb in homard_exec at iteration %d' %ERROR )
- except Exception, eee:
+ except Exception as eee:
    raise Exception('Pb in homard_exec: '+eee.message)
  #
  # Test of the results
index d5ffc6949c5b15d02fb8aca60140d538bbfa6d87,a03fccb0da15cc3a4ac8b37da110736b4925c7a7..784b9a41f31cb49d44020aee07cd69e5d6d35742
@@@ -131,10 -131,10 +131,10 @@@ HOMARD.SetLanguageShort("fr"
  # Exec of HOMARD-SALOME
  #
  try :
 -  ERROR = homard_exec(salome.myStudy)
 +  ERROR = homard_exec()
    if ERROR :
      raise Exception('Pb in homard_exec at iteration %d' %ERROR )
- except Exception, eee:
+ except Exception as eee:
    raise Exception('Pb in homard_exec: '+eee.message)
  #
  # Test of the results