]> SALOME platform Git repositories - tools/sat.git/commitdiff
Salome HOME
fix doxstring :param: :result:
authorChristian Van Wambeke <chvw@orange.fr>
Mon, 30 Apr 2018 17:14:10 +0000 (19:14 +0200)
committerChristian Van Wambeke <chvw@orange.fr>
Mon, 30 Apr 2018 17:14:10 +0000 (19:14 +0200)
160 files changed:
AllTestLauncherSat.py
__init__.py
commands/application.py
commands/check.py
commands/clean.py
commands/compile.py
commands/config.py
commands/configure.py
commands/environ.py
commands/find_duplicates.py
commands/generate.py
commands/init.py
commands/job.py
commands/jobs.py
commands/launcher.py
commands/log.py
commands/make.py
commands/makeinstall.py
commands/package.py
commands/patch.py
commands/prepare.py
commands/profile.py
commands/script.py
commands/source.py
commands/template.py
commands/test.py
doc/Makefile
doc/build/doctrees/apidoc_commands/commands.doctree [new file with mode: 0644]
doc/build/doctrees/apidoc_commands/modules.doctree [new file with mode: 0644]
doc/build/doctrees/apidoc_src/modules.doctree [new file with mode: 0644]
doc/build/doctrees/apidoc_src/src.colorama.doctree [new file with mode: 0644]
doc/build/doctrees/apidoc_src/src.doctree [new file with mode: 0644]
doc/build/doctrees/apidoc_src/src.example.doctree [new file with mode: 0644]
doc/build/doctrees/commands/apidoc/modules.doctree [deleted file]
doc/build/doctrees/commands/apidoc/src.colorama.doctree [deleted file]
doc/build/doctrees/commands/apidoc/src.doctree [deleted file]
doc/build/doctrees/commands/apidoc/src.example.doctree [deleted file]
doc/build/doctrees/commands/application.doctree
doc/build/doctrees/commands/clean.doctree
doc/build/doctrees/commands/config.doctree
doc/build/doctrees/commands/prepare.doctree
doc/build/doctrees/environment.pickle
doc/build/doctrees/index.doctree
doc/build/doctrees/installation_of_sat.doctree
doc/build/doctrees/release_notes/release_notes_5.0.0.doctree
doc/build/html/_modules/commands/application.html [new file with mode: 0644]
doc/build/html/_modules/commands/check.html [new file with mode: 0644]
doc/build/html/_modules/commands/clean.html [new file with mode: 0644]
doc/build/html/_modules/commands/compile.html [new file with mode: 0644]
doc/build/html/_modules/commands/config.html [new file with mode: 0644]
doc/build/html/_modules/commands/configure.html [new file with mode: 0644]
doc/build/html/_modules/commands/environ.html [new file with mode: 0644]
doc/build/html/_modules/commands/find_duplicates.html [new file with mode: 0644]
doc/build/html/_modules/commands/generate.html [new file with mode: 0644]
doc/build/html/_modules/commands/init.html [new file with mode: 0644]
doc/build/html/_modules/commands/job.html [new file with mode: 0644]
doc/build/html/_modules/commands/jobs.html [new file with mode: 0644]
doc/build/html/_modules/commands/launcher.html [new file with mode: 0644]
doc/build/html/_modules/commands/log.html [new file with mode: 0644]
doc/build/html/_modules/commands/make.html [new file with mode: 0644]
doc/build/html/_modules/commands/makeinstall.html [new file with mode: 0644]
doc/build/html/_modules/commands/package.html [new file with mode: 0644]
doc/build/html/_modules/commands/patch.html [new file with mode: 0644]
doc/build/html/_modules/commands/prepare.html [new file with mode: 0644]
doc/build/html/_modules/commands/profile.html [new file with mode: 0644]
doc/build/html/_modules/commands/run.html [new file with mode: 0644]
doc/build/html/_modules/commands/script.html [new file with mode: 0644]
doc/build/html/_modules/commands/shell.html [new file with mode: 0644]
doc/build/html/_modules/commands/source.html [new file with mode: 0644]
doc/build/html/_modules/commands/template.html [new file with mode: 0644]
doc/build/html/_modules/commands/test.html [new file with mode: 0644]
doc/build/html/_modules/index.html
doc/build/html/_modules/src/ElementTree.html
doc/build/html/_modules/src/architecture.html
doc/build/html/_modules/src/catchAll.html
doc/build/html/_modules/src/colorama/ansi.html
doc/build/html/_modules/src/colorama/ansitowin32.html
doc/build/html/_modules/src/colorama/initialise.html
doc/build/html/_modules/src/colorama/win32.html
doc/build/html/_modules/src/colorama/winterm.html
doc/build/html/_modules/src/coloringSat.html
doc/build/html/_modules/src/compilation.html
doc/build/html/_modules/src/configManager.html
doc/build/html/_modules/src/debug.html
doc/build/html/_modules/src/environment.html
doc/build/html/_modules/src/environs.html
doc/build/html/_modules/src/example/essai_logging_1.html
doc/build/html/_modules/src/example/essai_logging_2.html
doc/build/html/_modules/src/exceptionSat.html
doc/build/html/_modules/src/fileEnviron.html
doc/build/html/_modules/src/fork.html
doc/build/html/_modules/src/loggingSat.html
doc/build/html/_modules/src/options.html
doc/build/html/_modules/src/product.html
doc/build/html/_modules/src/pyconf.html
doc/build/html/_modules/src/returnCode.html
doc/build/html/_modules/src/salomeTools.html
doc/build/html/_modules/src/system.html
doc/build/html/_modules/src/template.html
doc/build/html/_modules/src/test_module.html
doc/build/html/_modules/src/utilsSat.html
doc/build/html/_modules/src/xmlManager.html
doc/build/html/_sources/apidoc_commands/commands.txt [new file with mode: 0644]
doc/build/html/_sources/apidoc_commands/modules.txt [new file with mode: 0644]
doc/build/html/_sources/apidoc_src/modules.txt [new file with mode: 0644]
doc/build/html/_sources/apidoc_src/src.colorama.txt [new file with mode: 0644]
doc/build/html/_sources/apidoc_src/src.example.txt [new file with mode: 0644]
doc/build/html/_sources/apidoc_src/src.txt [new file with mode: 0644]
doc/build/html/_sources/commands/apidoc/modules.txt [deleted file]
doc/build/html/_sources/commands/apidoc/src.colorama.txt [deleted file]
doc/build/html/_sources/commands/apidoc/src.example.txt [deleted file]
doc/build/html/_sources/commands/apidoc/src.txt [deleted file]
doc/build/html/_sources/index.txt
doc/build/html/apidoc_commands/commands.html [new file with mode: 0644]
doc/build/html/apidoc_commands/modules.html [new file with mode: 0644]
doc/build/html/apidoc_src/modules.html [new file with mode: 0644]
doc/build/html/apidoc_src/src.colorama.html [new file with mode: 0644]
doc/build/html/apidoc_src/src.example.html [new file with mode: 0644]
doc/build/html/apidoc_src/src.html [new file with mode: 0644]
doc/build/html/commands/apidoc/modules.html [deleted file]
doc/build/html/commands/apidoc/src.colorama.html [deleted file]
doc/build/html/commands/apidoc/src.example.html [deleted file]
doc/build/html/commands/apidoc/src.html [deleted file]
doc/build/html/genindex.html
doc/build/html/index.html
doc/build/html/objects.inv
doc/build/html/py-modindex.html
doc/build/html/release_notes/release_notes_5.0.0.html
doc/build/html/searchindex.js
doc/build/html/write_command.html
doc/build/latex/Makefile [deleted file]
doc/build/latex/python.ist [deleted file]
doc/build/latex/salomeTools.tex [deleted file]
doc/build/latex/sat_about.png [deleted file]
doc/build/latex/sphinx.sty [deleted file]
doc/build/latex/sphinxhowto.cls [deleted file]
doc/build/latex/sphinxmanual.cls [deleted file]
doc/build/latex/tabulary.sty [deleted file]
doc/src/apidoc_commands/commands.rst [new file with mode: 0644]
doc/src/apidoc_commands/modules.rst [new file with mode: 0644]
doc/src/apidoc_src/modules.rst [new file with mode: 0644]
doc/src/apidoc_src/src.colorama.rst [new file with mode: 0644]
doc/src/apidoc_src/src.example.rst [new file with mode: 0644]
doc/src/apidoc_src/src.rst [new file with mode: 0644]
doc/src/commands/apidoc/modules.rst [deleted file]
doc/src/conf.py
doc/src/index.rst
src/architecture.py
src/compilation.py
src/configManager.py
src/environment.py
src/exceptionSat.py
src/fileEnviron.py
src/fork.py
src/options.py
src/product.py
src/pyconf.py
src/system.py
src/utilsSat.py
src/xmlManager.py

index a0288db43498d9447114c3442ffc588e1f657b16..3ec8b8eb08f2a49768f52599922b90623dc6cff7 100755 (executable)
@@ -272,10 +272,10 @@ def getParser():
   )
   parser.add_argument(
     '-r', '--rootPath', 
-    help='''\
+    help="""\
 dir name with absolute or relative path stand for root directory
 of recursive searching unittest python files
-''',
+""",
    default=satdir,
    metavar='dirPath'
   )
@@ -294,7 +294,8 @@ of recursive searching unittest python files
   )
   parser.add_argument(
     '-n', '--name', 
-    help="""(only for type xml)
+    help="""\
+(only for type xml)
 name of directory output: ['test_reports'|...].
 If name = 'stdout' then all-in-one xml output at 'sys.stdout'. For pipe redirection:
 '>> AllTestLauncher.py -t xml -n stdout > tmp.xml'
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..a76d25d4b8cf9dbb8eae8e78f1473eec04e5c8f0 100644 (file)
@@ -0,0 +1 @@
+__all__ = ['src', 'commands', ]
\ No newline at end of file
index a145061c6c9e06b462c91aab899f8bca8f29e028..720b342f7d9686fdc22465dfebfe5d394692ace0 100644 (file)
@@ -36,15 +36,15 @@ from src.salomeTools import _BaseCommand
 # Command class
 ########################################################################
 class Command(_BaseCommand):
-  """\
+  """
   The application command creates a SALOME application. 
 
-  WARNING: 
-    It works only for SALOME 6.
-    Use the 'launcher' command for newer versions of SALOME
-
-  examples:
-    >> sat application SALOME-6.6.0
+  | Warning:
+    It works only for SALOME 6.
+    Use the 'launcher' command for newer versions of SALOME
+  |
+  | Examples:
+  | >> sat application SALOME-6.6.0
   """
   
   name = "application"
@@ -349,7 +349,7 @@ def get_step(logger, message, pad=50):
     returns 'message ........ ' with pad 50 by default
     avoid colors '<color>' for now in message
     """
-    return "%s %s " % (message, '.' * (pad - len(message.decode("UTF-8")))
+    return "%s %s " % (message, '.' * (pad - len(message.decode("UTF-8"))))
 
 ##
 # Creates a SALOME application.
@@ -371,7 +371,7 @@ def create_application(config, appli_dir, catalog, logger, display=True):
         cmd = UTS.label("%s/salome" % appli_dir)
 
     if display:
-        msg = _("To launch the application, type:"))
+        msg = _("To launch the application, type:")
         logger.info("\n%s\n  %s\n" % (msg, cmd))
     return retcode
 
@@ -422,7 +422,7 @@ def generate_launch_file(config, appli_dir, catalog, logger, l_SALOME_modules):
     # build the application (the name depends upon salome version
     env_file = os.path.join(config.APPLICATION.workdir, "env_launch." + env_ext)
 
-    logger.info(get_step(_("Building application"))
+    logger.info(get_step(_("Building application")))
     cf = create_config_file(config, l_SALOME_modules, env_file, logger)
 
     # create the application directory
index e664bdfccb6b4486466612b702d79a0785523965..0ec831bb3c9b03ba4beb98864a97f29bd81e8d65 100644 (file)
@@ -27,14 +27,14 @@ CHECK_PROPERTY = "has_unit_tests"
 # Command class
 ########################################################################
 class Command(_BaseCommand):
-  """\
+  """
   The check command executes the 'check' command in the build directory of 
   all the products of the application.
   It is possible to reduce the list of products to check
   by using the --products option
 
   examples:
-    >> sat check SALOME --products KERNEL,GUI,GEOM
+  >> sat check SALOME --products KERNEL,GUI,GEOM
   """
   
   name = "check"
@@ -104,17 +104,17 @@ Optional: products to configure.
 
 
 def get_products_list(options, cfg, logger):
-    '''method that gives the product list with their informations from 
-       configuration regarding the passed options.
-    
-    :param options Options: The Options instance that stores the commands 
-                            arguments
-    :param cfg Config: The global configuration
-    :param logger Logger: The logger instance to use for the display and 
-                          logging
-    :return: The list of (product name, product_informations).
-    :rtype: List
-    '''
+    """
+    method that gives the product list with their informations from 
+    configuration regarding the passed options.
+    
+    :param options: (Options) The Options instance that stores 
+      the commands arguments
+    :param cfg: (Config) The global configuration
+    :param logger: (Logger) The logger instance to use 
+      for the display and logging
+    :return: (list) The list of (product name, product_informations).
+    """
     # Get the products to be prepared, regarding the options
     if options.products is None:
         # No options, get all products sources
@@ -150,16 +150,17 @@ def log_res_step(logger, res):
         logger.debug("<KO>\n")
 
 def check_all_products(config, products_infos, logger):
-    '''Execute the proper configuration commands 
-       in each product build directory.
-
-    :param config Config: The global configuration
-    :param products_info list: List of 
-                                 (str, Config) => (product_name, product_info)
-    :param logger Logger: The logger instance to use for the display and logging
-    :return: the number of failing commands.
-    :rtype: int
-    '''
+    """
+    Execute the proper configuration commands 
+    in each product build directory.
+
+    :param config: (Config) The global configuration
+    :param products_info: (list) 
+      List of (str, Config) => (product_name, product_info)
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :return: (int) the number of failing commands.
+    """
     res = 0
     for p_name_info in products_infos:
         res_prod = check_product(p_name_info, config, logger)
@@ -168,16 +169,17 @@ def check_all_products(config, products_infos, logger):
     return res
 
 def check_product(p_name_info, config, logger):
-    '''Execute the proper configuration command(s) 
-       in the product build directory.
-    
-    :param p_name_info tuple: (str, Config) => (product_name, product_info)
-    :param config Config: The global configuration
-    :param logger Logger: The logger instance to use for the display 
-                          and logging
-    :return: 1 if it fails, else 0.
-    :rtype: int
-    '''
+    """
+    Execute the proper configuration command(s) 
+    in the product build directory.
+    
+    :param p_name_info: (tuple) 
+      (str, Config) => (product_name, product_info)
+    :param config: (Config) The global configuration
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :return: (int) 1 if it fails, else 0.
+    """
     
     p_name, p_info = p_name_info
 
@@ -214,7 +216,7 @@ is not defined in the definition of %(name)\n""") % p_name
                 
     if ignored or not cmd_found:
         log_step(logger, header, "ignored")
-        logger.debug("==== %s %s\n" % (p_name, "IGNORED")
+        logger.debug("==== %s %s\n" % (p_name, "IGNORED"))
         if not cmd_found:
             return 1
         return 0
index 4a06a17779c36d0ea5c61f2d07b1ccada392eeb0..13a209ba3a138349e45082b0f52c61a894a3e28c 100644 (file)
@@ -36,14 +36,14 @@ PROPERTY_EXPRESSION = "^.+:.+$"
 # Command class
 ########################################################################
 class Command(_BaseCommand):
-  """\
+  """
   The clean command suppresses the source, build, or install directories 
   of the application products.
   Use the options to define what directories you want to suppress and 
   to reduce the list of products
 
   examples:
-    >> sat clean SALOME --build --install --properties is_salome_module:yes
+  >> sat clean SALOME --build --install --properties is_salome_module:yes
   """
   
   name = "clean"
@@ -149,16 +149,16 @@ The '--properties' options must have the following syntax:
     
 
 def get_source_directories(products_infos, without_dev):
-    '''Returns the list of directory source paths corresponding to the list of 
-       product information given as input. If without_dev (bool), then
-       the dev products are ignored.
+    """
+    Returns the list of directory source paths corresponding to the list of 
+    product information given as input. If without_dev (bool), then
+    the dev products are ignored.
     
-    :param products_infos list: The list of (name, config) corresponding to one
-                                product.
-    :param without_dev boolean: If True, then ignore the dev products.
-    :return: the list of source paths.
-    :rtype: list
-    '''
+    :param products_infos: (list) 
+      The list of (name, config) corresponding to one product.
+    :param without_dev: (boolean) If True, then ignore the dev products.
+    :return: (list) the list of source paths.
+    """
     l_dir_source = []
     for __, product_info in products_infos:
         if product_has_dir(product_info, without_dev):
@@ -166,14 +166,14 @@ def get_source_directories(products_infos, without_dev):
     return l_dir_source
 
 def get_build_directories(products_infos):
-    '''Returns the list of directory build paths corresponding to the list of 
-       product information given as input.
+    """
+    Returns the list of directory build paths corresponding to the list of 
+    product information given as input.
     
-    :param products_infos list: The list of (name, config) corresponding to one
-                                product.
-    :return: the list of build paths.
-    :rtype: list
-    '''
+    :param products_infos: (list)
+      The list of (name, config) corresponding to one product.
+    :return: (list) the list of build paths.
+    """
     l_dir_build = []
     for __, product_info in products_infos:
         if product_has_dir(product_info):
@@ -182,14 +182,14 @@ def get_build_directories(products_infos):
     return l_dir_build
 
 def get_install_directories(products_infos):
-    '''Returns the list of directory install paths corresponding to the list of 
-       product information given as input.
+    """
+    Returns the list of directory install paths corresponding to the list of 
+    product information given as input.
     
-    :param products_infos list: The list of (name, config) corresponding to one
-                                product.
-    :return: the list of install paths.
-    :rtype: list
-    '''
+    :param products_infos: (list) 
+      The list of (name, config) corresponding to one product.
+    :return: (list) the list of install paths.
+    """
     l_dir_install = []
     for __, product_info in products_infos:
         if product_has_dir(product_info):
@@ -197,14 +197,16 @@ def get_install_directories(products_infos):
     return l_dir_install
 
 def product_has_dir(product_info, without_dev=False):
-    '''Returns a boolean at True if there is a source, build and install
-       directory corresponding to the product described by product_info.
+    """
+    Returns a boolean at True if there is a source, build and install
+    directory corresponding to the product described by product_info.
     
-    :param products_info Config: The config corresponding to the product.
-    :return: True if there is a source, build and install
-             directory corresponding to the product described by product_info.
-    :rtype: boolean
-    '''
+    :param products_info: (Config) 
+      The config corresponding to the product.
+    :return: (bool)
+      True if there is a source, build and install
+      directory corresponding to the product described by product_info.
+    """
     if (src.product.product_is_native(product_info) or 
                             src.product.product_is_fixed(product_info)):
         return False
@@ -214,12 +216,12 @@ def product_has_dir(product_info, without_dev=False):
     return True
     
 def suppress_directories(l_paths, logger):
-    '''Suppress the paths given in the list in l_paths.
+    """Suppress the paths given in the list in l_paths.
     
-    :param l_paths list: The list of Path to be suppressed
-    :param logger Logger: The logger instance to use for the display and 
-                          logging
-    '''    
+    :param l_paths: (list) The list of Path to be suppressed
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    """    
     for path in l_paths:
         strpath = str(path)
         if not path.isdir():
index e0f6e0b3f73ce5266597793d0943e5f8062b28cd..74919c88dbcc7afc0b75c5dc4229df53da872969 100644 (file)
@@ -125,7 +125,7 @@ class Command(_BaseCommand):
     srcDir = os.path.join(config.APPLICATION.workdir, 'SOURCES')
     buildDir = os.path.join(config.APPLICATION.workdir, 'BUILD')
     
-    msg = _("Application %s, executing compile commands in build directories of products.\n"
+    msg = _("Application %s, executing compile commands in build directories of products.\n")
     logger.info(msg % UTS.label(nameApp))
     
     info = [ (_("SOURCE directory"), srcDir),
@@ -170,17 +170,17 @@ class Command(_BaseCommand):
       
       
 def get_products_list(options, cfg, logger):
-    '''method that gives the product list with their informations from 
-       configuration regarding the passed options.
+    """
+    method that gives the product list with their informations from 
+    configuration regarding the passed options.
     
-    :param options Options: The Options instance that stores the commands 
-                            arguments
-    :param cfg Config: The global configuration
-    :param logger Logger: The logger instance to use for the display and 
-                          logging
-    :return: The list of (product name, product_informations).
-    :rtype: List
-    '''
+    :param options: (Options) 
+      The Options instance that stores the commands arguments
+    :param cfg: (Config) The global configuration
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :return: (list) The list of (product name, product_informations).
+    """
     # Get the products to be prepared, regarding the options
     if options.products is None:
         # No options, get all products sources
@@ -217,15 +217,15 @@ def get_children(config, p_name_p_info):
     return l_res
 
 def get_recursive_children(config, p_name_p_info, without_native_fixed=False):
-    """ Get the recursive list of the product that depend on 
-        the product defined by prod_info
+    """
+    Get the recursive list of the product that depend on 
+    the product defined by prod_info
     
-    :param config Config: The global configuration
-    :param prod_info Config: The specific config of the product
-    :param without_native_fixed boolean: If true, do not include the fixed
-                                         or native products in the result
-    :return: The list of product_informations.
-    :rtype: List
+    :param config: (Config) The global configuration
+    :param prod_info: (Config) The specific config of the product
+    :param without_native_fixed: (bool) 
+      If true, do not include the fixed or native products in the result
+    :return: (list) The list of product_informations.
     """
     p_name, __ = p_name_p_info
     # Initialization of the resulting list
@@ -268,15 +268,15 @@ is not present in application %(appli_name)s.""" %
     return l_children
 
 def get_recursive_fathers(config, p_name_p_info, without_native_fixed=False):
-    """ Get the recursive list of the dependencies of the product defined by
-        prod_info
+    """
+    Get the recursive list of the dependencies of the product defined 
+    by prod_info
     
-    :param config Config: The global configuration
-    :param prod_info Config: The specific config of the product
-    :param without_native_fixed boolean: If true, do not include the fixed
-                                         or native products in the result
-    :return: The list of product_informations.
-    :rtype: List
+    :param config: (Config) The global configuration
+    :param prod_info: (Config) The specific config of the product
+    :param without_native_fixed: (bool) 
+      If true, do not include the fixed or native products in the result
+    :return: (list) The list of product_informations.
     """
     p_name, p_info = p_name_p_info
     # Initialization of the resulting list
@@ -317,10 +317,11 @@ def get_recursive_fathers(config, p_name_p_info, without_native_fixed=False):
     return l_fathers
 
 def sort_products(config, p_infos):
-    """ Sort the p_infos regarding the dependencies between the products
+    """Sort the p_infos regarding the dependencies between the products
     
-    :param config Config: The global configuration
-    :param p_infos list: List of (str, Config) => (product_name, product_info)
+    :param config: (Config) The global configuration
+    :param p_infos: (list) 
+      List of (str, Config) => (product_name, product_info)
     """
     l_prod_sorted = src.deepcopy_list(p_infos)
     for prod in p_infos:
@@ -383,16 +384,16 @@ def log_res_step(logger, res):
 
 
 def compile_all_products(sat, config, options, products_infos, logger):
-    """\
+    """
     Execute the proper configuration commands 
     in each product build directory.
 
-    :param config Config: The global configuration
-    :param products_info list: List of 
-                                 (str, Config) => (product_name, product_info)
-    :param logger Logger: The logger instance to use for the display and logging
-    :return: the number of failing commands.
-    :rtype: int
+    :param config: (Config) The global configuration
+    :param products_info: (list)
+      List of (str, Config) => (product_name, product_info)
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :return: (int) the number of failing commands.
     """
     res = 0
     for p_name_info in products_infos:
@@ -501,12 +502,12 @@ def compile_all_products(sat, config, options, products_infos, logger):
         # Log the result
         if res_prod > 0:
             logger.info("\r%s%s" % (header, " " * len_end_line))
-            logger.info("\r" + header + "<KO> ") + error_step)
-            logger.debug("\n==== <KO> in compile of %s\n" % p_name
+            logger.info("\r" + header + "<KO> " + error_step)
+            logger.debug("\n==== <KO> in compile of %s\n" % p_name)
             if error_step == "CHECK":
                 logger.info(_("\nINSTALL directory = %s") % p_info.install_dir)
         else:
-            logger.info("\r%s%s" % (header, " " * len_end_line)
+            logger.info("\r%s%s" % (header, " " * len_end_line))
             logger.info("\r" + header + "<OK>")
             logger.info(_("\nINSTALL directory = %s") % p_info.install_dir)
             logger.debug("\n==== <OK> in compile of %s\n" % p_name)
@@ -519,18 +520,18 @@ def compile_all_products(sat, config, options, products_infos, logger):
     return res
 
 def compile_product(sat, p_name_info, config, options, logger, header, len_end):
-    '''Execute the proper configuration command(s) 
-       in the product build directory.
+    """
+    Execute the proper configuration command(s) 
+    in the product build directory.
     
-    :param p_name_info tuple: (str, Config) => (product_name, product_info)
-    :param config Config: The global configuration
-    :param logger Logger: The logger instance to use for the display 
-                          and logging
-    :param header Str: the header to display when logging
-    :param len_end Int: the lenght of the the end of line (used in display)
-    :return: 1 if it fails, else 0.
-    :rtype: int
-    '''
+    :param p_name_info: (tuple) (str, Config) => (product_name, product_info)
+    :param config: (Config) The global configuration
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :param header: (str) the header to display when logging
+    :param len_end: (int) the lenght of the the end of line (used in display)
+    :return: (int) 1 if it fails, else 0.
+    """
     
     p_name, p_info = p_name_info
           
@@ -593,18 +594,19 @@ def compile_product_cmake_autotools(sat,
                                     logger,
                                     header,
                                     len_end):
-    '''Execute the proper build procedure for autotools or cmake
-       in the product build directory.
+    """
+    Execute the proper build procedure for autotools or cmake
+    in the product build directory.
     
-    :param p_name_info tuple: (str, Config) => (product_name, product_info)
-    :param config Config: The global configuration
-    :param logger Logger: The logger instance to use for the display 
-                          and logging
-    :param header Str: the header to display when logging
-    :param len_end Int: the lenght of the the end of line (used in display)
-    :return: 1 if it fails, else 0.
-    :rtype: int
-    '''
+    :param p_name_info: (tuple) 
+      (str, Config) => (product_name, product_info)
+    :param config: (Config) The global configuration
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :param header: (str) the header to display when logging
+    :param len_end: (int) the length of the the end of line (used in display)
+    :return: (int) 1 if it fails, else 0.
+    """
     p_name, p_info = p_name_info
     
     # Execute "sat configure", "sat make" and "sat install"
@@ -671,17 +673,17 @@ def compile_product_script(sat,
                            logger,
                            header,
                            len_end):
-    '''Execute the script build procedure in the product build directory.
+    """Execute the script build procedure in the product build directory.
     
-    :param p_name_info tuple: (str, Config) => (product_name, product_info)
-    :param config Config: The global configuration
-    :param logger Logger: The logger instance to use for the display 
-                          and logging
-    :param header Str: the header to display when logging
-    :param len_end Int: the lenght of the the end of line (used in display)
-    :return: 1 if it fails, else 0.
-    :rtype: int
-    '''
+    :param p_name_info: (tuple) 
+      (str, Config) => (product_name, product_info)
+    :param config: (Config) The global configuration
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :param header: (str) the header to display when logging
+    :param len_end: (int) the lenght of the the end of line (used in display)
+    :return: (int) 1 if it fails, else 0.
+    """
     p_name, p_info = p_name_info
     
     # Execute "sat configure", "sat make" and "sat install"
@@ -699,12 +701,13 @@ def compile_product_script(sat,
     return res, len_end_line, error_step 
 
 def add_compile_config_file(p_info, config):
-    '''Execute the proper configuration command(s) 
-       in the product build directory.
+    """
+    Execute the proper configuration command(s) 
+    in the product build directory.
     
-    :param p_info Config: The specific config of the product
-    :param config Config: The global configuration
-    '''
+    :param p_info: (Config) The specific config of the product
+    :param config: (Config) The global configuration
+    """
     # Create the compile config
     compile_cfg = PYCONF.Config()
     for prod_name in p_info.depend:
index fa0b58ab2ba1112e4422151cc8350876a6623f3d..b66203dd50cf9059418f3ee1b9b6e8297801dab3 100644 (file)
@@ -30,17 +30,17 @@ import src.system as SYSS
 # Command class
 ########################################################################
 class Command(_BaseCommand):
-  """\
+  """
   The config command allows manipulation and operation on config '.pyconf' files.
 
-  examples:
-    >> sat config --list
-    >> sat config SALOME --edit
-    >> sat config SALOME --copy SALOME-new
-    >> sat config SALOME --value VARS
-    >> sat config SALOME --debug VARS
-    >> sat config SALOME --info ParaView
-    >> sat config SALOME --show_patchs
+  examples:
+  | >> sat config --list
+  | >> sat config SALOME --edit
+  | >> sat config SALOME --copy SALOME-new
+  | >> sat config SALOME --value VARS
+  | >> sat config SALOME --debug VARS
+  | >> sat config SALOME --info ParaView
+  | >> sat config SALOME --show_patchs
   """
   
   name = "config"
index 59875716bcca00f58eb62a73d935aeb88f36becd..0e87ddfcad72b2a940d5c01e2d0551fafb700749 100644 (file)
@@ -26,18 +26,18 @@ from src.salomeTools import _BaseCommand
 # Command class
 ########################################################################
 class Command(_BaseCommand):
-  """\
+  """
   The configure command executes in the build directory commands
   corresponding to the compilation mode of the application products.
   The possible compilation modes are 'cmake', 'autotools', or 'script'.
 
   Here are the commands to be run:
-    autotools: >> build_configure and configure
-    cmake:     >> cmake
-    script:    (do nothing)
+  autotools: >> build_configure and configure
+  cmake:     >> cmake
+  script:    (do nothing)
   
   examples:
-    >> sat configure SALOME --products KERNEL,GUI,PARAVIS
+  >> sat configure SALOME --products KERNEL,GUI,PARAVIS
   """
   
   name = "configure"
@@ -110,16 +110,17 @@ class Command(_BaseCommand):
 
 
 def get_products_list(options, cfg, logger):
-    '''method that gives the product list with their informations from 
-       configuration regarding the passed options.
-    
-    :param options Options: The Options instance that stores the commands 
-                            arguments
-    :param cfg Config: The global configuration
-    :param logger Logger: The logger instance to use for the display and logging
-    :return: The list of (product name, product_informations).
-    :rtype: List
-    '''
+    """
+    method that gives the product list with their informations from 
+    configuration regarding the passed options.
+    
+    :param options: (Options) 
+      The Options instance that stores the commands arguments
+    :param cfg: (Config) The global configuration
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :return: (list) The list of (product name, product_informations).
+    """
     # Get the products to be prepared, regarding the options
     if options.products is None:
         # No options, get all products sources
@@ -155,17 +156,17 @@ def log_res_step(logger, res):
         logger.debug("<KO>")
 
 def configure_all_products(config, products_infos, conf_option, logger):
-    '''Execute the proper configuration commands 
-       in each product build directory.
-
-    :param config Config: The global configuration
-    :param products_info list: List of 
-                                 (str, Config) => (product_name, product_info)
-    :param conf_option str: The options to add to the command
-    :param logger Logger: The logger instance to use for the display and logging
-    :return: the number of failing commands.
-    :rtype: int
-    '''
+    """
+    Execute the proper configuration commands 
+    in each product build directory.
+
+    :param config: (Config) The global configuration
+    :param products_info: (list) 
+      List of (str, Config) => (product_name, product_info)
+    :param conf_option: (str) The options to add to the command
+    :param logger: (Logger) The logger instance to use for the display and logging
+    :return: (int) the number of failing commands.
+    """
     res = 0
     for p_name_info in products_infos:
         res_prod = configure_product(p_name_info, conf_option, config, logger)
@@ -174,17 +175,18 @@ def configure_all_products(config, products_infos, conf_option, logger):
     return res
 
 def configure_product(p_name_info, conf_option, config, logger):
-    '''Execute the proper configuration command(s) 
-       in the product build directory.
-    
-    :param p_name_info tuple: (str, Config) => (product_name, product_info)
-    :param conf_option str: The options to add to the command
-    :param config Config: The global configuration
-    :param logger Logger: The logger instance to use for the display 
-                          and logging
-    :return: 1 if it fails, else 0.
-    :rtype: int
-    '''
+    """
+    Execute the proper configuration command(s) 
+    in the product build directory.
+    
+    :param p_name_info: (tuple) 
+      (str, Config) => (product_name, product_info)
+    :param conf_option: (str) The options to add to the command
+    :param config: (Config) The global configuration
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :return: (int) 1 if it fails, else 0.
+    """
     
     p_name, p_info = p_name_info
     
index 0a1de0a4798991ffb376a72005bd5f71e39b64a4..8e8467c85ba427a36d61525567c05202e58dd4f1 100644 (file)
@@ -32,11 +32,11 @@ C_ALL_SHELL = [ "bash", "bat", "cfg" ]
 # Command class
 ########################################################################
 class Command(_BaseCommand):
-  """\
+  """
   The environ command generates the environment files of your application.
 
   examples:
-    >> sat environ SALOME
+  >> sat environ SALOME
   """
   
   name = "environ"
@@ -113,20 +113,22 @@ def write_all_source_files(config,
                            shells=["bash"],
                            prefix="env",
                            env_info=None):
-    '''Generates the environment files.
+    """Generates the environment files.
     
-    :param config Config: The global configuration
-    :param logger Logger: The logger instance to use for the display 
-                          and logging
-    :param out_dir str: The path to the directory where the files will be put
-    :param src_root str: The path to the directory where the sources are
-    :param silent boolean: If True, do not print anything in the terminal
-    :param shells list: The list of shells to generate
-    :param prefix str: The prefix to add to the file names.
-    :param env_info str: The list of products to add in the files.
-    :return: The list of the generated files.
-    :rtype: List
-    '''
+    :param config: (Config) The global configuration
+    :param logger: (Logger)
+      The logger instance to use for the display and logging
+    :param out_dir: (str) 
+      The path to the directory where the files will be put
+    :param src_root: (str) 
+      The path to the directory where the sources are
+    :param silent: (bool) 
+      If True, do not print anything in the terminal
+    :param shells: (list) The list of shells to generate
+    :param prefix: (str) The prefix to add to the file names.
+    :param env_info: (str) The list of products to add in the files.
+    :return: (list) The list of the generated files.
+    """
         
     if not out_dir:
         out_dir = config.APPLICATION.workdir
index 494212e2195aebbb1018896f563f122a31ffee14..58eed407af0de01105da15e4012a67186888ff36 100644 (file)
@@ -195,7 +195,7 @@ class Command(_BaseCommand):
                 l_path.append(fic_path[1])
         dic_fic_paths[the_file] = l_path
     
-    logger.info("<OK>\n')
+    logger.info("<OK>\n")
 
     # End the execution if no duplicates were found
     if len(dic_fic_paths) == 0:
@@ -224,14 +224,15 @@ class Command(_BaseCommand):
 def list_directory(lpath, extension_ignored, files_ignored, directories_ignored):
     """Make the list of all files and paths that are not filtered 
     
-    :param lpath List: The list of path to of the directories where to 
-                       search for duplicates
-    :param extension_ignored List: The list of extensions to ignore
-    :param files_ignored List: The list of files to ignore
-    :param directories_ignored List: The list of directory paths to ignore
-    :return: files_arb_out is the list of [file, path] 
-             and files_out is is the list of files
-    :rtype: List, List
+    :param lpath: (list) 
+      The list of path to of the directories where to  search for duplicates
+    :param extension_ignored: (list) The list of extensions to ignore
+    :param files_ignored: (list) The list of files to ignore
+    :param directories_ignored: (list) 
+      The list of directory paths to ignore
+    :return: (list, list) 
+      files_arb_out is the list of [file, path] 
+      and files_out is is the list of files
     """
     files_out = []
     files_arb_out=[]
@@ -251,28 +252,28 @@ def list_directory(lpath, extension_ignored, files_ignored, directories_ignored)
     return files_arb_out, files_out
 
 def format_list_of_str(l_str):
-    '''Make a list from a string
+    """Make a list from a string
     
-    :param l_str List or Str: The variable to format
-    :return: the formatted variable
-    :rtype: List
-    '''
+    :param l_str: (list or str) The variable to format
+    :return: (list) the formatted variable
+    """
     if not isinstance(l_str, list):
         return l_str
     return ",".join(l_str)
 
 class Progress_bar:
-    "Create a progress bar in the terminal"
-    
+    """
+    Create a progress bar in the terminal
+    """
     def __init__(self, name, valMin, valMax, logger, length = 50):
-        '''Initialization of the progress bar.
+        """Initialization of the progress bar.
         
-        :param name str: The name of the progress bar
-        :param valMin float: the minimum value of the variable
-        :param valMax float: the maximum value of the variable
-        :param logger Logger: the logger instance
-        :param length int: the lenght of the progress bar
-        '''
+        :param name: (str) The name of the progress bar
+        :param valMin: (float) the minimum value of the variable
+        :param valMax: (float) the maximum value of the variable
+        :param logger: (Logger) the logger instance
+        :param length: (int) the lenght of the progress bar
+        """
         self.name = name
         self.valMin = valMin
         self.valMax = valMax
@@ -283,12 +284,12 @@ class Progress_bar:
             raise Exception(out_err)
         
     def display_value_progression(self,val):
-        '''Display the progress bar.
+        """Display the progress bar.
         
-        :param val float: val must be between valMin and valMax.
-        '''
+        :param val: (float) val must be between valMin and valMax.
+        """
         if val < self.valMin or val > self.valMax:
-            self.logger.error(_("Wrong value for the progress bar.\n')))
+            self.logger.error(_("Wrong value for the progress bar.\n"))
         else:
             perc = (float(val-self.valMin) / (self.valMax - self.valMin)) * 100.
             nb_equals = int(perc * self.length / 100)
index ced2b8d35e74ab869cfd5453c7f3965e44beb19d..86404db58589cfdeb7f05c5d5ce23679d4bcf6e4 100644 (file)
@@ -329,9 +329,9 @@ def build_context(config, logger):
 def check_module_generator(directory=None):
     """Check if module_generator is available.
     
-    :param directory str: The directory of YACSGEN.
-    :return: The YACSGEN path if the module_generator is available, else None
-    :rtype: str
+    :param directory: (str) The directory of YACSGEN.
+    :return: (str) 
+      The YACSGEN path if the module_generator is available, else None
     """
     undo = False
     if directory is not None and directory not in sys.path:
@@ -353,10 +353,11 @@ def check_module_generator(directory=None):
 def check_yacsgen(config, directory, logger):
     """Check if YACSGEN is available.
     
-    :param config Config: The global configuration.
-    :param directory str: The directory given by option --yacsgen
-    :param logger Logger: The logger instance
-    :return: RCO.ReturnCode with value The path to yacsgen directory if ok
+    :param config: (Config) The global configuration.
+    :param directory: (str) The directory given by option --yacsgen
+    :param logger: (Logger) The logger instance
+    :return: (RCO.ReturnCode) 
+      with value The path to yacsgen directory if ok
     """
     # first check for YACSGEN (command option, then product, then environment)
     yacsgen_dir = None
@@ -375,7 +376,7 @@ def check_yacsgen(config, directory, logger):
     if yacsgen_dir is None:
         RCO.ReturnCode("KO", _("The generate command requires YACSGEN."))
     
-    logger.info("  %s in %s" % (yacs_src, yacsgen_dir)
+    logger.info("  %s in %s" % (yacs_src, yacsgen_dir))
 
     if not os.path.exists(yacsgen_dir):
         msg = _("YACSGEN directory not found: '%s'") % yacsgen_dir
index 3a04ccc1c206ecb8f8546ac40425d848f579303c..15154ad1b3b4dbd36aa86111c88af9747f4ad65b 100644 (file)
@@ -105,14 +105,13 @@ class Command(_BaseCommand):
 
 
 def set_local_value(config, key, value, logger):
-    """ Edit the site.pyconf file and change a value.
+    """Edit the site.pyconf file and change a value.
 
-    :param config Config: The global configuration.    
-    :param key Str: The key from which to change the value.
-    :param value Str: The path to change.
-    :param logger Logger: The logger instance.
-    :return: 0 if all is OK, else 1
-    :rtype: int
+    :param config: (Config) The global configuration.    
+    :param key: (str) The key from which to change the value.
+    :param value: (str) The path to change.
+    :param logger: (Logger) The logger instance.
+    :return: (int) 0 if all is OK, else 1
     """
     local_file_path = os.path.join(config.VARS.datadir, "local.pyconf")
     # Update the local.pyconf file
@@ -133,11 +132,11 @@ def set_local_value(config, key, value, logger):
     return RCO.ReturnCode("OK")
     
 def display_local_values(config, logger):
-    """ Display the base path
+    """Display the base path
 
-    :param config Config: The global configuration.
-    :param key Str: The key from which to change the value.
-    :param logger Logger: The logger instance.
+    :param config: (Config) The global configuration.
+    :param key: (str) The key from which to change the value.
+    :param logger: (Logger) The logger instance.
     """
     info = [("base", config.LOCAL.base),
             ("workdir", config.LOCAL.workdir),
@@ -150,10 +149,10 @@ def display_local_values(config, logger):
     return 0
 
 def check_path(path_to_check, logger):
-    """ Verify that the given path is not a file and can be created.
+    """Verify that the given path is not a file and can be created.
     
-    :param path_to_check Str: The path to check.
-    :param logger Logger: The logger instance.
+    :param path_to_check: (str) The path to check.
+    :param logger: (Logger) The logger instance.
     """
     if path_to_check == "default":
         return 0
@@ -176,7 +175,7 @@ Please provide a path to a directory\n""") % UTS.blue(path_to_check)
         msg = _("""\
 Unable to create the directory %s:
 
-%s\n""") % (UTS.blue(str(path)), UTS.yellow(e)
+%s\n""") % (UTS.blue(str(path)), UTS.yellow(e))
         logger.error(msg)
         return 1
     
index a767ebad9c6f4b3174c0090524982754f064c5d0..f5817a39aa817bd6e8550c12896b3f4d59d746af 100644 (file)
@@ -31,7 +31,7 @@ class Command(_BaseCommand):
   in the jobs configuration file\
   
   examples:
-    >> sat job --jobs_config my_jobs --name my_job"
+  >> sat job --jobs_config my_jobs --name my_job"
   """
   
   name = "job"
index 4f88f42d19f1af4b0f2d15c9a4fa583cd9ac0b3d..ce0fc9396e17b478c2acc446ae44e2ceeb177b12 100644 (file)
@@ -64,7 +64,7 @@ def getParamiko(logger=None):
 # Command class
 ########################################################################
 class Command(_BaseCommand):
-  """\
+  """
   The jobs command command launches maintenances that are described in 
   the dedicated jobs configuration file.
 
@@ -292,7 +292,7 @@ Use the --list option to get the possible files.\n""") % config_file
   
 
 class Machine(object):
-    """\
+    """
     Manage a ssh connection on a machine
     """
     def __init__(self,
@@ -314,11 +314,11 @@ class Machine(object):
         self._connection_successful = None
     
     def connect(self, logger):
-        '''Initiate the ssh connection to the remote machine
+        """Initiate the ssh connection to the remote machine
         
         :param logger: The logger instance 
-        :return: Nothing
-        '''
+        :return: None
+        """
 
         self._connection_successful = False
         self.ssh.load_system_host_keys()
@@ -344,12 +344,11 @@ class Machine(object):
         return message
     
     def successfully_connected(self, logger):
-        """\
+        """
         Verify if the connection to the remote machine has succeed
         
         :param logger: The logger instance 
-        :return: True if the connection has succeed, False if not
-        :rtype: bool
+        :return: (bool) True if the connection has succeed, False if not
         """
         if self._connection_successful == None:
             message = _("""\
@@ -381,10 +380,11 @@ whereas there were no connection request""" % \
         return res
         
     def put_dir(self, source, target, filters = []):
-        '''Uploads the contents of the source directory to the target path.
+        """
+        Uploads the contents of the source directory to the target path.
         The target directory needs to exists. 
         All sub-directories in source are created under target.
-        '''
+        """
         for item in os.listdir(source):
             if item in filters:
                 continue
@@ -408,8 +408,9 @@ whereas there were no connection request""" % \
                     self.put_dir(source_path, destination_path)
 
     def mkdir(self, path, mode=511, ignore_existing=False):
-        '''As mkdir by adding an option to not fail if the folder exists 
-        '''
+        """
+        As mkdir by adding an option to not fail if the folder exists 
+        """
         try:
             self.sftp.mkdir(path, mode)
         except IOError:
@@ -419,15 +420,14 @@ whereas there were no connection request""" % \
                 raise       
     
     def exec_command(self, command, logger):
-        '''Execute the command on the remote machine
+        """Execute the command on the remote machine
         
-        :param command str: The command to be run
+        :param command: (str) The command to be run
         :param logger: The logger instance 
-        :return: the stdin, stdout, and stderr of the executing command,
-                 as a 3-tuple
-        :rtype: (paramiko.channel.ChannelFile, paramiko.channel.ChannelFile,
-                paramiko.channel.ChannelFile)
-        '''
+        :return: (paramiko.channel.ChannelFile, etc) 
+          the stdin, stdout, and stderr of the executing command,
+          as a 3-tuple
+        """
         import traceback
         try:        
             # Does not wait the end of the command
@@ -447,20 +447,16 @@ whereas there were no connection request""" % \
         return (stdin, stdout, stderr)
 
     def close(self):
-        '''Close the ssh connection
-        
-        :rtype: N\A
-        '''
+        """Close the ssh connection"""
         self.ssh.close()
      
     def write_info(self, logger):
-        """\
+        """
         Prints the informations relative to the machine in the logger 
         (terminal traces and log file)
         
         :param logger: The logger instance
-        :return: Nothing
-        :rtype: N\A
+        :return: None
         """
         if self.successfully_connected(logger):
             msg = "<OK>"
@@ -469,11 +465,11 @@ whereas there were no connection request""" % \
         msg += "host: %s, " % self.host
         msg += "port: %s, " % str(self.port)
         msg += "user: %s" % str(self.user)
-       logger.info("Connection %s" % msg ) 
+        logger.info("Connection %s" % msg ) 
 
 
 class Job(object):
-    """\
+    """
     Class to manage one job
     """
     def __init__(self,
@@ -532,11 +528,11 @@ class Job(object):
             self.command = prefix + ' "' + self.command +'"'
     
     def get_pids(self):
-        """ Get the pid(s) corresponding to the command that have been launched
-            On the remote machine
+        """
+        Get the pid(s) corresponding to the command that have been launched
+        On the remote machine
         
-        :return: The list of integers corresponding to the found pids
-        :rtype: List
+        :return: (list) The list of integers corresponding to the found pids
         """
         pids = []
         cmd_pid = 'ps aux | grep "' + self.command + '" | awk \'{print $2}\''
@@ -547,11 +543,10 @@ class Job(object):
         return pids
     
     def kill_remote_process(self, wait=1):
-        '''Kills the process on the remote machine.
+        """Kills the process on the remote machine.
         
-        :return: (the output of the kill, the error of the kill)
-        :rtype: (str, str)
-        '''
+        :return: (str, str) the output of the kill, the error of the kill
+        """
         try:
             pids = self.get_pids()
         except:
@@ -564,21 +559,20 @@ class Job(object):
         return (out_kill.read().decode(), err_kill.read().decode())
             
     def has_begun(self):
-        '''Returns True if the job has already begun
+        """Returns True if the job has already begun
         
-        :return: True if the job has already begun
-        :rtype: bool
-        '''
+        :return: (bool) True if the job has already begun
+        """
         return self._has_begun
     
     def has_finished(self):
-        '''Returns True if the job has already finished 
-           (i.e. all the commands have been executed)
-           If it is finished, the outputs are stored in the fields out and err.
+        """
+        Returns True if the job has already finished 
+        (i.e. all the commands have been executed)
+        If it is finished, the outputs are stored in the fields out and err.
         
-        :return: True if the job has already finished
-        :rtype: bool
-        '''
+        :return: (bool) True if the job has already finished
+        """
         
         # If the method has already been called and returned True
         if self._has_finished:
@@ -604,7 +598,7 @@ class Job(object):
         return self._has_finished
           
     def get_log_files(self):
-        """\
+        """
         Get the log files produced by the command launched 
         on the remote machine, and put it in the log directory of the user,
         so they can be accessible from 
@@ -677,14 +671,14 @@ class Job(object):
                             {"1": str(job_path_remote), "2": str(e)}
 
     def has_failed(self):
-        '''Returns True if the job has failed. 
-           A job is considered as failed if the machine could not be reached,
-           if the remote command failed, 
-           or if the job finished with a time out.
-        
-        :return: True if the job has failed
-        :rtype: bool
-        '''
+        """
+        Returns True if the job has failed. 
+        A job is considered as failed if the machine could not be reached,
+        if the remote command failed, 
+        or if the job finished with a time out.
+        
+        :return: (bool) True if the job has failed
+        """
         if not self.has_finished():
             return False
         if not self.machine.successfully_connected(self.logger):
@@ -696,8 +690,9 @@ class Job(object):
         return False
     
     def cancel(self):
-        """In case of a failing job, one has to cancel every job that depend 
-           on it. This method put the job as failed and will not be executed.
+        """
+        In case of a failing job, one has to cancel every job that depend on it.
+        This method put the job as failed and will not be executed.
         """
         if self.cancelled:
             return
@@ -709,19 +704,17 @@ class Job(object):
         self.err += msg
 
     def is_running(self):
-        '''Returns True if the job commands are running 
+        """Returns True if the job commands are running 
         
-        :return: True if the job is running
-        :rtype: bool
-        '''
+        :return: (bool) True if the job is running
+        """
         return self.has_begun() and not self.has_finished()
 
     def is_timeout(self):
-        '''Returns True if the job commands has finished with timeout 
+        """Returns True if the job commands has finished with timeout 
         
-        :return: True if the job has finished with timeout
-        :rtype: bool
-        '''
+        :return:  (bool) True if the job has finished with timeout
+        """
         return self._has_timouted
 
     def time_elapsed(self):
@@ -736,8 +729,9 @@ class Job(object):
         return T_now - self._T0
     
     def check_time(self):
-        """Verify that the job has not exceeded its timeout.
-           If it has, kill the remote command and consider the job as finished.
+        """
+        Verify that the job has not exceeded its timeout.
+        If it has, kill the remote command and consider the job as finished.
         """
         if not self.has_begun():
             return
@@ -754,16 +748,15 @@ class Job(object):
                 self.err += _("Unable to get remote log files!\n%s\n" % str(e))
             
     def total_duration(self):
-        """\
-        Give the total duration of the job
+        """
+        Gives the total duration of the job
         
-        :return: the total duration of the job in seconds
-        :rtype: int
+        :return: (int) the total duration of the job in seconds
         """
         return self._Tf - self._T0
         
     def run(self):
-        """\
+        """
         Launch the job by executing the remote command.
         """
         
@@ -802,7 +795,7 @@ class Job(object):
         self._has_begun = True
     
     def write_results(self):
-        """\
+        """
         Display on the terminal all the job's information
         """
         msg = "name : %s\n" % self.name
@@ -810,10 +803,10 @@ class Job(object):
           msg += "after : %s\n" % self.after
         msg += "Time elapsed : %4imin %2is \n" % (self.total_duration()//60 , self.total_duration()%60)
         if self._T0 != -1:
-            msg += "Begin time : %s\n" % 
+            msg += "Begin time : %s\n" % \
                    time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(self._T0))
         if self._Tf != -1:
-            msg += "End time   : %s\n\n" % 
+            msg += "End time   : %s\n\n" % \
                    time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(self._Tf))
         
         self.logger.info(msg)
@@ -828,15 +821,13 @@ class Job(object):
             msg += "Unable to get output\n"
         else:
             msg += self.out + "\n"
-        msg += "err :\n%s\n" % .err
+        msg += "err :\n%s\n" % self.err
         self.logger.info(msg)
         
     def get_status(self):
-        """\
-        Get the status of the job (used by the Gui for xml display)
+        """Get the status of the job (used by the Gui for xml display)
         
-        :return: The current status of the job
-        :rtype: String
+        :return: (str) The current status of the job
         """
         if not self.machine.successfully_connected(self.logger):
             return "SSH connection KO"
@@ -852,7 +843,7 @@ class Job(object):
             return "Finished since " + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(self._Tf))
     
 class Jobs(object):
-    """\
+    """
     Class to manage the jobs to be run
     """
     def __init__(self,
@@ -888,14 +879,13 @@ class Jobs(object):
         self.determine_jobs_and_machines()
     
     def define_job(self, job_def, machine):
-        """\
+        """
         Takes a pyconf job definition and a machine (from class machine)
         and returns the job instance corresponding to the definition.
         
-        :param job_def src.config.Mapping: a job definition 
-        :param machine machine: the machine on which the job will run
-        :return: The corresponding job in a job class instance
-        :rtype: job
+        :param job_def: (Mapping a job definition 
+        :param machine: (Machine) the machine on which the job will run
+        :return: (Job) The corresponding job in a job class instance
         """
         name = job_def.name
         cmmnds = job_def.commands
@@ -929,7 +919,7 @@ class Jobs(object):
                    prefix = prefix)
     
     def determine_jobs_and_machines(self):
-        """\
+        """
         Reads the pyconf jobs definition and instantiates all
         the machines and jobs to be done today.
 
@@ -1015,11 +1005,9 @@ The job will not be launched.
         self.lhosts = host_list
         
     def ssh_connection_all_machines(self, pad=50):
-        """\
-        Do the ssh connection to every machine to be used today.
+        """Do the ssh connection to every machine to be used today.
 
-        :return: Nothing
-        :rtype: N\A
+        :return: None
         """
         self.logger.info( "Establishing connection with all the machines :\n")
         for machine in self.lmachines:
@@ -1089,14 +1077,15 @@ The job will not be launched.
         
 
     def is_occupied(self, hostname):
-        '''Function that returns True if a job is running on 
-           the machine defined by its host and its port.
-        
-        :param hostname (str, int): the pair (host, port)
-        :return: the job that is running on the host, 
-                or false if there is no job running on the host. 
-        :rtype: job / bool
-        '''
+        """
+        Returns True if a job is running on 
+        the machine defined by its host and its port.
+        
+        :param hostname: (str, int) the pair (host, port)
+        :return: (Job or bool) 
+          the job that is running on the host, 
+          or false if there is no job running on the host. 
+        """
         host = hostname[0]
         port = hostname[1]
         for jb in self.ljobs:
@@ -1106,12 +1095,12 @@ The job will not be launched.
         return False
     
     def update_jobs_states_list(self):
-        '''Function that updates the lists that store the currently
-           running jobs and the jobs that have already finished.
+        """
+        Updates the lists that store the currently
+        running jobs and the jobs that have already finished.
         
-        :return: Nothing. 
-        :rtype: N\A
-        '''
+        :return: None
+        """
         jobs_finished_list = []
         jobs_running_list = []
         for jb in self.ljobs:
@@ -1130,11 +1119,10 @@ The job will not be launched.
         return nb_job_finished_now > nb_job_finished_before
     
     def cancel_dependencies_of_failing_jobs(self):
-        '''Function that cancels all the jobs that depend on a failing one.
+        """Cancels all the jobs that depend on a failing one.
         
-        :return: Nothing. 
-        :rtype: N\A
-        '''
+        :return: None
+        """
         
         for job in self.ljobs:
             if job.after is None:
@@ -1144,12 +1132,11 @@ The job will not be launched.
                 job.cancel()
     
     def find_job_that_has_name(self, name):
-        '''Returns the job by its name.
+        """Returns the job by its name.
         
-        :param name str: a job name
-        :return: the job that has the name. 
-        :rtype: job
-        '''
+        :param name: (str) a job name
+        :return: (Job) the job that has the name. 
+        """
         for jb in self.ljobs:
             if jb.name == name:
                 return jb
@@ -1157,14 +1144,14 @@ The job will not be launched.
         return None
     
     def str_of_length(self, text, length):
-        '''Takes a string text of any length and returns 
-           the most close string of length "length".
-        
-        :param text str: any string
-        :param length int: a length for the returned string
-        :return: the most close string of length "length"
-        :rtype: str
-        '''
+        """
+        Takes a string text of any length and returns 
+        the most close string of length "length".
+        
+        :param text: (str) any string
+        :param length: (int) a length for the returned string
+        :return: (str) the most close string of length "length"
+        """
         if len(text) > length:
             text_out = text[:length-3] + '...'
         else:
@@ -1176,14 +1163,13 @@ The job will not be launched.
         return text_out
     
     def display_status(self, len_col):
-        """\
+        """
         Takes a lenght and construct the display of the current status 
         of the jobs in an array that has a column for each host.
         It displays the job that is currently running on the host of the column.
         
-        :param len_col int: the size of the column 
-        :return: Nothing
-        :rtype: N\A
+        :param len_col: (int) the size of the column 
+        :return: None
         """  
         display_line = ""
         for host_port in self.lhosts:
@@ -1199,15 +1185,14 @@ The job will not be launched.
     
 
     def run_jobs(self):
-        """\
+        """
         The main method. Runs all the jobs on every host. 
         For each host, at a given time, only one job can be running.
         The jobs that have the field after (that contain the job that has
         to be run before it) are run after the previous job.
         This method stops when all the jobs are finished.
         
-        :return: Nothing
-        :rtype: N\A
+        :return: None
         """
         # Print header
         self.logger.info(_('Executing the jobs :\n'))
@@ -1274,11 +1259,9 @@ The job will not be launched.
             self.gui.last_update()
 
     def write_all_results(self):
-        """\
-        Display all the jobs outputs.
+        """Display all the jobs outputs.
         
-        :return: Nothing
-        :rtype: N\A
+        :return: None
         """
         for jb in self.ljobs:
             self.logger.info("#------- Results for job %s -------#\n" % jb.name)
@@ -1286,7 +1269,7 @@ The job will not be launched.
             self.logger.info("\n\n")
 
 class Gui(object):
-    """\
+    """
     Class to manage the the xml data that can be displayed in a browser 
     to see the jobs states
     """
@@ -1297,13 +1280,15 @@ class Gui(object):
                  prefix,
                  logger,
                  file_boards=""):
-        """\
-        Initialization
-        
-        :param xml_dir_path str: The path to the directory where to put the xml resulting files
-        :param l_jobs List: the list of jobs that run today
-        :param l_jobs_not_today List: the list of jobs that do not run today
-        :param file_boards str: the file path from which to read the expected boards
+        """Initialization
+        
+        :param xml_dir_path: (str) 
+          The path to the directory where to put the xml resulting files
+        :param l_jobs: (list) the list of jobs that run today
+        :param l_jobs_not_today: (list) 
+          the list of jobs that do not run today
+        :param file_boards: (str) 
+          the file path from which to read the expected boards
         """
         # The logging instance
         self.logger = logger
@@ -1343,9 +1328,11 @@ class Gui(object):
         self.update_xml_files(l_jobs)
     
     def add_xml_board(self, name):
-        '''Add a board to the board list   
-        :param name str: the board name
-        '''
+        """
+        Add a board to the board list
+        
+        :param name: (str) the board name
+        """
         xml_board_path = os.path.join(self.xml_dir_path, name + ".xml")
         self.d_xml_board_files[name] =  XMLMGR.XmlLogFile(xml_board_path,"JobsReport")
         self.d_xml_board_files[name].add_simple_node("distributions")
@@ -1353,12 +1340,12 @@ class Gui(object):
         self.d_xml_board_files[name].add_simple_node("board", text=name)
            
     def initialize_boards(self, l_jobs, l_jobs_not_today):
-        """\
+        """
         Get all the first information needed for each file and write the 
         first version of the files 
         
-        :param l_jobs List: the list of jobs that run today
-        :param l_jobs_not_today List: the list of jobs that do not run today
+        :param l_jobs: (list) the list of jobs that run today
+        :param l_jobs_not_today: (list) the list of jobs that do not run today
         """
         # Get the boards to fill and put it in a dictionary
         # {board_name : xml instance corresponding to the board}
@@ -1489,12 +1476,15 @@ class Gui(object):
                             attrib={"distribution" : row, "application" : column } )
 
     def find_history(self, l_jobs, l_jobs_not_today):
-        """find, for each job, in the existent xml boards the results for the 
-           job. Store the results in the dictionnary self.history = {name_job : 
-           list of (date, status, list links)}
-        
-        :param l_jobs List: the list of jobs to run today   
-        :param l_jobs_not_today List: the list of jobs that do not run today
+        """
+        find, for each job, in the existent xml boards the results for the job.
+        Store the results in the dictionary 
+        self.history = {name_job : list of (date, status, list links)}
+        
+        :param l_jobs: (list) 
+          the list of jobs to run today   
+        :param l_jobs_not_today: (list) 
+          the list of jobs that do not run today
         """
         # load the all the history
         expression = "^[0-9]{8}_+[0-9]{6}_" + self.global_name + ".xml$"
@@ -1509,7 +1499,7 @@ class Gui(object):
                     l_globalxml.append(global_xml)
                 except Exception as e:
                     msg = _("The file '%s' can not be read, it will be ignored\n%s") % \
-                           (file_path, e})
+                           (file_path, e)
                     self.logger.warning("%s\n" % msg)
                     
         # Construct the dictionnary self.history 
@@ -1530,12 +1520,14 @@ class Gui(object):
             self.history[job.name] = l_links
   
     def put_jobs_not_today(self, l_jobs_not_today, xml_node_jobs):
-        """\
+        """
         Get all the first information needed for each file and write the 
         first version of the files   
 
-        :param xml_node_jobs etree.Element: the node corresponding to a job
-        :param l_jobs_not_today List: the list of jobs that do not run today
+        :param xml_node_jobs: (etree.Element) 
+          the node corresponding to a job
+        :param l_jobs_not_today: (list) 
+          the list of jobs that do not run today
         """
         
         ASNODE = XMLMGR.add_simple_node # shortcut
@@ -1563,10 +1555,11 @@ class Gui(object):
                             attrib={"date" : date, "res" : res_job, "last" : "no"} )
 
     def parse_csv_boards(self, today):
-        """ Parse the csv file that describes the boards to produce and fill 
-            the dict d_input_boards that contain the csv file contain
+        """ 
+        Parse the csv file that describes the boards to produce and fill 
+        the dict d_input_boards that contain the csv file contain
         
-        :param today int: the current day of the week 
+        :param today: (int) the current day of the week 
         """
         # open the csv file and read its content
         l_read = []
@@ -1614,10 +1607,10 @@ class Gui(object):
         self.d_input_boards = d_boards
 
     def update_xml_files(self, l_jobs):
-        '''Write all the xml files with updated information about the jobs   
+        """Write all the xml files with updated information about the jobs   
 
-        :param l_jobs List: the list of jobs that run today
-        '''
+        :param l_jobs: (list) the list of jobs that run today
+        """
         for xml_file in [self.xml_global_file] + list(
                                             self.d_xml_board_files.values()):
             self.update_xml_file(l_jobs, xml_file)
@@ -1626,11 +1619,12 @@ class Gui(object):
         self.write_xml_files()
             
     def update_xml_file(self, l_jobs, xml_file):      
-        '''update information about the jobs for the file xml_file   
+        """update information about the jobs for the file xml_file   
 
-        :param l_jobs List: the list of jobs that run today
-        :param xml_file xmlManager.XmlLogFile: the xml instance to update
-        '''
+        :param l_jobs: (list) the list of jobs that run today
+        :param xml_file: (xmlManager.XmlLogFile) 
+          the xml instance to update
+        """
         
         xml_node_jobs = xml_file.xmlroot.find('jobs')
         # Update the job names and status node
@@ -1721,14 +1715,15 @@ class Gui(object):
                
 
     def find_test_log(self, l_remote_log_files):
-        '''Find if there is a test log (board) in the remote log files and 
-           the path to it. There can be several test command, so the result is
-           a list.
+        """
+        Find if there is a test log (board) in the remote log files and 
+        the path to it. There can be several test command, 
+        so the result is a list.
 
-        :param l_remote_log_files List: the list of all remote log files
-        :return: the list of (test log files path, res of the command)
-        :rtype: List
-        '''
+        :param l_remote_log_files: (list) the list of all remote log files
+        :return: (list) 
+          the list of tuples (test log files path, res of the command)
+        """
         res = []
         for file_path in l_remote_log_files:
             dirname = os.path.basename(os.path.dirname(file_path))
@@ -1749,11 +1744,11 @@ class Gui(object):
         return res
     
     def last_update(self, finish_status = "finished"):
-        '''update information about the jobs for the file xml_file   
+        """update information about the jobs for the file xml_file   
 
-        :param l_jobs List: the list of jobs that run today
-        :param xml_file xmlManager.XmlLogFile: the xml instance to update
-        '''
+        :param l_jobs: (list) the list of jobs that run today
+        :param xml_file: (xmlManager.XmlLogFile) the xml instance to update
+        """
         for xml_file in [self.xml_global_file] + list(self.d_xml_board_files.values()):
             xml_node_infos = xml_file.xmlroot.find('infos')
             XMLMGR.append_node_attrib(xml_node_infos,
@@ -1762,8 +1757,9 @@ class Gui(object):
         self.write_xml_files()
 
     def write_xml_file(self, xml_file, stylesheet):
-        ''' Write one xml file and the same file with prefix
-        '''
+        """
+        Write one xml file and the same file with prefix
+        """
         xml_file.write_tree(stylesheet)
         file_path = xml_file.logFile
         file_dir = os.path.dirname(file_path)
@@ -1773,8 +1769,9 @@ class Gui(object):
                                                      file_name_with_prefix))
         
     def write_xml_files(self):
-        ''' Write the xml files   
-        '''
+        """
+        Write the xml files   
+        """
         self.write_xml_file(self.xml_global_file, STYLESHEET_GLOBAL)
         for xml_file in self.d_xml_board_files.values():
             self.write_xml_file(xml_file, STYLESHEET_BOARD)
@@ -1799,10 +1796,11 @@ def get_config_file_path(job_config_name, l_cfg_dir):
     return found, file_jobs_cfg
 
 def develop_factorized_jobs(config_jobs):
-    '''update information about the jobs for the file xml_file   
+    """update information about the jobs for the file xml_file   
     
-    :param config_jobs Config: the config corresponding to the jos description
-    '''
+    :param config_jobs: (Config) 
+      the config corresponding to the jos description
+    """
     developed_jobs_list = []
     for jb in config_jobs.jobs:
         # case where the jobs are not developed
index 898207e9e72ad1859df0f7c6695c5bd81a9a8556..d9d0edaf22bcb4e6b7be9d25f44688a614306f96 100644 (file)
@@ -31,11 +31,11 @@ from src.salomeTools import _BaseCommand
 # Command class
 ########################################################################
 class Command(_BaseCommand):
-  """\
+  """
   The launcher command generates a SALOME launcher.
   
   examples:
-    >> sat launcher SALOME 
+  >> sat launcher SALOME 
   """
   
   name = "launcher"
@@ -104,19 +104,18 @@ def generate_launch_file(config,
                          pathlauncher,
                          display=True,
                          additional_env={}):
-    '''Generates the launcher file.
+    """Generates the launcher file.
     
-    :param config Config: The global configuration
-    :param logger Logger: The logger instance to use for the display 
-                          and logging
-    :param launcher_name str: The name of the launcher to generate
-    :param pathlauncher str: The path to the launcher to generate
-    :param display boolean: If False, do not print anything in the terminal
-    :param additional_env dict: The dict giving additional 
-                                environment variables
-    :return: The launcher file path.
-    :rtype: str
-    '''
+    :param config: (Config) The global configuration
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :param launcher_name: (str) The name of the launcher to generate
+    :param pathlauncher: (str) The path to the launcher to generate
+    :param display: (bool) If False, do not print anything in the terminal
+    :param additional_env: (dict) 
+      The dict giving additional environment variables
+    :return: (str) The launcher file path.
+    """
     
     # Compute the default launcher path if it is not provided in pathlauncher
     # parameter
@@ -188,12 +187,11 @@ def generate_launch_file(config,
 def generate_catalog(machines, config, logger):
     """Generates an xml catalog file from a list of machines.
     
-    :param machines List: The list of machines to add in the catalog   
-    :param config Config: The global configuration
-    :param logger Logger: The logger instance to use for the display 
-                          and logging
-    :return: The catalog file path.
-    :rtype: str
+    :param machines: (list) The list of machines to add in the catalog   
+    :param config: (Config) The global configuration
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :return: (str) The catalog file path.
     """
     # remove empty machines
     machines = map(lambda l: l.strip(), machines)
@@ -201,7 +199,7 @@ def generate_catalog(machines, config, logger):
     
     # log something
     logger.debug("  %s = %s\n" % \
-                 (_("Generate Resources Catalog"),", ".join(machines))
+                 (_("Generate Resources Catalog"), ", ".join(machines)) )
     
     # The command to execute on each machine in order to get some information
     cmd = '"cat /proc/cpuinfo | grep MHz ; cat /proc/meminfo | grep MemTotal"'
@@ -258,10 +256,10 @@ def generate_catalog(machines, config, logger):
 def copy_catalog(config, catalog_path):
     """Copy the xml catalog file into the right location
     
-    :param config Config: The global configuration
-    :param catalog_path str: the catalog file path
-    :return: The environment dictionary corresponding to the file path.
-    :rtype: Dict
+    :param config: (Config) The global configuration
+    :param catalog_path: (str) the catalog file path
+    :return: (dict) 
+      The environment dictionary corresponding to the file path.
     """
     # Verify the existence of the file
     if not os.path.exists(catalog_path):
index 4b9baf6ead1621dc98f2162a391a35aa49079dd3..c32aca2f06dea72c694077f13a5ed58797b7ac64 100644 (file)
@@ -43,11 +43,11 @@ except NameError:
 # Command class
 ########################################################################
 class Command(_BaseCommand):
-  """\
+  """
   The log command gives access to the logs produced by the salomeTools commands.
 
   examples:
-    >> sat log
+  >> sat log
   """
   
   name = "log"
@@ -237,14 +237,13 @@ class Command(_BaseCommand):
     return RCO.ReturnCode("OK", "option no browser")
  
 def get_last_log_file(logDir, notShownCommands):
-    """\
+    """
     Used in case of last option. 
     Get the last log command file path.
     
-    :param logDir str: The directory where to search the log files
-    :param notShownCommands list: the list of commands to ignore
-    :return: the path to the last log file
-    :rtype: str
+    :param logDir: (str) The directory where to search the log files
+    :param notShownCommands: (list) the list of commands to ignore
+    :return: (str) the path to the last log file
     """
     last = (_, 0)
     for fileName in os.listdir(logDir):
@@ -267,22 +266,22 @@ def get_last_log_file(logDir, notShownCommands):
     return res
 
 def remove_log_file(filePath, logger):
-    '''if it exists, print a warning and remove the input file
+    """if it exists, print a warning and remove the input file
     
     :param filePath: the path of the file to delete
-    :param logger Logger: the logger instance to use for the print 
-    '''
+    :param logger: (Logger) the logger instance to use for the print 
+    """
     if os.path.exists(filePath):
         logger.debug(UTS.red("Removing %s\n" % filePath))
         os.remove(filePath)
 
 def print_log_command_in_terminal(filePath, logger):
-    '''Print the contain of filePath. It contains a command log in xml format.
+    """Print the contain of filePath. It contains a command log in xml format.
     
-    :param filePath: The command xml file from which extract the commands 
-                     context and traces
-    :param logger Logger: the logging instance to use in order to print.  
-    '''
+    :param filePath: 
+      The command xml file from which extract the commands context and traces
+    :param logger: (Logger) the logging instance to use in order to print.  
+    """
     logger.debug(_("Reading %s\n") % filePath)
     # Instantiate the ReadXmlFile class that reads xml files
     xmlRead = XMLMGR.ReadXmlFile(filePath)
@@ -370,12 +369,12 @@ def show_product_last_logs(logger, config, product_log_dir):
             SYSS.show_in_editor(config.USER.editor, log_file_path, logger)
         
 def ask_value(nb):
-    '''Ask for an int n. 0<n<nb
+    """Ask for an int n. 0<n<nb
     
-    :param nb int: The maximum value of the value to be returned by the user.
-    :return: the value entered by the user. Return -1 if it is not as expected
-    :rtype: int
-    '''
+    :param nb: (int) The maximum value of the value to be returned by the user.
+    :return: (int) 
+      the value entered by the user. Return -1 if it is not as expected
+    """
     try:
         # ask for a value
         rep = input(_("Which one (enter or 0 to quit)? "))
index 664c937e1a118923de1e9b2dc6ea2fc22e49fae1..502f5fe1f889d2ebd8438713ed9bacc647cb63ac 100644 (file)
@@ -29,11 +29,11 @@ from src.salomeTools import _BaseCommand
 # Command class
 ########################################################################
 class Command(_BaseCommand):
-  """\
+  """
   The make command executes the 'make' command in the build directory.
 
   examples:
-    >> sat make SALOME --products Python,KERNEL,GUI
+  >> sat make SALOME --products Python,KERNEL,GUI
   """
   
   name = "make"
@@ -103,17 +103,17 @@ class Command(_BaseCommand):
 
 
 def get_products_list(options, cfg, logger):
-    '''method that gives the product list with their informations from 
-       configuration regarding the passed options.
+    """
+    method that gives the product list with their informations from 
+    configuration regarding the passed options.
     
-    :param options Options: The Options instance that stores the commands 
-                            arguments
-    :param cfg Config: The global configuration
-    :param logger Logger: The logger instance to use for the display and 
-                          logging
-    :return: The list of (product name, product_informations).
-    :rtype: List
-    '''
+    :param options: (Options) 
+      The Options instance that stores the commands arguments
+    :param cfg: (Config) The global configuration
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :return: (list) The list of tuples (product name, product_informations).
+    """
     # Get the products to be prepared, regarding the options
     if options.products is None:
         # No options, get all products sources
@@ -152,17 +152,18 @@ def log_res_step(logger, res):
 
 
 def make_all_products(config, products_infos, make_option, logger):
-    '''Execute the proper configuration commands 
-       in each product build directory.
+    """
+    Execute the proper configuration commands 
+    in each product build directory.
 
-    :param config Config: The global configuration
-    :param products_info list: List of 
-                                 (str, Config) => (product_name, product_info)
-    :param make_option str: The options to add to the command
-    :param logger Logger: The logger instance to use for the display and logging
-    :return: the number of failing commands.
-    :rtype: int
-    '''
+    :param config: (Config) The global configuration
+    :param products_info: (list) 
+      List of (str, Config) => (product_name, product_info)
+    :param make_option: (str) The options to add to the command
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :return: (int) the number of failing commands.
+    """
     res = 0
     for p_name_info in products_infos:
         res_prod = make_product(p_name_info, make_option, config, logger)
@@ -171,17 +172,17 @@ def make_all_products(config, products_infos, make_option, logger):
     return res
 
 def make_product(p_name_info, make_option, config, logger):
-    '''Execute the proper configuration command(s) 
-       in the product build directory.
+    """
+    Execute the proper configuration command(s) 
+    in the product build directory.
     
-    :param p_name_info tuple: (str, Config) => (product_name, product_info)
-    :param make_option str: The options to add to the command
-    :param config Config: The global configuration
-    :param logger Logger: The logger instance to use for the display 
-                          and logging
-    :return: 1 if it fails, else 0.
-    :rtype: int
-    '''
+    :param p_name_info: (tuple) (str, Config) => (product_name, product_info)
+    :param make_option: (str) The options to add to the command
+    :param config: (Config) The global configuration
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :return: (int) 1 if it fails, else 0.
+    """
     
     p_name, p_info = p_name_info
     
index 2d0f79bd7ac76d679402a75334e1faefff4569e8..f4455798648b7501a1c0b27d71ac2f35243fd4cd 100644 (file)
@@ -26,13 +26,13 @@ from src.salomeTools import _BaseCommand
 # Command class
 ########################################################################
 class Command(_BaseCommand):
-  """\
+  """
   The makeinstall command executes the 'make install' command in the build directory.
   In case of product constructed using a script (build_source : 'script'), 
   then the makeinstall command do nothing.
   
   examples:
-    >> sat makeinstall SALOME --products KERNEL,GUI
+  >> sat makeinstall SALOME --products KERNEL,GUI
   """
   
   name = "makeinstall"
@@ -98,16 +98,17 @@ class Command(_BaseCommand):
    
 
 def get_products_list(options, cfg, logger):
-    '''method that gives the product list with their informations from 
-       configuration regarding the passed options.
+    """
+    method that gives the product list with their informations from 
+    configuration regarding the passed options.
     
-    :param options Options: The Options instance that stores the commands 
-                            arguments
-    :param cfg Config: The global configuration
-    :param logger Logger: The logger instance to use for the display and logging
-    :return: The list of (product name, product_informations).
-    :rtype: List
-    '''
+    :param options: (Options) 
+      The Options instance that stores the commands arguments
+    :param cfg: (Config) The global configuration
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :return: (list) The list of (product name, product_informations).
+    """
     # Get the products to be prepared, regarding the options
     if options.products is None:
         # No options, get all products sources
@@ -142,16 +143,17 @@ def log_res_step(logger, res):
         logger.debug("<KO>\n")
 
 def makeinstall_all_products(config, products_infos, logger):
-    '''Execute the proper configuration commands 
-       in each product build directory.
-
-    :param config Config: The global configuration
-    :param products_info list: List of 
-                                 (str, Config) => (product_name, product_info)
-    :param logger Logger: The logger instance to use for the display and logging
-    :return: the number of failing commands.
-    :rtype: int
-    '''
+    """
+    Execute the proper configuration commands 
+    in each product build directory.
+
+    :param config: (Config) The global configuration
+    :param products_info: (list) 
+      List of (str, Config) => (product_name, product_info)
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :return: (int) the number of failing commands.
+    """
     res = 0
     for p_name_info in products_infos:
         res_prod = makeinstall_product(p_name_info, config, logger)
@@ -160,16 +162,17 @@ def makeinstall_all_products(config, products_infos, logger):
     return res
 
 def makeinstall_product(p_name_info, config, logger):
-    '''Execute the proper configuration command(s) 
-       in the product build directory.
+    """
+    Execute the proper configuration command(s) 
+    in the product build directory.
     
-    :param p_name_info tuple: (str, Config) => (product_name, product_info)
-    :param config Config: The global configuration
-    :param logger Logger: The logger instance to use for the display 
-                          and logging
-    :return: 1 if it fails, else 0.
-    :rtype: int
-    '''
+    :param p_name_info: (tuple) 
+      (str, Config) => (product_name, product_info)
+    :param config: (Config) The global configuration
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :return: (int) 1 if it fails, else 0.
+    """
     
     p_name, p_info = p_name_info
     
index b424b89f5c300d5b89f810602e24f935484d3a34..1c3beb5e02ca1ea0d99fbab4ed9e67f890662568 100644 (file)
@@ -93,17 +93,16 @@ project_file_paths : [$VARS.salometoolsway + $VARS.sep + \"..\" + $VARS.sep"""
 # Command class
 ########################################################################
 class Command(_BaseCommand):
-  """\
+  """
   The package command creates an archive.
   There are 4 kinds of archive, which can be mixed:
-    1- The binary archive. It contains all the product installation directories and a launcher.
-    2- The sources archive. It contains the products archives, 
-       a project corresponding to the application and salomeTools.
-    3- The project archive. It contains a project (give the project file path as argument).
-    4- The salomeTools archive. It contains salomeTools.
+  1- The binary archive. It contains all the product installation directories and a launcher.
+  2- The sources archive. It contains the products archives, a project corresponding to the application and salomeTools.
+  3- The project archive. It contains a project (give the project file path as argument).
+  4- The salomeTools archive. It contains salomeTools.
   
   examples:
-    >> sat package SALOME --binaries --sources
+  >> sat package SALOME --binaries --sources
   """
   
   name = "package"
@@ -253,7 +252,7 @@ check if at least one of the following options was selected:
  
     path_targz = os.path.join(dir_name, archive_name + ".tgz")
     
-    logger.info("  Package path = %s\n" UTS.blue(path_targz))
+    logger.info("  Package path = %s\n" UTS.blue(path_targz))
 
     # Create a working directory for all files that are produced during the
     # package creation and that will be removed at the end of the command
@@ -345,7 +344,7 @@ check if at least one of the following options was selected:
         tar.close()
         
     except KeyboardInterrupt:
-        logger.critical(UTS.red(_("KeyboardInterrupt forced interruption\n"))
+        logger.critical(UTS.red(_("KeyboardInterrupt forced interruption\n")))
         logger.info(_("Removing the temporary working directory ... "))
         # remove the working directory
         shutil.rmtree(tmp_working_dir)
@@ -356,26 +355,24 @@ check if at least one of the following options was selected:
     shutil.rmtree(tmp_working_dir)
     
     # Print again the path of the package
-    logger.info("  Package path = %s\n" UTS.blue(path_targz))
+    logger.info("  Package path = %s\n" UTS.blue(path_targz))
     
     return res
 
 
 def add_files(tar, name_archive, d_content, logger, f_exclude=None):
-    """\
+    """
     Create an archive containing all directories and files that are given 
     in the d_content argument.
     
-    :param tar tarfile: The tarfile instance used to make the archive.
-    :param name_archive str: The name of the archive to make.
-    :param d_content dict: The dictionary that contain all directories and files
-                           to add in the archive.
-                           d_content[label] = 
-                                        (path_on_local_machine, path_in_archive)
-    :param logger Logger: the logging instance
-    :param f_exclude Function: the function that filters
-    :return: 0 if success, 1 if not.
-    :rtype: int
+    :param tar: (tarfile) The tarfile instance used to make the archive.
+    :param name_archive: (str) The name of the archive to make.
+    :param d_content: (dict) 
+      The dictionary that contain all directories and files to add in the archive.
+      d_content[label] = (path_on_local_machine, path_in_archive)
+    :param logger: (Logger) the logging instance
+    :param f_exclude: (function) the function that filters
+    :return: (int) 0 if success, 1 if not.
     """
     # get the max length of the messages in order to make the display
     max_len = len(max(d_content.keys(), key=len))
@@ -395,18 +392,17 @@ def add_files(tar, name_archive, d_content, logger, f_exclude=None):
             tar.add(local_path, arcname=in_archive, exclude=f_exclude)
             logger.info("<OK>\n")
         except Exception as e:
-            logger.info("<KO> %s\n" str(e))
+            logger.info("<KO> %s\n" str(e))
             success = 1
     return success
 
 def exclude_VCS_and_extensions(filename):
-    """\
+    """
     The function that is used to exclude from package the link to the 
     VCS repositories (like .git)
 
-    :param filename Str: The filname to exclude (or not).
-    :return: True if the file has to be exclude
-    :rtype: Boolean
+    :param filename: (str) The filname to exclude (or not).
+    :return: (bool) True if the file has to be exclude
     """
     for dir_name in IGNORED_DIRS:
         if dir_name in filename:
@@ -422,18 +418,18 @@ def produce_relative_launcher(config,
                               file_name,
                               binaries_dir_name,
                               with_commercial=True):
-    '''Create a specific SALOME launcher for the binary package. This launcher 
-       uses relative paths.
+    """
+    Create a specific SALOME launcher for the binary package.
+    This launcher uses relative paths.
     
-    :param config Config: The global configuration.
-    :param logger Logger: the logging instance
-    :param file_dir str: the directory where to put the launcher
-    :param file_name str: The launcher name
-    :param binaries_dir_name str: the name of the repository where the binaries
-                                  are, in the archive.
-    :return: the path of the produced launcher
-    :rtype: str
-    '''
+    :param config: (Config) The global configuration.
+    :param logger: (Logger) the logging instance
+    :param file_dir: (str) the directory where to put the launcher
+    :param file_name: (str) The launcher name
+    :param binaries_dir_name: (str) 
+      the name of the repository where the binaries are, in the archive.
+    :return: (str) the path of the produced launcher
+    """
     
     # get KERNEL installation path 
     kernel_root_dir = os.path.join(binaries_dir_name, "KERNEL")
@@ -495,10 +491,10 @@ def produce_relative_launcher(config,
     return filepath
 
 def hack_for_distene_licence(filepath):
-    '''Replace the distene licence env variable by a call to a file.
+    """Replace the distene licence env variable by a call to a file.
     
-    :param filepath Str: The path to the launcher to modify.
-    '''  
+    :param filepath: (str) The path to the launcher to modify.
+    """  
     shutil.move(filepath, filepath + "_old")
     fileout= filepath
     filein = filepath + "_old"
@@ -521,12 +517,12 @@ def hack_for_distene_licence(filepath):
     del text[num_line +1]
     del text[num_line +1]
     text_to_insert ="""\
-    import imp
-    try:
-        distene = imp.load_source('distene_licence', '/data/tmpsalome/salome/prerequis/install/LICENSE/dlim8.var.py')
-        distene.set_distene_variables(context)
-    except:
-        pass
+import imp
+try:
+  distene = imp.load_source('distene_licence', '/data/tmpsalome/salome/prerequis/install/LICENSE/dlim8.var.py')
+  distene.set_distene_variables(context)
+except:
+  pass
 """
     text.insert(num_line + 1, text_to_insert)
     for line in text:
@@ -539,17 +535,17 @@ def produce_relative_env_files(config,
                               logger,
                               file_dir,
                               binaries_dir_name):
-    '''Create some specific environment files for the binary package. These 
-       files use relative paths.
+    """
+    Create some specific environment files for the binary package.
+    These files use relative paths.
     
-    :param config Config: The global configuration.
-    :param logger Logger: the logging instance
-    :param file_dir str: the directory where to put the files
-    :param binaries_dir_name str: the name of the repository where the binaries
-                                  are, in the archive.
-    :return: the list of path of the produced environment files
-    :rtype: List
-    '''  
+    :param config: (Config) The global configuration.
+    :param logger: (Logger) the logging instance
+    :param file_dir: (str) the directory where to put the files
+    :param binaries_dir_name: (str) 
+      The name of the repository where the binaries are, in the archive.
+    :return: (list) The list of path of the produced environment files
+    """  
     # create an environment file writer
     writer = src.environment.FileEnvWriter(config,
                                            logger,
@@ -582,17 +578,18 @@ def produce_install_bin_file(config,
                              file_dir,
                              d_sub,
                              file_name):
-    '''Create a bash shell script which do substitutions in BIRARIES dir 
-       in order to use it for extra compilations.
+    """
+    Create a bash shell script which do substitutions in BIRARIES dir 
+    in order to use it for extra compilations.
     
-    :param config Config: The global configuration.
-    :param logger Logger: the logging instance
-    :param file_dir str: the directory where to put the files
-    :param d_sub, dict: the dictionnary that contains the substitutions to be done
-    :param file_name str: the name of the install script file
-    :return: the produced file
-    :rtype: str
-    '''  
+    :param config: (Config) The global configuration.
+    :param logger: (Logger) the logging instance
+    :param file_dir: (str) the directory where to put the files
+    :param d_sub: (dict) 
+      the dictionnary that contains the substitutions to be done
+    :param file_name: (str) the name of the install script file
+    :return: (str) the produced file
+    """  
     # Write
     filepath = os.path.join(file_dir, file_name)
     # open the file and write into it
@@ -635,17 +632,17 @@ def product_appli_creation_script(config,
                                   logger,
                                   file_dir,
                                   binaries_dir_name):
-    '''Create a script that can produce an application (EDF style) in the binary
-       package.
+    """
+    Create a script that can produce an application (EDF style) 
+    in the binary package.
     
-    :param config Config: The global configuration.
-    :param logger Logger: the logging instance
-    :param file_dir str: the directory where to put the file
-    :param binaries_dir_name str: the name of the repository where the binaries
-                                  are, in the archive.
-    :return: the path of the produced script file
-    :rtype: Str
-    '''
+    :param config: (Config) The global configuration.
+    :param logger: (Logger) the logging instance
+    :param file_dir: (str) the directory where to put the file
+    :param binaries_dir_name: (str) 
+      The name of the repository where the binaries are, in the archive.
+    :return: (str) The path of the produced script file
+    """
     template_name = "create_appli.py.for_bin_packages.template"
     template_path = os.path.join(config.VARS.internal_dir, template_name)
     text_to_fill = open(template_path, "r").read()
@@ -697,20 +694,21 @@ def product_appli_creation_script(config,
     return tmp_file_path
 
 def binary_package(config, logger, options, tmp_working_dir):
-    '''Prepare a dictionary that stores all the needed directories and files to
-       add in a binary package.
+    """
+    Prepare a dictionary that stores all the needed directories and files 
+    to add in a binary package.
     
-    :param config Config: The global configuration.
-    :param logger Logger: the logging instance
-    :param options OptResult: the options of the launched command
-    :param tmp_working_dir str: The temporary local directory containing some 
-                                specific directories or files needed in the 
-                                binary package
-    :return: the dictionary that stores all the needed directories and files to
-             add in a binary package.
-             {label : (path_on_local_machine, path_in_archive)}
-    :rtype: dict
-    '''
+    :param config: (Config) The global configuration.
+    :param logger: (Logger) the logging instance
+    :param options: (OptResult) the options of the launched command
+    :param tmp_working_dir: (str) 
+      The temporary local directory containing some specific directories
+      or files needed in the binary package
+    :return: (dict) 
+      The dictionary that stores all the needed directories and files 
+      to add in a binary package.
+      {label : (path_on_local_machine, path_in_archive)}
+    """
 
     # Get the list of product installation to add to the archive
     l_products_name = config.APPLICATION.products.keys()
@@ -759,7 +757,7 @@ def binary_package(config, logger, options, tmp_working_dir):
             text_missing_prods += "-" + p_name + "\n"
         
         msg = _("There are missing products installations:\n")
-        logger.warning(msg + text_missing_prods))
+        logger.warning(msg + text_missing_prods)
         if not options.force_creation:
             return None
 
@@ -828,20 +826,21 @@ def binary_package(config, logger, options, tmp_working_dir):
     return d_products
 
 def source_package(sat, config, logger, options, tmp_working_dir):
-    '''Prepare a dictionary that stores all the needed directories and files to
-       add in a source package.
+    """
+    Prepare a dictionary that stores all the needed directories and files 
+    to add in a source package.
     
-    :param config Config: The global configuration.
-    :param logger Logger: the logging instance
-    :param options OptResult: the options of the launched command
-    :param tmp_working_dir str: The temporary local directory containing some 
-                                specific directories or files needed in the 
-                                binary package
-    :return: the dictionary that stores all the needed directories and files to
-             add in a source package.
-             {label : (path_on_local_machine, path_in_archive)}
-    :rtype: dict
-    '''
+    :param config: (Config) The global configuration.
+    :param logger: (Logger) the logging instance
+    :param options: (OptResult) the options of the launched command
+    :param tmp_working_dir: (str)
+      The temporary local directory containing some specific directories
+      or files needed in the binary package
+    :return: (dict)
+      the dictionary that stores all the needed directories and files
+      to add in a source package.
+      {label : (path_on_local_machine, path_in_archive)}
+    """
     
     # Get all the products that are prepared using an archive
     logger.info("Find archive products ... ")
@@ -888,17 +887,17 @@ def source_package(sat, config, logger, options, tmp_working_dir):
     return d_source
 
 def get_archives(config, logger):
-    '''Find all the products that are get using an archive and all the products
-       that are get using a vcs (git, cvs, svn) repository.
+    """
+    Find all the products from an archive and all the products
+    from a VCS (git, cvs, svn) repository.
     
-    :param config Config: The global configuration.
-    :param logger Logger: the logging instance
-    :return: the dictionary {name_product : 
-             (local path of its archive, path in the package of its archive )}
-             and the list of specific configuration corresponding to the vcs 
-             products
-    :rtype: (Dict, List)
-    '''
+    :param config: (Config) The global configuration.
+    :param logger: (Logger) The logging instance
+    :return: (Dict, List)
+      The dictionary 
+      {name_product : (local path of its archive, path in the package of its archive )}
+      and the list of specific configuration corresponding to the vcs products
+    """
     # Get the list of product informations
     l_products_name = config.APPLICATION.products.keys()
     l_product_info = src.product.get_products_infos(l_products_name,
@@ -921,16 +920,17 @@ def get_archives(config, logger):
     return d_archives, l_pinfo_vcs
 
 def add_salomeTools(config, tmp_working_dir):
-    '''Prepare a version of salomeTools that has a specific local.pyconf file 
-       configured for a source package.
-
-    :param config Config: The global configuration.
-    :param tmp_working_dir str: The temporary local directory containing some 
-                                specific directories or files needed in the 
-                                source package
-    :return: The path to the local salomeTools directory to add in the package
-    :rtype: str
-    '''
+    """
+    Prepare a version of salomeTools that has a specific local.pyconf file 
+    configured for a source package.
+
+    :param config: (Config) The global configuration.
+    :param tmp_working_dir: (str) 
+      The temporary local directory containing some specific directories
+      or files needed in the source package
+    :return: (str) 
+      The path to the local salomeTools directory to add in the package
+    """
     # Copy sat in the temporary working directory
     sat_tmp_path = src.Path(os.path.join(tmp_working_dir, "salomeTools"))
     sat_running_path = src.Path(config.VARS.salometoolsway)
@@ -958,24 +958,25 @@ def add_salomeTools(config, tmp_working_dir):
     return sat_tmp_path.path
 
 def get_archives_vcs(l_pinfo_vcs, sat, config, logger, tmp_working_dir):
-    '''For sources package that require that all products are get using an 
-       archive, one has to create some archive for the vcs products.
-       So this method calls the clean and source command of sat and then create
-       the archives.
-
-    :param l_pinfo_vcs List: The list of specific configuration corresponding to
-                             each vcs product
-    :param sat Sat: The Sat instance that can be called to clean and source the
-                    products
-    :param config Config: The global configuration.
-    :param logger Logger: the logging instance
-    :param tmp_working_dir str: The temporary local directory containing some 
-                                specific directories or files needed in the 
-                                source package
-    :return: the dictionary that stores all the archives to add in the source 
-             package. {label : (path_on_local_machine, path_in_archive)}
-    :rtype: dict
-    '''
+    """
+    For sources package that require that all products from an archive, 
+    one has to create some archive for the vcs products.
+    So this method calls the clean and source command of sat 
+    and then create the archives.
+
+    :param l_pinfo_vcs: (list) 
+      The list of specific configuration corresponding to each vcs product
+    :param sat: (Sat) 
+      The Sat instance that can be called to clean and source the products
+    :param config: (Config) The global configuration.
+    :param logger: (Logger) The logging instance
+    :param tmp_working_dir: (str) 
+      The temporary local directory containing some specific directories
+      or files needed in the source package
+    :return: (dict) 
+      The dictionary that stores all the archives to add in the sourcepackage.
+      {label : (path_on_local_machine, path_in_archive)}
+    """
     # clean the source directory of all the vcs products, then use the source 
     # command and thus construct an archive that will not contain the patches
     l_prod_names = [pn for pn, __ in l_pinfo_vcs]
@@ -1001,16 +1002,15 @@ def get_archives_vcs(l_pinfo_vcs, sat, config, logger, tmp_working_dir):
     return d_archives_vcs
 
 def make_archive(prod_name, prod_info, where):
-    '''Create an archive of a product by searching its source directory.
-
-    :param prod_name str: The name of the product.
-    :param prod_info Config: The specific configuration corresponding to the 
-                             product
-    :param where str: The path of the repository where to put the resulting 
-                      archive
-    :return: The path of the resulting archive
-    :rtype: str
-    '''
+    """Create an archive of a product by searching its source directory.
+
+    :param prod_name: (str) The name of the product.
+    :param prod_info: (Config)
+      The specific configuration corresponding to the product
+    :param where: (str) 
+      The path of the repository where to put the resulting archive
+    :return: (str) The path of the resulting archive
+    """
     path_targz_prod = os.path.join(where, prod_name + ".tgz")
     tar_prod = tarfile.open(path_targz_prod, mode='w:gz')
     local_path = prod_info.source_dir
@@ -1021,18 +1021,19 @@ def make_archive(prod_name, prod_info, where):
     return path_targz_prod       
 
 def create_project_for_src_package(config, tmp_working_dir, with_vcs):
-    '''Create a specific project for a source package.
-
-    :param config Config: The global configuration.
-    :param tmp_working_dir str: The temporary local directory containing some 
-                                specific directories or files needed in the 
-                                source package
-    :param with_vcs boolean: True if the package is with vcs products (not 
-                             transformed into archive products)
-    :return: The dictionary 
-             {"project" : (produced project, project path in the archive)}
-    :rtype: Dict
-    '''
+    """Create a specific project for a source package.
+
+    :param config: (Config) The global configuration.
+    :param tmp_working_dir: (str)
+      The temporary local directory containing some specific directories
+      or files needed in the source package
+    :param with_vcs: (bool) 
+      True if the package is with vcs products 
+      (not transformed into archive products)
+    :return: (dict)
+      The dictionary 
+      {"project" : (produced project, project path in the archive)}
+    """
 
     # Create in the working temporary directory the full project tree
     project_tmp_dir = os.path.join(tmp_working_dir, PROJECT_DIR)
@@ -1091,26 +1092,28 @@ def find_product_scripts_and_pyconf(p_name,
                                     env_scripts_tmp_dir,
                                     patches_tmp_dir,
                                     products_pyconf_tmp_dir):
-    '''Create a specific pyconf file for a given product. Get its environment 
-       script, its compilation script and patches and put it in the temporary
-       working directory. This method is used in the source package in order to
-       construct the specific project.
-
-    :param p_name str: The name of the product.
-    :param p_info Config: The specific configuration corresponding to the 
-                             product
-    :param config Config: The global configuration.
-    :param with_vcs boolean: True if the package is with vcs products (not 
-                             transformed into archive products)
-    :param compil_scripts_tmp_dir str: The path to the temporary compilation 
-                                       scripts directory of the project.
-    :param env_scripts_tmp_dir str: The path to the temporary environment script 
-                                    directory of the project.
-    :param patches_tmp_dir str: The path to the temporary patch scripts 
-                                directory of the project.
-    :param products_pyconf_tmp_dir str: The path to the temporary product 
-                                        scripts directory of the project.
-    '''
+    """
+    Create a specific pyconf file for a given product. 
+    Get its environment script, its compilation script 
+    and patches and put it in the temporary working directory. 
+    This method is used in the source package in order to
+    construct the specific project.
+
+    :param p_name: (str) The name of the product.
+    :param p_info: (Config) The specific configuration corresponding to the product
+    :param config: (Config) The global configuration.
+    :param with_vcs: (bool) 
+      True if the package is with vcs products 
+      (not transformed into archive products)
+    :param compil_scripts_tmp_dir: (str) 
+      The path to the temporary compilation scripts directory of the project.
+    :param env_scripts_tmp_dir: (str) 
+      The path to the temporary environment script directory of the project.
+    :param patches_tmp_dir: (str) 
+      The path to the temporary patch scripts directory of the project.
+    :param products_pyconf_tmp_dir: (str) 
+      The path to the temporary product scripts directory of the project.
+    """
     
     # read the pyconf of the product
     product_pyconf_path = UTS.find_file_in_lpath(p_name + ".pyconf",
@@ -1166,13 +1169,14 @@ def find_product_scripts_and_pyconf(p_name,
     ff.close()
 
 def find_application_pyconf(config, application_tmp_dir):
-    '''Find the application pyconf file and put it in the specific temporary 
-       directory containing the specific project of a source package.
+    """
+    Find the application pyconf file and put it in the specific temporary 
+    directory containing the specific project of a source package.
 
-    :param config Config: The global configuration.
-    :param application_tmp_dir str: The path to the temporary application 
-                                       scripts directory of the project.
-    '''
+    :param config: 'Config) The global configuration.
+    :param application_tmp_dir: (str) 
+      The path to the temporary application scripts directory of the project.
+    """
     # read the pyconf of the application
     application_name = config.VARS.application
     application_pyconf_path = UTS.find_file_in_lpath(
@@ -1198,18 +1202,19 @@ def find_application_pyconf(config, application_tmp_dir):
     ff.close()
 
 def project_package(project_file_path, tmp_working_dir):
-    '''Prepare a dictionary that stores all the needed directories and files to
-       add in a project package.
+    """
+    Prepare a dictionary that stores all the needed directories and files 
+    to add in a project package.
     
-    :param project_file_path str: The path to the local project.
-    :param tmp_working_dir str: The temporary local directory containing some 
-                                specific directories or files needed in the 
-                                project package
-    :return: the dictionary that stores all the needed directories and files to
-             add in a project package.
-             {label : (path_on_local_machine, path_in_archive)}
-    :rtype: dict
-    '''
+    :param project_file_path: (str) The path to the local project.
+    :param tmp_working_dir: (str) 
+      The temporary local directory containing some specific directories
+      or files needed in the project package
+    :return: (dict)
+      The dictionary that stores all the needed directories and files
+      to add in a project package.
+      {label : (path_on_local_machine, path_in_archive)}
+    """
     d_project = {}
     # Read the project file and get the directories to add to the package
     project_pyconf_cfg = PYCONF.Config(project_file_path)
@@ -1341,12 +1346,14 @@ The procedure to do it is:
     return readme_path
 
 def update_config(config, prop, value):
-    '''Remove from config.APPLICATION.products the products that have the property given as input.
+    """
+    Remove from config.APPLICATION.products the products 
+    that have the property given as input.
     
-    :param config Config: The global config.
-    :param prop str: The property to filter
-    :param value str: The value of the property to filter
-    '''
+    :param config: (Config) The global config.
+    :param prop: (str) The property to filter
+    :param value: (str) The value of the property to filter
+    """
     src.check_config_has_application(config)
     l_product_to_remove = []
     for product_name in config.APPLICATION.products.keys():
index b80288585f2df5b5746bb3cc379706b15d716f51..8c5dc1ced0d7d7a85c013aab073fb7907d2018c3 100644 (file)
@@ -30,12 +30,12 @@ import commands.prepare
 # Command class
 ########################################################################
 class Command(_BaseCommand):
-  """\
+  """
   The patch command apply the patches on the sources of the application products
   if there is any.
 
   examples:
-    >> sat patch SALOME --products qt,boost
+  >> sat patch SALOME --products qt,boost
   """
   
   name = "patch"
@@ -115,14 +115,14 @@ class Command(_BaseCommand):
      
 
 def apply_patch(config, product_info, max_product_name_len, logger):
-    """\
-    The method called to apply patches on a product
-
-    :param config Config: The global configuration
-    :param product_info Config: The configuration specific to 
-                               the product to be patched
-    :param logger Logger: The logger instance to use for the display and logging
-    :return: RCO.ReturnCode
+    """The method called to apply patches on a product
+
+    :param config: (Config) The global configuration
+    :param product_info: (Config) 
+      The configuration specific to the product to be patched
+    :param logger: (Logger: 
+      The logger instance to use for the display and logging
+    :return: (RCO.ReturnCode)
     """
 
     # if the product is native, do not apply patch
index 859516ec6a2a13049d22f0d6b59e11ad7f100fe3..240a2509d7ee13ea93de68bd837f3fc838433837 100644 (file)
@@ -28,12 +28,12 @@ from src.salomeTools import _BaseCommand
 # Command class
 ########################################################################
 class Command(_BaseCommand):
-  """\
+  """
   The prepare command gets the sources of the application products 
   and apply the patches if there is any.
 
   examples:
-    >> sat prepare SALOME --products KERNEL,GUI
+  >> sat prepare SALOME --products KERNEL,GUI
   """
   
   name = "prepare"
@@ -157,15 +157,14 @@ Use the --force_patch option to overwrite it.
 
 
 def remove_products(arguments, l_products_info, logger):
-    """
-    function that removes the products in l_products_info from arguments list.
+    """Removes the products in l_products_info from arguments list.
     
-    :param arguments str: The arguments from which to remove products
-    :param l_products_info list: List of 
-                                 (str, Config) => (product_name, product_info)
-    :param logger Logger: The logger instance to use for the display and logging
-    :return: The updated arguments.
-    :rtype: str
+    :param arguments: (str) The arguments from which to remove products
+    :param l_products_info: (list) 
+      List of (str, Config) => (product_name, product_info)
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :return: (str) The updated arguments.
     """
     args = arguments
     for i, (product_name, __) in enumerate(l_products_info):
@@ -177,14 +176,13 @@ def remove_products(arguments, l_products_info, logger):
     return args
 
 def find_products_already_getted(l_products):
-    '''function that returns the list of products that have an existing source 
-       directory.
+    """Returns the list of products that have an existing source directory.
     
-    :param l_products List: The list of products to check
-    :return: The list of product configurations that have an existing source 
-             directory.
-    :rtype: List
-    '''
+    :param l_products: (list) The list of products to check
+    :return: (list) 
+      The list of product configurations 
+      that have an existing source directory.
+    """
     l_res = []
     for p_name_p_cfg in l_products:
         __, prod_cfg = p_name_p_cfg
@@ -193,12 +191,13 @@ def find_products_already_getted(l_products):
     return l_res
 
 def find_products_with_patchs(l_products):
-    '''function that returns the list of products that have one or more patches.
+    """Returns the list of products that have one or more patches.
     
-    :param l_products List: The list of products to check
-    :return: The list of product configurations that have one or more patches.
-    :rtype: List
-    '''
+    :param l_products: (list) The list of products to check
+    :return: (list) 
+      The list of product configurations 
+      that have one or more patches.
+    """
     l_res = []
     for p_name_p_cfg in l_products:
         __, prod_cfg = p_name_p_cfg
index 7776f64a5d714c698132f9b37bdcaa798ee10eef..599efb92b08be64d22c5ab5595a676914af2cb70 100644 (file)
@@ -34,11 +34,11 @@ class Command(_BaseCommand):
   
   examples: 
   >> sat profile [PRODUCT] 
-                 [-p | --prefix (string)] 
-                 [-n | --name (string)] 
-                 [-f | --force] 
-                 [-v | --version (string)] 
-                 [-s | --slogan (string)] 
+  >> sat profile --prefix (string)
+  >> sat profile --name (string)
+  >> sat profile --force
+  >> sat profile --version (string) 
+  >> sat profile --slogan (string) 
   """
   
   name = "profile"
@@ -210,11 +210,10 @@ def update_pyconf( config, options, logger ):
     """
     Updates the pyconf
     """
-
     #Save previous version
     pyconf = config.VARS.product + '.pyconf'
     pyconfBackup = config.VARS.product + '-backup.pyconf'
-    logger.info( _("Updating %s (previous version saved as %s." ) % (pyconf, pyconfBackup)
+    logger.info( _("Updating %s (previous version saved as %s." ) % (pyconf, pyconfBackup))
     path = config.getPath( pyconf )
     shutil.copyfile( os.path.join( path, pyconf ),
                      os.path.join( path, pyconfBackup ) )
index f3eec3bf492682011d487e66e2b13bc1b07772e4..dd3da47b65e05b8af7669aec0b6a8172cce38798 100644 (file)
@@ -108,17 +108,17 @@ class Command(_BaseCommand):
     
 
 def get_products_list(options, cfg, logger):
-    '''method that gives the product list with their informations from 
-       configuration regarding the passed options.
-    
-    :param options Options: The Options instance that stores the commands 
-                            arguments
-    :param cfg Config: The global configuration
-    :param logger Logger: The logger instance to use for the display and 
-                          logging
-    :return: The list of (product name, product_informations).
-    :rtype: List
-    '''
+    """
+    Gives the product list with their informations from 
+    configuration regarding the passed options.
+    
+    :param options: (Options) 
+      The Options instance that stores the commands arguments
+    :param cfg: (Config) The global configuration
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :return: (list) The list of (product name, product_informations).
+    """
     # Get the products to be prepared, regarding the options
     if options.products is None:
         # No options, get all products sources
@@ -155,16 +155,16 @@ def log_res_step(logger, res):
         logger.debug("<KO>\n")
 
 def run_script_all_products(config, products_infos, nb_proc, logger):
-    '''Execute the script in each product build directory.
-
-    :param config Config: The global configuration
-    :param products_info list: List of 
-                                 (str, Config) => (product_name, product_info)
-    :param nb_proc int: The number of processors to use
-    :param logger Logger: The logger instance to use for the display and logging
-    :return: the number of failing commands.
-    :rtype: int
-    '''
+    """Execute the script in each product build directory.
+
+    :param config: (Config) The global configuration
+    :param products_info: (list) 
+      List of (str, Config) => (product_name, product_info)
+    :param nb_proc: (int) The number of processors to use
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :return: (int) The number of failing commands.
+    """
     res = 0
     for p_name_info in products_infos:
         res_prod = run_script_of_product(p_name_info,
@@ -176,17 +176,18 @@ def run_script_all_products(config, products_infos, nb_proc, logger):
     return res
 
 def run_script_of_product(p_name_info, nb_proc, config, logger):
-    '''Execute the proper configuration command(s) 
-       in the product build directory.
-    
-    :param p_name_info tuple: (str, Config) => (product_name, product_info)
-    :param nb_proc int: The number of processors to use
-    :param config Config: The global configuration
-    :param logger Logger: The logger instance to use for the display 
-                          and logging
-    :return: 1 if it fails, else 0.
-    :rtype: int
-    '''
+    """
+    Execute the proper configuration command(s) 
+    in the product build directory.
+    
+    :param p_name_info: (tuple) 
+      (str, Config) => (product_name, product_info)
+    :param nb_proc: (int) The number of processors to use
+    :param config: (Config) The global configuration
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :return: (int) 1 if it fails, else 0.
+    """
     
     p_name, p_info = p_name_info
     
index 6a802f072ab6bafb1e521b9412bd5409ccd7b2e3..d83b4478618ec4ee4e6aacbc34d9301efd0ecdc4 100644 (file)
@@ -25,19 +25,20 @@ import src.returnCode as RCO
 from src.salomeTools import _BaseCommand
 import src.system as SYSS
 
+
 ########################################################################
 # Command class
 ########################################################################
 class Command(_BaseCommand):
-  """\
+  """
   The source command gets the sources of the application products
   from cvs, git or an archive.
   
   examples:
-    >> sat source SALOME --products KERNEL,GUI
+  >> sat source SALOME --products KERNEL,GUI
   """
   
-  name = "sourcre"
+  name = "source"
   
   def getParser(self):
     """Define all options for command 'sat source <options>'"""
@@ -106,15 +107,15 @@ def get_source_for_dev(config, product_info, source_dir, logger, pad):
     """\
     Called if the product is in development mode
     
-    :param config Config: The global configuration
-    :param product_info Config: The configuration specific to 
-                               the product to be prepared
-    :param source_dir Path: The Path instance corresponding to the 
-                            directory where to put the sources
-    :param logger Logger: The logger instance to use for the display and logging
-    :param pad int: The gap to apply for the terminal display
-    :return: True if it succeed, else False
-    :rtype: boolean
+    :param config: (Config) The global configuration
+    :param product_info: (Config) 
+      The configuration specific to the product to be prepared
+    :param source_dir: (Path)
+      The Path instance corresponding to the directory where to put the sources
+    :param logger: (Logger)
+      The logger instance to use for the display and logging
+    :param pad: (int) The gap to apply for the terminal display
+    :return: (bool) True if it succeed, else False
     """
        
     # Call the function corresponding to get the sources with True checkout
@@ -137,20 +138,21 @@ def get_source_from_git(product_info,
                         pad,
                         is_dev=False,
                         environ = None):
-    """\
+    """
     Called if the product is to be get in git mode
     
-    :param product_info Config: The configuration specific to 
-                               the product to be prepared
-    :param source_dir Path: The Path instance corresponding to the 
-                            directory where to put the sources
-    :param logger Logger: The logger instance to use for the display and logging
-    :param pad int: The gap to apply for the terminal display
-    :param is_dev boolean: True if the product is in development mode
-    :param environ src.environment.Environ: The environment to source when
-                                                extracting.
-    :return: True if it succeed, else False
-    :rtype: boolean
+    :param product_info: (Config) 
+      The configuration specific to the product to be prepared
+    :param source_dir: (Path)
+      The Path instance corresponding to the
+      directory where to put the sources
+    :param logger Logger: (Logger) 
+      The logger instance to use for the display and logging
+    :param pad: (int) The gap to apply for the terminal display
+    :param is_dev: (bool) True if the product is in development mode
+    :param environ: (src.environment.Environ)
+      The environment to source when extracting.
+    :return: (bool) True if it succeed, else False
     """
     # The str to display
     coflag = 'git'
@@ -177,16 +179,18 @@ def get_source_from_git(product_info,
     return retcode
 
 def get_source_from_archive(product_info, source_dir, logger):
-    '''The method called if the product is to be get in archive mode
+    """The method called if the product is to be get in archive mode
     
-    :param product_info Config: The configuration specific to 
-                               the product to be prepared
-    :param source_dir Path: The Path instance corresponding to the 
-                            directory where to put the sources
-    :param logger Logger: The logger instance to use for the display and logging
-    :return: True if it succeed, else False
-    :rtype: boolean
-    '''
+    :param product_info: (Config)
+      The configuration specific to 
+      the product to be prepared
+    :param source_dir: (Path)
+      The Path instance corresponding to the directory
+      where to put the sources
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :return: (bool) True if it succeed, else False
+    """
     # check archive exists
     if not os.path.exists(product_info.archive_info.archive_name):
         raise Exception(_("Archive not found: '%s'") % \
@@ -240,21 +244,23 @@ def get_source_from_cvs(user,
                         logger,
                         pad,
                         environ = None):
-    '''The method called if the product is to be get in cvs mode
+    """
+    The method called if the product is to be get in cvs mode
     
-    :param user str: The user to use in for the cvs command
-    :param product_info Config: The configuration specific to 
-                               the product to be prepared
-    :param source_dir Path: The Path instance corresponding to the 
-                            directory where to put the sources
-    :param checkout boolean: If True, get the source in checkout mode
-    :param logger Logger: The logger instance to use for the display and logging
-    :param pad int: The gap to apply for the terminal display
-    :param environ src.environment.Environ: The environment to source when
-                                                extracting.
-    :return: True if it succeed, else False
-    :rtype: boolean
-    '''
+    :param user: (str) The user to use in for the cvs command
+    :param product_info: (Config) 
+      The configuration specific to the product to be prepared
+    :param source_dir: (Path) 
+      The Path instance corresponding to the directory 
+      where to put the sources
+    :param checkout: (bool) If True, get the source in checkout mode
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :param pad: (int) The gap to apply for the terminal display
+    :param environ: (src.environment.Environ) 
+      The environment to source when extracting.
+    :return: (bool) True if it succeed, else False
+    """
     # Get the protocol to use in the command
     if "protocol" in product_info.cvs_info:
         protocol = product_info.cvs_info.protocol
@@ -299,20 +305,22 @@ def get_source_from_svn(user,
                         checkout,
                         logger,
                         environ = None):
-    '''The method called if the product is to be get in svn mode
+    """The method called if the product is to be get in svn mode
     
-    :param user str: The user to use in for the svn command
-    :param product_info Config: The configuration specific to 
-                               the product to be prepared
-    :param source_dir Path: The Path instance corresponding to the 
-                            directory where to put the sources
-    :param checkout boolean: If True, get the source in checkout mode
-    :param logger Logger: The logger instance to use for the display and logging
-    :param environ src.environment.Environ: The environment to source when
-                                                extracting.
-    :return: True if it succeed, else False
-    :rtype: boolean
-    '''
+    :param user: (str) The user to use in for the svn command
+    :param product_info: (Config)
+      The configuration specific to the product to be prepared
+    :param source_dir: (Path)
+      The Path instance corresponding to the directory 
+      where to put the sources
+    :param checkout: (boolean) 
+      If True, get the source in checkout mode
+    :param logger: (Logger)
+      The logger instance to use for the display and logging
+    :param environ: (src.environment.Environ)
+      The environment to source when extracting.
+    :return: (bool) True if it succeed, else False
+    """
     coflag = 'svn'
     if checkout: coflag = coflag.upper()
 
@@ -335,20 +343,21 @@ def get_product_sources(config,
                        logger, 
                        pad, 
                        checkout=False):
-    '''Get the product sources.
+    """Get the product sources.
     
-    :param config Config: The global configuration
-    :param product_info Config: The configuration specific to 
-                               the product to be prepared
-    :param is_dev boolean: True if the product is in development mode
-    :param source_dir Path: The Path instance corresponding to the 
-                            directory where to put the sources
-    :param logger Logger: The logger instance to use for the display and logging
-    :param pad int: The gap to apply for the terminal display
-    :param checkout boolean: If True, get the source in checkout mode
-    :return: True if it succeed, else False
-    :rtype: boolean
-    '''
+    :param config: (Config) The global configuration
+    :param product_info: (Config) 
+      The configuration specific to the product to be prepared
+    :param is_dev: (bool) True if the product is in development mode
+    :param source_dir: (Path) 
+      The Path instance corresponding to the directory 
+      where to put the sources
+    :param logger: (Logger) 
+      The logger instance to use for the display and logging
+    :param pad: (int) The gap to apply for the terminal display
+    :param checkout: (bool) If True, get the source in checkout mode
+    :return: (bool) True if it succeed, else False
+    """
     
     # Get the application environment
     logger.info(_("Set the application environment\n"))
@@ -410,14 +419,16 @@ def get_product_sources(config,
     return False
 
 def get_all_product_sources(config, products, logger):
-    '''Get all the product sources.
+    """Get all the product sources.
     
-    :param config Config: The global configuration
-    :param products List: The list of tuples (product name, product informations)
-    :param logger Logger: The logger instance to be used for the logging
-    :return: the tuple (number of success, dictionary product_name/success_fail)
-    :rtype: (int,dict)
-    '''
+    :param config: (Config) The global configuration
+    :param products: (list) 
+      The list of tuples (product name, product informations)
+    :param logger: (Logger) 
+      The logger instance to be used for the logging
+    :return: (int,dict) 
+      The tuple (number of success, dictionary product_name/success_fail)
+    """
 
     # Initialize the variables that will count the fails and success
     results = dict()
@@ -462,11 +473,11 @@ def get_all_product_sources(config, products, logger):
                                      max_product_name_len, 
                                      checkout=False)
         
-        '''
+        """
         if 'no_rpath' in product_info.keys():
             if product_info.no_rpath:
                 hack_no_rpath(config, product_info, logger)
-        '''
+        """
         
         # Check that the sources are correctly get using the files to be tested
         # in product information
@@ -496,14 +507,17 @@ def get_all_product_sources(config, products, logger):
     return good_result, results
 
 def check_sources(product_info, logger):
-    '''Check that the sources are correctly get, using the files to be tested
-       in product information
+    """
+    Check that the sources are correctly get, 
+    using the files to be tested in product information
     
-    :param product_info Config: The configuration specific to 
-                                the product to be prepared
-    :return: True if the files exists (or no files to test is provided).
-    :rtype: boolean
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product to be prepared
+    :param logger: (Logger) 
+      The logger instance to be used for the logging
+    :return: (bool) 
+      True if the files exists (or no files to test is provided).
+    """
     # Get the files to test if there is any
     if ("present_files" in product_info and 
         "source" in product_info.present_files):
index 6844c2aa3d30afc9bc359e70f60bfd578674c4ef..16d0e8c4a70936ce4938de7159bae968148ca1a7 100644 (file)
@@ -41,11 +41,11 @@ except NameError:
 # Command class
 ########################################################################
 class Command(_BaseCommand):
-  """\
+  """
   The template command creates the sources for a SALOME module from a template.
 
   examples:
-    >> sat template --name my_product_name --template PythonComponent --target /tmp
+  >> sat template --name my_product_name --template PythonComponent --target /tmp
   """
   
   name = "template"
@@ -359,7 +359,7 @@ def prepare_from_template(config,
     tsettings = TemplateSettings(compo_name, settings_file, target_dir)
 
     # first rename the files
-    logger.debug(UTS.label(_("Rename files\n"))
+    logger.debug(UTS.label(_("Rename files\n")))
     for root, dirs, files in os.walk(target_dir):
         for fic in files:
             ff = fic.replace(tsettings.file_subst, compo_name)
@@ -462,7 +462,7 @@ def get_template_info(config, template_name, logger):
 
     msg += "\n= Configuration\n"
     msg += "  file substitution key = %s\n" % tsettings.file_subst
-    msg += "  substitution key = '%s'\n" % tsettings.delimiter_char)
+    msg += "  substitution key = '%s'\n" % tsettings.delimiter_char
     if len(tsettings.ignore_filters) > 0:
         msg += " Ignore Filter = %s\n" % ', '.join(tsettings.ignore_filters)
 
@@ -483,7 +483,7 @@ def get_template_info(config, template_name, logger):
     retcode = 0
     
     msg = skip
-    msg += "= Verification\n",)
+    msg += "= Verification\n"
     if tsettings.file_subst not in pnames:
         msg += "file substitution key not defined as a parameter: %s\n" % \
                 tsettings.file_subst
index 3d9f262407e27a6c045a5e073b1284d61e53c0f8..c98101674bf7a0f72e3161d588226fa06d5022d4 100644 (file)
@@ -74,7 +74,7 @@ Optional: set the display where to launch SALOME.
   def check_option(self, options):
     """Check the options
     
-    :param options: The options
+    :param options: (Options) The options
     :return: None
     """
     if not options.launcher:
@@ -288,7 +288,8 @@ Please specify an application or a launcher
    
 
 def ask_a_path():
-    """ 
+    """
+    interactive as using 'raw_input'
     """
     path = raw_input("enter a path where to save the result: ")
     if path == "":
@@ -425,13 +426,15 @@ def check_remote_machine(machine_name, logger):
     else:
         logger.debug("<OK>\n")
 
-##
-# Creates the XML report for a product.
+
 def create_test_report(config,
                        xml_history_path,
                        dest_path,
                        retcode,
                        xmlname=""):
+    """
+    Creates the XML report for a product.
+    """
     # get the date and hour of the launching of the command, in order to keep
     # history
     date_hour = config.VARS.datehour
@@ -452,10 +455,6 @@ def create_test_report(config,
     
     prod_node.attrib["history_file"] = os.path.basename(xml_history_path)
     prod_node.attrib["global_res"] = retcode
-
-    # OP 14/11/2017 Ajout de traces pour essayer de decouvrir le pb
-    #               de remontee de log des tests
-    print "TRACES OP - test.py/create_test_report() : xml_history_path = '#%s#'" %xml_history_path
     
     ASNODE = XMLMGR.add_simple_node # shortcut
     
@@ -717,13 +716,13 @@ def create_test_report(config,
     return src.OK_STATUS
 
 def generate_history_xml_path(config, test_base):
-    """Generate the name of the xml file that contain the history of the tests
-       on the machine with the current APPLICATION and the current test base.
+    """
+    Generate the name of the xml file that contain the history of the tests
+    on the machine with the current APPLICATION and the current test base.
     
-    :param config Config: The global configuration
-    :param test_base Str: The test base name (or path)
-    :return: the full path of the history xml file
-    :rtype: Str
+    :param config: (Config) The global configuration
+    :param test_base: (str) The test base name (or path)
+    :return: (str) the full path of the history xml file
     """
     history_xml_name = ""
     if "APPLICATION" in config:
index a514380e7d2d1ed94ac5047960cda81378b7b184..331eebcf413e7960e80521d332f09f9178a4b84e 100644 (file)
@@ -138,5 +138,13 @@ doctest:
        @echo "Testing of doctests in the sources finished, look at the " \
              "results in $(BUILDDIR)/doctest/output.txt."
 
+# splitin many files rst
+#apidoc:
+#      @sphinx-apidoc --separate -o src/apidoc_src ../src
+#      @sphinx-apidoc --separate -o src/apidoc_commands ../commands
+
 apidoc:
-       @sphinx-apidoc -o src/commands/apidoc ../src
+       @sphinx-apidoc -o src/apidoc_src ../src
+       @sphinx-apidoc -o src/apidoc_commands ../commands
+       
+
diff --git a/doc/build/doctrees/apidoc_commands/commands.doctree b/doc/build/doctrees/apidoc_commands/commands.doctree
new file mode 100644 (file)
index 0000000..1b1f5f4
Binary files /dev/null and b/doc/build/doctrees/apidoc_commands/commands.doctree differ
diff --git a/doc/build/doctrees/apidoc_commands/modules.doctree b/doc/build/doctrees/apidoc_commands/modules.doctree
new file mode 100644 (file)
index 0000000..2c42178
Binary files /dev/null and b/doc/build/doctrees/apidoc_commands/modules.doctree differ
diff --git a/doc/build/doctrees/apidoc_src/modules.doctree b/doc/build/doctrees/apidoc_src/modules.doctree
new file mode 100644 (file)
index 0000000..bcbbc7c
Binary files /dev/null and b/doc/build/doctrees/apidoc_src/modules.doctree differ
diff --git a/doc/build/doctrees/apidoc_src/src.colorama.doctree b/doc/build/doctrees/apidoc_src/src.colorama.doctree
new file mode 100644 (file)
index 0000000..ff45f4e
Binary files /dev/null and b/doc/build/doctrees/apidoc_src/src.colorama.doctree differ
diff --git a/doc/build/doctrees/apidoc_src/src.doctree b/doc/build/doctrees/apidoc_src/src.doctree
new file mode 100644 (file)
index 0000000..c17d100
Binary files /dev/null and b/doc/build/doctrees/apidoc_src/src.doctree differ
diff --git a/doc/build/doctrees/apidoc_src/src.example.doctree b/doc/build/doctrees/apidoc_src/src.example.doctree
new file mode 100644 (file)
index 0000000..62fe49b
Binary files /dev/null and b/doc/build/doctrees/apidoc_src/src.example.doctree differ
diff --git a/doc/build/doctrees/commands/apidoc/modules.doctree b/doc/build/doctrees/commands/apidoc/modules.doctree
deleted file mode 100644 (file)
index 512c851..0000000
Binary files a/doc/build/doctrees/commands/apidoc/modules.doctree and /dev/null differ
diff --git a/doc/build/doctrees/commands/apidoc/src.colorama.doctree b/doc/build/doctrees/commands/apidoc/src.colorama.doctree
deleted file mode 100644 (file)
index 6d1698c..0000000
Binary files a/doc/build/doctrees/commands/apidoc/src.colorama.doctree and /dev/null differ
diff --git a/doc/build/doctrees/commands/apidoc/src.doctree b/doc/build/doctrees/commands/apidoc/src.doctree
deleted file mode 100644 (file)
index a025616..0000000
Binary files a/doc/build/doctrees/commands/apidoc/src.doctree and /dev/null differ
diff --git a/doc/build/doctrees/commands/apidoc/src.example.doctree b/doc/build/doctrees/commands/apidoc/src.example.doctree
deleted file mode 100644 (file)
index 7e279da..0000000
Binary files a/doc/build/doctrees/commands/apidoc/src.example.doctree and /dev/null differ
index acfae0937684d3f942fcf88afad483ae4122e4ce..503e3f7a9a7a661391e812b4d3b3ada7ed9af7a4 100644 (file)
Binary files a/doc/build/doctrees/commands/application.doctree and b/doc/build/doctrees/commands/application.doctree differ
index a2756bc4979f406e90e178cdf46d10e8efdfcdab..843bf82b9239560ccd8151d0a28a23e6dce6b880 100644 (file)
Binary files a/doc/build/doctrees/commands/clean.doctree and b/doc/build/doctrees/commands/clean.doctree differ
index 0c89c97642b9bbf72e31a5fc19abc0f17fc8c12f..326cbf2a908c20dbda362e70e75d3736e2d38bda 100644 (file)
Binary files a/doc/build/doctrees/commands/config.doctree and b/doc/build/doctrees/commands/config.doctree differ
index cf11a635a17d3388c98b7f8a1f7961e9bd773a1e..ba7e36da5e44508f27cf0b1a6eb3203a7f0358b4 100644 (file)
Binary files a/doc/build/doctrees/commands/prepare.doctree and b/doc/build/doctrees/commands/prepare.doctree differ
index 198b5cd9e0af1a1ddde4ee19f780f5c5be5a8d9f..2ad2b5567ecd75f4c09058a27fce688cb11127fa 100644 (file)
Binary files a/doc/build/doctrees/environment.pickle and b/doc/build/doctrees/environment.pickle differ
index a4913f7ecdbeb4f5e2ca8fa595ee84e06c24c12b..df9b1bfa712f609b5d675c55ee3d98dae8910237 100644 (file)
Binary files a/doc/build/doctrees/index.doctree and b/doc/build/doctrees/index.doctree differ
index a1774643ddc4d0d731e43417d70b762f4f185a73..639a0aca265513ab4aac2f46a5128e59bfdae807 100644 (file)
Binary files a/doc/build/doctrees/installation_of_sat.doctree and b/doc/build/doctrees/installation_of_sat.doctree differ
index 485748512d22b42b6166b00d1c72e8705e5a2164..00fe84edcf40b153e8609aabb2f970cd44e074af 100644 (file)
Binary files a/doc/build/doctrees/release_notes/release_notes_5.0.0.doctree and b/doc/build/doctrees/release_notes/release_notes_5.0.0.doctree differ
diff --git a/doc/build/html/_modules/commands/application.html b/doc/build/html/_modules/commands/application.html
new file mode 100644 (file)
index 0000000..d882b9b
--- /dev/null
@@ -0,0 +1,597 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.application &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.application</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2018  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+<span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">Is a salomeTools command module</span>
+<span class="sd">see Command class docstring, also used for help</span>
+<span class="sd">&quot;&quot;&quot;</span>
+
+<span class="kn">import</span> <span class="nn">os</span>
+<span class="kn">import</span> <span class="nn">getpass</span>
+<span class="kn">import</span> <span class="nn">subprocess</span>
+
+<span class="kn">import</span> <span class="nn">src.ElementTree</span> <span class="k">as</span> <span class="nn">ET</span>
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">import</span> <span class="nn">src.utilsSat</span> <span class="k">as</span> <span class="nn">UTS</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.application.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">  The application command creates a SALOME application. </span>
+
+<span class="sd">  | Warning:</span>
+<span class="sd">  |   It works only for SALOME 6.</span>
+<span class="sd">  |   Use the &#39;launcher&#39; command for newer versions of SALOME</span>
+<span class="sd">  |</span>
+<span class="sd">  | Examples:</span>
+<span class="sd">  | &gt;&gt; sat application SALOME-6.6.0</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;application&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.application.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for command &#39;sat application &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;n&#39;</span><span class="p">,</span> <span class="s1">&#39;name&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;name&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">Optional: The name of the application </span>
+<span class="s2">          (default is APPLICATION.virtual_app.name or runAppli)&quot;&quot;&quot;</span><span class="p">)</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;c&#39;</span><span class="p">,</span> <span class="s1">&#39;catalog&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;catalog&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: The resources catalog to use&#39;</span><span class="p">)</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;t&#39;</span><span class="p">,</span> <span class="s1">&#39;target&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;target&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">Optional: The directory where to create the application</span>
+<span class="s2">          (default is APPLICATION.workdir)&quot;&quot;&quot;</span><span class="p">)</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;gencat&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;gencat&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">Optional: Create a resources catalog for the specified machines (separated with &#39;,&#39;)</span>
+<span class="s2">NOTICE:   this command will ssh to retrieve information to each machine in the list&quot;&quot;&quot;</span><span class="p">)</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;m&#39;</span><span class="p">,</span> <span class="s1">&#39;module&#39;</span><span class="p">,</span> <span class="s1">&#39;list2&#39;</span><span class="p">,</span> <span class="s1">&#39;modules&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: the restricted list of module(s) to include in the application&quot;</span><span class="p">)</span> <span class="p">)</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.application.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat application &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+    
+    <span class="c1"># check for product</span>
+    <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span> <span class="n">config</span> <span class="p">)</span>
+
+    <span class="n">application</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Building application for &lt;header&gt;</span><span class="si">%s</span><span class="s2">&lt;reset&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">application</span><span class="p">)</span>
+
+    <span class="c1"># if section APPLICATION.virtual_app does not exists create one</span>
+    <span class="k">if</span> <span class="s2">&quot;virtual_app&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The section APPLICATION.virtual_app is not defined in the product.&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="n">msg</span><span class="p">))</span>
+        <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;KO&quot;</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
+
+    <span class="c1"># get application dir</span>
+    <span class="n">target_dir</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">target</span><span class="p">:</span>
+        <span class="n">target_dir</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">target</span>
+
+    <span class="c1"># set list of modules</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">modules</span><span class="p">:</span>
+        <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">virtual_app</span><span class="p">[</span><span class="s1">&#39;modules&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">modules</span>
+
+    <span class="c1"># set name and application_name</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">name</span><span class="p">:</span>
+        <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">virtual_app</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">name</span>
+        <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">virtual_app</span><span class="p">[</span><span class="s1">&#39;application_name&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">&quot;_appdir&quot;</span>
+    
+    <span class="n">application_name</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_cfg_param</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">virtual_app</span><span class="p">,</span>
+                                         <span class="s2">&quot;application_name&quot;</span><span class="p">,</span>
+                                         <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">virtual_app</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">&quot;_appdir&quot;</span><span class="p">)</span>
+    <span class="n">appli_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">target_dir</span><span class="p">,</span> <span class="n">application_name</span><span class="p">)</span>
+
+    <span class="n">fmt</span> <span class="o">=</span> <span class="s2">&quot;  </span><span class="si">%s</span><span class="s2"> = </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="c1"># as &quot;  label = value\n&quot;</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">fmt</span> <span class="o">%</span> <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Application directory&quot;</span><span class="p">),</span> <span class="n">appli_dir</span><span class="p">))</span>
+    
+    <span class="c1"># get catalog</span>
+    <span class="n">catalog</span><span class="p">,</span> <span class="n">catalog_src</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">catalog</span><span class="p">:</span>
+        <span class="c1"># use catalog specified in the command line</span>
+        <span class="n">catalog</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">catalog</span>
+    <span class="k">elif</span> <span class="n">options</span><span class="o">.</span><span class="n">gencat</span><span class="p">:</span>
+        <span class="c1"># generate catalog for given list of computers</span>
+        <span class="n">catalog_src</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">gencat</span>
+        <span class="n">catalog</span> <span class="o">=</span> <span class="n">generate_catalog</span><span class="p">(</span><span class="n">options</span><span class="o">.</span><span class="n">gencat</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;,&quot;</span><span class="p">),</span>
+                                   <span class="n">config</span><span class="p">,</span><span class="n">logger</span><span class="p">)</span>
+    <span class="k">elif</span> <span class="s1">&#39;catalog&#39;</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">virtual_app</span><span class="p">:</span>
+        <span class="c1"># use catalog specified in the product</span>
+        <span class="k">if</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">virtual_app</span><span class="o">.</span><span class="n">catalog</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s2">&quot;.xml&quot;</span><span class="p">):</span>
+            <span class="c1"># catalog as a file</span>
+            <span class="n">catalog</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">virtual_app</span><span class="o">.</span><span class="n">catalog</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="c1"># catalog as a list of computers</span>
+            <span class="n">catalog_src</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">virtual_app</span><span class="o">.</span><span class="n">catalog</span>
+            <span class="n">mlist</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="nb">len</span><span class="p">(</span><span class="n">l</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">,</span>
+                           <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">virtual_app</span><span class="o">.</span><span class="n">catalog</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;,&quot;</span><span class="p">))</span>
+            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">mlist</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+                <span class="n">catalog</span> <span class="o">=</span> <span class="n">generate_catalog</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">virtual_app</span><span class="o">.</span><span class="n">catalog</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;,&quot;</span><span class="p">),</span>
+                                           <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+
+    <span class="c1"># display which catalog is used</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">catalog</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">catalog</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">realpath</span><span class="p">(</span><span class="n">catalog</span><span class="p">)</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">catalog_src</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">fmt</span> <span class="o">%</span> <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Resources Catalog&quot;</span><span class="p">),</span> <span class="n">catalog_src</span><span class="p">))</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">fmt</span> <span class="o">%</span> <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Resources Catalog&quot;</span><span class="p">),</span> <span class="n">catalog</span><span class="p">))</span>
+
+    <span class="n">details</span> <span class="o">=</span> <span class="p">[]</span>
+
+    <span class="c1"># remove previous application</span>
+    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">appli_dir</span><span class="p">):</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">get_step</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Removing previous application directory&quot;</span><span class="p">)))</span>
+        <span class="n">rres</span> <span class="o">=</span> <span class="s2">&quot;&lt;KO&gt;&quot;</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">shutil</span><span class="o">.</span><span class="n">rmtree</span><span class="p">(</span><span class="n">appli_dir</span><span class="p">)</span>
+            <span class="n">rres</span> <span class="o">=</span> <span class="s2">&quot;&lt;OK&gt;&quot;</span>
+        <span class="k">finally</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">rres</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+    <span class="c1"># generate the application</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="k">try</span><span class="p">:</span> <span class="c1"># try/except/finally not supported in all version of python</span>
+            <span class="n">retcode</span> <span class="o">=</span> <span class="n">create_application</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">appli_dir</span><span class="p">,</span> <span class="n">catalog</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+        <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">exc</span><span class="p">:</span>
+            <span class="n">details</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">exc</span><span class="p">))</span>
+            <span class="k">raise</span>
+    <span class="k">finally</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+    <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">)</span></div></div>
+
+
+
+<span class="c1"># Creates an alias for runAppli.</span>
+<div class="viewcode-block" id="make_alias"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.application.make_alias">[docs]</a><span class="k">def</span> <span class="nf">make_alias</span><span class="p">(</span><span class="n">appli_path</span><span class="p">,</span> <span class="n">alias_path</span><span class="p">,</span> <span class="n">force</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+    <span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">alias_path</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">&quot;Bad name for alias&quot;</span>
+    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">alias_path</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">force</span><span class="p">:</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Cannot create the alias &#39;</span><span class="si">%s</span><span class="s2">&#39;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">alias_path</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span> <span class="c1"># find relative path</span>
+        <span class="n">os</span><span class="o">.</span><span class="n">symlink</span><span class="p">(</span><span class="n">appli_path</span><span class="p">,</span> <span class="n">alias_path</span><span class="p">)</span></div>
+
+<div class="viewcode-block" id="add_module_to_appli"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.application.add_module_to_appli">[docs]</a><span class="k">def</span> <span class="nf">add_module_to_appli</span><span class="p">(</span><span class="n">out</span><span class="p">,</span> <span class="n">module</span><span class="p">,</span> <span class="n">has_gui</span><span class="p">,</span> <span class="n">module_path</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">flagline</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;add the definition of a module to out stream.&quot;&quot;&quot;</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">module_path</span><span class="p">):</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="n">flagline</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+            <span class="n">flagline</span> <span class="o">=</span> <span class="kc">True</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">&quot;  </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;module </span><span class="si">%s</span><span class="s2"> not installed&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">module</span><span class="p">)</span>
+
+    <span class="n">out</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;   &lt;module name=&quot;</span><span class="si">%s</span><span class="s1">&quot; gui=&quot;</span><span class="si">%s</span><span class="s1">&quot; path=&quot;</span><span class="si">%s</span><span class="s1">&quot;/&gt;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> \
+              <span class="p">(</span><span class="n">module</span><span class="p">,</span> <span class="n">has_gui</span><span class="p">,</span> <span class="n">module_path</span><span class="p">))</span>
+    <span class="k">return</span> <span class="n">flagline</span></div>
+
+<span class="c1">##</span>
+<span class="c1"># Creates the config file to create an application with the list of modules.</span>
+<div class="viewcode-block" id="create_config_file"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.application.create_config_file">[docs]</a><span class="k">def</span> <span class="nf">create_config_file</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">modules</span><span class="p">,</span> <span class="n">env_file</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+
+    <span class="n">samples</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+    <span class="k">if</span> <span class="s1">&#39;SAMPLES&#39;</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">:</span>
+        <span class="n">samples</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="s1">&#39;SAMPLES&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">source_dir</span>
+
+    <span class="n">config_file</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_tmp_filename</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="s2">&quot;appli_config.xml&quot;</span><span class="p">)</span>
+    <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">config_file</span><span class="p">,</span> <span class="s2">&quot;w&quot;</span><span class="p">)</span>
+
+    <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;&lt;application&gt;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">env_file</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s2">&quot;cfg&quot;</span><span class="p">):</span>
+        <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;&lt;context path=&quot;</span><span class="si">%s</span><span class="s1">&quot;/&gt;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">env_file</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>   
+        <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;&lt;prerequisites path=&quot;</span><span class="si">%s</span><span class="s1">&quot;/&gt;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">env_file</span><span class="p">)</span>
+    <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;&lt;resources path=&quot;CatalogResources.xml&quot;/&gt;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
+    <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;&lt;modules&gt;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
+
+    <span class="n">flagline</span> <span class="o">=</span> <span class="kc">False</span>
+    <span class="k">for</span> <span class="n">m</span> <span class="ow">in</span> <span class="n">modules</span><span class="p">:</span>
+        <span class="n">mm</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_smesh_plugin</span><span class="p">(</span><span class="n">mm</span><span class="p">):</span>
+            <span class="k">continue</span>
+
+        <span class="k">if</span> <span class="s1">&#39;install_dir&#39;</span> <span class="ow">in</span> <span class="n">mm</span> <span class="ow">and</span> <span class="nb">bool</span><span class="p">(</span><span class="n">mm</span><span class="o">.</span><span class="n">install_dir</span><span class="p">):</span>
+            <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_cpp</span><span class="p">(</span><span class="n">mm</span><span class="p">):</span>
+                <span class="c1"># cpp module</span>
+                <span class="k">for</span> <span class="n">aa</span> <span class="ow">in</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_components</span><span class="p">(</span><span class="n">mm</span><span class="p">):</span>
+                    <span class="n">install_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span>
+                                               <span class="s2">&quot;INSTALL&quot;</span><span class="p">)</span>
+                    <span class="n">mp</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">install_dir</span><span class="p">,</span> <span class="n">aa</span><span class="p">)</span>
+                    <span class="n">flagline</span> <span class="o">=</span> <span class="n">add_module_to_appli</span><span class="p">(</span><span class="n">f</span><span class="p">,</span>
+                                                   <span class="n">aa</span><span class="p">,</span>
+                                                   <span class="s2">&quot;yes&quot;</span><span class="p">,</span>
+                                                   <span class="n">mp</span><span class="p">,</span>
+                                                   <span class="n">logger</span><span class="p">,</span>
+                                                   <span class="n">flagline</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="c1"># regular module</span>
+                <span class="n">mp</span> <span class="o">=</span> <span class="n">mm</span><span class="o">.</span><span class="n">install_dir</span>
+                <span class="n">gui</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_cfg_param</span><span class="p">(</span><span class="n">mm</span><span class="p">,</span> <span class="s2">&quot;has_gui&quot;</span><span class="p">,</span> <span class="s2">&quot;yes&quot;</span><span class="p">)</span>
+                <span class="n">flagline</span> <span class="o">=</span> <span class="n">add_module_to_appli</span><span class="p">(</span><span class="n">f</span><span class="p">,</span> <span class="n">m</span><span class="p">,</span> <span class="n">gui</span><span class="p">,</span> <span class="n">mp</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">flagline</span><span class="p">)</span>
+
+    <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;&lt;/modules&gt;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
+    <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;&lt;samples path=&quot;</span><span class="si">%s</span><span class="s1">&quot;/&gt;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">samples</span><span class="p">)</span>
+    <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;&lt;/application&gt;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
+    <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+    <span class="k">return</span> <span class="n">config_file</span></div>
+
+
+<div class="viewcode-block" id="customize_app"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.application.customize_app">[docs]</a><span class="k">def</span> <span class="nf">customize_app</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">appli_dir</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Customizes the application by editing SalomeApp.xml.&quot;&quot;&quot;</span>
+    <span class="k">if</span> <span class="s1">&#39;configure&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">virtual_app</span> \
+        <span class="ow">or</span> <span class="nb">len</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">virtual_app</span><span class="o">.</span><span class="n">configure</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="k">return</span>
+
+    <span class="k">def</span> <span class="nf">get_element</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">strtype</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;shortcut to get an element (section or parameter) from parent.&quot;&quot;&quot;</span>
+        <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">parent</span><span class="o">.</span><span class="n">getchildren</span><span class="p">():</span>
+            <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="n">name</span><span class="p">:</span>
+                <span class="k">return</span> <span class="n">c</span>
+
+        <span class="c1"># element not found create it</span>
+        <span class="n">elt</span> <span class="o">=</span> <span class="n">add_simple_node</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">strtype</span><span class="p">)</span>
+        <span class="n">elt</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">name</span>
+        <span class="k">return</span> <span class="n">elt</span>
+
+    <span class="k">def</span> <span class="nf">add_simple_node</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">node_name</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;shortcut method to create a node&quot;&quot;&quot;</span>
+        <span class="n">n</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="n">node_name</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">text</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">n</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s2">&quot;UTF-8&quot;</span><span class="p">)</span>
+            <span class="k">except</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">&quot;problem decode UTF8 </span><span class="si">%s</span><span class="s2">:</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> \
+                   <span class="p">(</span><span class="n">node_name</span><span class="p">,</span> <span class="n">UTS</span><span class="o">.</span><span class="n">toHex</span><span class="p">(</span><span class="n">text</span><span class="p">)))</span>
+                <span class="n">n</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">&quot;?&quot;</span>
+        <span class="n">parent</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">n</span>
+
+    <span class="c1"># read the app file</span>
+    <span class="n">app_file</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">appli_dir</span><span class="p">,</span> <span class="s2">&quot;SalomeApp.xml&quot;</span><span class="p">)</span>
+    <span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">app_file</span><span class="p">)</span>
+    <span class="n">document</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span>
+    <span class="k">assert</span> <span class="n">document</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">,</span> <span class="s2">&quot;document tag not found&quot;</span>
+
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+    <span class="k">for</span> <span class="n">section_name</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">virtual_app</span><span class="o">.</span><span class="n">configure</span><span class="p">:</span>
+        <span class="k">for</span> <span class="n">parameter_name</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">virtual_app</span><span class="o">.</span><span class="n">configure</span><span class="p">[</span><span class="n">section_name</span><span class="p">]:</span>
+            <span class="n">parameter_value</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">virtual_app</span><span class="o">.</span><span class="n">configure</span><span class="p">[</span><span class="n">section_name</span><span class="p">][</span><span class="n">parameter_name</span><span class="p">]</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;  configure: </span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2"> = </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">section_name</span><span class="p">,</span>
+                                                        <span class="n">parameter_name</span><span class="p">,</span>
+                                                        <span class="n">parameter_value</span><span class="p">))</span>
+            <span class="n">section</span> <span class="o">=</span> <span class="n">get_element</span><span class="p">(</span><span class="n">document</span><span class="p">,</span> <span class="n">section_name</span><span class="p">,</span> <span class="s2">&quot;section&quot;</span><span class="p">)</span>
+            <span class="n">parameter</span> <span class="o">=</span> <span class="n">get_element</span><span class="p">(</span><span class="n">section</span><span class="p">,</span> <span class="n">parameter_name</span><span class="p">,</span> <span class="s2">&quot;parameter&quot;</span><span class="p">)</span>
+            <span class="n">parameter</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;value&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">parameter_value</span>
+
+    <span class="c1"># write the file</span>
+    <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">app_file</span><span class="p">,</span> <span class="s2">&quot;w&quot;</span><span class="p">)</span>
+    <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;&lt;?xml version=&#39;1.0&#39; encoding=&#39;utf-8&#39;?&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+    <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">document</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">&#39;utf-8&#39;</span><span class="p">))</span>
+    <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div>
+
+<span class="c1">##</span>
+<span class="c1"># Generates the application with the config_file.</span>
+<div class="viewcode-block" id="generate_application"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.application.generate_application">[docs]</a><span class="k">def</span> <span class="nf">generate_application</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">appli_dir</span><span class="p">,</span> <span class="n">config_file</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="n">target_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">appli_dir</span><span class="p">)</span>
+
+    <span class="n">install_KERNEL_dir</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                                                        <span class="s1">&#39;KERNEL&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">install_dir</span>
+    <span class="n">script</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">install_KERNEL_dir</span><span class="p">,</span> <span class="s2">&quot;bin&quot;</span><span class="p">,</span> <span class="s2">&quot;salome&quot;</span><span class="p">,</span> <span class="s2">&quot;appli_gen.py&quot;</span><span class="p">)</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">script</span><span class="p">):</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;KERNEL is not installed&quot;</span><span class="p">))</span>
+    
+    <span class="c1"># Add SALOME python in the environment in order to avoid python version </span>
+    <span class="c1"># problems at appli_gen.py call</span>
+    <span class="k">if</span> <span class="s1">&#39;Python&#39;</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">:</span>
+        <span class="n">envi</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">environment</span><span class="o">.</span><span class="n">SalomeEnviron</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                                             <span class="n">src</span><span class="o">.</span><span class="n">environment</span><span class="o">.</span><span class="n">Environ</span><span class="p">(</span>
+                                                              <span class="nb">dict</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">)),</span>
+                                             <span class="kc">True</span><span class="p">)</span>
+        <span class="n">envi</span><span class="o">.</span><span class="n">set_a_product</span><span class="p">(</span><span class="s1">&#39;Python&#39;</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+    
+    <span class="n">command</span> <span class="o">=</span> <span class="s2">&quot;python </span><span class="si">%s</span><span class="s2"> --prefix=</span><span class="si">%s</span><span class="s2"> --config=</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">script</span><span class="p">,</span>
+                                                     <span class="n">appli_dir</span><span class="p">,</span>
+                                                     <span class="n">config_file</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&gt;&quot;</span> <span class="o">+</span> <span class="n">command</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">command</span><span class="p">,</span>
+                    <span class="n">shell</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+                    <span class="n">cwd</span><span class="o">=</span><span class="n">target_dir</span><span class="p">,</span>
+                    <span class="n">env</span><span class="o">=</span><span class="n">envi</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">environ</span><span class="p">,</span>
+                    <span class="n">stdout</span><span class="o">=</span><span class="n">logger</span><span class="o">.</span><span class="n">logTxtFile</span><span class="p">,</span>
+                    <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">STDOUT</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="n">res</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Cannot create application, code = </span><span class="si">%d</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">res</span><span class="p">)</span>
+
+    <span class="k">return</span> <span class="n">res</span></div>
+
+<div class="viewcode-block" id="get_step"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.application.get_step">[docs]</a><span class="k">def</span> <span class="nf">get_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">message</span><span class="p">,</span> <span class="n">pad</span><span class="o">=</span><span class="mi">50</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    returns &#39;message ........ &#39; with pad 50 by default</span>
+<span class="sd">    avoid colors &#39;&lt;color&gt;&#39; for now in message</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">return</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> </span><span class="si">%s</span><span class="s2"> &quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">message</span><span class="p">,</span> <span class="s1">&#39;.&#39;</span> <span class="o">*</span> <span class="p">(</span><span class="n">pad</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s2">&quot;UTF-8&quot;</span><span class="p">))))</span></div>
+
+<span class="c1">##</span>
+<span class="c1"># Creates a SALOME application.</span>
+<div class="viewcode-block" id="create_application"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.application.create_application">[docs]</a><span class="k">def</span> <span class="nf">create_application</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">appli_dir</span><span class="p">,</span> <span class="n">catalog</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">display</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+      
+    <span class="n">SALOME_modules</span> <span class="o">=</span> <span class="n">get_SALOME_modules</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
+    
+    <span class="n">warn</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;KERNEL&#39;</span><span class="p">,</span> <span class="s1">&#39;GUI&#39;</span><span class="p">]</span>
+    <span class="k">if</span> <span class="n">display</span><span class="p">:</span>
+        <span class="k">for</span> <span class="n">w</span> <span class="ow">in</span> <span class="n">warn</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">w</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">SALOME_modules</span><span class="p">:</span>
+                <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;module </span><span class="si">%s</span><span class="s2"> is required to create application</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">w</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+
+    <span class="c1"># generate the launch file</span>
+    <span class="n">retcode</span> <span class="o">=</span> <span class="n">generate_launch_file</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">appli_dir</span><span class="p">,</span> <span class="n">catalog</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">SALOME_modules</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="n">retcode</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">cmd</span> <span class="o">=</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2">/salome&quot;</span> <span class="o">%</span> <span class="n">appli_dir</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="n">display</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;To launch the application, type:&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">  </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">cmd</span><span class="p">))</span>
+    <span class="k">return</span> <span class="n">retcode</span></div>
+
+<div class="viewcode-block" id="get_SALOME_modules"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.application.get_SALOME_modules">[docs]</a><span class="k">def</span> <span class="nf">get_SALOME_modules</span><span class="p">(</span><span class="n">config</span><span class="p">):</span>
+    <span class="n">l_modules</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="k">for</span> <span class="n">product</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">:</span>
+        <span class="n">product_info</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">product</span><span class="p">)</span>
+        <span class="k">if</span> <span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_SALOME</span><span class="p">(</span><span class="n">product_info</span><span class="p">)</span> <span class="ow">or</span> 
+               <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_generated</span><span class="p">(</span><span class="n">product_info</span><span class="p">)):</span>
+            <span class="n">l_modules</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">product</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">l_modules</span></div>
+
+<div class="viewcode-block" id="generate_launch_file"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.application.generate_launch_file">[docs]</a><span class="k">def</span> <span class="nf">generate_launch_file</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">appli_dir</span><span class="p">,</span> <span class="n">catalog</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">l_SALOME_modules</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Obsolescent way of creating the application.</span>
+<span class="sd">    This method will use appli_gen to create the application directory.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">retcode</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
+
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">catalog</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">catalog</span><span class="p">):</span>
+        <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Catalog not found: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">catalog</span><span class="p">)</span>
+    
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">get_step</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Creating environment files&quot;</span><span class="p">)))</span>
+    <span class="n">status</span> <span class="o">=</span> <span class="s2">&quot;&lt;KO&gt;&quot;</span>
+
+    <span class="n">VersionSalome</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_salome_version</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">VersionSalome</span> <span class="o">&gt;=</span> <span class="mi">820</span><span class="p">:</span>
+        <span class="c1"># for salome 8+ we use a salome context file for the virtual app</span>
+        <span class="n">app_shell</span><span class="o">=</span><span class="s2">&quot;cfg&quot;</span>
+        <span class="n">env_ext</span><span class="o">=</span><span class="s2">&quot;cfg&quot;</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">app_shell</span><span class="o">=</span><span class="s2">&quot;bash&quot;</span>
+        <span class="n">env_ext</span><span class="o">=</span><span class="s2">&quot;sh&quot;</span>
+
+    <span class="k">try</span><span class="p">:</span>
+        <span class="kn">import</span> <span class="nn">environ</span>
+        <span class="c1"># generate only shells the user wants (by default bash, csh, batch)</span>
+        <span class="c1"># the environ command will only generate file compatible </span>
+        <span class="c1"># with the current system.</span>
+        <span class="n">environ</span><span class="o">.</span><span class="n">write_all_source_files</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                                       <span class="n">logger</span><span class="p">,</span>
+                                       <span class="n">shells</span><span class="o">=</span><span class="p">[</span><span class="n">app_shell</span><span class="p">],</span>
+                                       <span class="n">silent</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+        <span class="n">status</span> <span class="o">=</span> <span class="s2">&quot;&lt;OK&gt;&quot;</span>
+    <span class="k">finally</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">status</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+    <span class="c1"># build the application (the name depends upon salome version</span>
+    <span class="n">env_file</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span> <span class="s2">&quot;env_launch.&quot;</span> <span class="o">+</span> <span class="n">env_ext</span><span class="p">)</span>
+
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">get_step</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Building application&quot;</span><span class="p">)))</span>
+    <span class="n">cf</span> <span class="o">=</span> <span class="n">create_config_file</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">l_SALOME_modules</span><span class="p">,</span> <span class="n">env_file</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+
+    <span class="c1"># create the application directory</span>
+    <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">appli_dir</span><span class="p">)</span>
+
+    <span class="c1"># generate the application</span>
+    <span class="n">status</span> <span class="o">=</span> <span class="s2">&quot;&lt;KO&gt;&quot;</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="n">retcode</span> <span class="o">=</span> <span class="n">generate_application</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">appli_dir</span><span class="p">,</span> <span class="n">cf</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+        <span class="n">customize_app</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">appli_dir</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+        <span class="n">status</span> <span class="o">=</span> <span class="s2">&quot;&lt;OK&gt;&quot;</span>
+    <span class="k">finally</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">status</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+    <span class="c1"># copy the catalog if one</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">catalog</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">shutil</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">appli_dir</span><span class="p">,</span> <span class="s2">&quot;CatalogResources.xml&quot;</span><span class="p">))</span>
+
+    <span class="k">return</span> <span class="n">retcode</span></div>
+
+<div class="viewcode-block" id="generate_catalog"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.application.generate_catalog">[docs]</a><span class="k">def</span> <span class="nf">generate_catalog</span><span class="p">(</span><span class="n">machines</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Generates the catalog from a list of machines.&quot;&quot;&quot;</span>
+    <span class="c1"># remove empty machines</span>
+    <span class="n">machines</span> <span class="o">=</span> <span class="nb">map</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="n">l</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="n">machines</span><span class="p">)</span>
+    <span class="n">machines</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="nb">len</span><span class="p">(</span><span class="n">l</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">,</span> <span class="n">machines</span><span class="p">)</span>
+
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;  </span><span class="si">%s</span><span class="s2"> = </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Generate Resources Catalog&quot;</span><span class="p">),</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">machines</span><span class="p">))</span>
+    
+    <span class="n">cmd</span> <span class="o">=</span> <span class="s1">&#39;&quot;cat /proc/cpuinfo | grep MHz ; cat /proc/meminfo | grep MemTotal&quot;&#39;</span>
+    <span class="n">user</span> <span class="o">=</span> <span class="n">getpass</span><span class="o">.</span><span class="n">getuser</span><span class="p">()</span>
+
+    <span class="n">catfile</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_tmp_filename</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="s2">&quot;CatalogResources.xml&quot;</span><span class="p">)</span>
+    <span class="n">catalog</span> <span class="o">=</span> <span class="n">file</span><span class="p">(</span><span class="n">catfile</span><span class="p">,</span> <span class="s2">&quot;w&quot;</span><span class="p">)</span>
+    <span class="n">catalog</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">&lt;!DOCTYPE ResourcesCatalog&gt;</span>
+<span class="s2">&lt;resources&gt;</span>
+<span class="s2">&quot;&quot;&quot;</span><span class="p">)</span>
+
+    <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">machines</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;    ssh </span><span class="si">%s</span><span class="s2"> &quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">k</span> <span class="o">+</span> <span class="s2">&quot; &quot;</span><span class="p">)</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="s1">&#39;.&#39;</span><span class="p">),</span> <span class="mi">4</span><span class="p">)</span>
+
+        <span class="n">ssh_cmd</span> <span class="o">=</span> <span class="s1">&#39;ssh -o &quot;StrictHostKeyChecking no&quot; </span><span class="si">%s</span><span class="s1"> </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">cmd</span><span class="p">)</span>
+        <span class="n">p</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">ssh_cmd</span><span class="p">,</span> <span class="n">shell</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+                <span class="n">stdin</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span>
+                <span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span>
+                <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span>
+        <span class="n">p</span><span class="o">.</span><span class="n">wait</span><span class="p">()</span>
+
+        <span class="k">if</span> <span class="n">p</span><span class="o">.</span><span class="n">returncode</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">&quot;&lt;KO&gt;</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="n">p</span><span class="o">.</span><span class="n">stderr</span><span class="o">.</span><span class="n">read</span><span class="p">()))</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;&lt;OK&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+            <span class="n">lines</span> <span class="o">=</span> <span class="n">p</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">readlines</span><span class="p">()</span>
+            <span class="n">freq</span> <span class="o">=</span> <span class="n">lines</span><span class="p">[</span><span class="mi">0</span><span class="p">][:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;:&#39;</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+            <span class="n">nb_proc</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">lines</span><span class="p">)</span> <span class="o">-</span><span class="mi">1</span>
+            <span class="n">memory</span> <span class="o">=</span> <span class="n">lines</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;:&#39;</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+            <span class="n">memory</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">memory</span><span class="p">)</span> <span class="o">/</span> <span class="mi">1000</span>
+            
+            <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">    &lt;machine</span>
+<span class="s2">        protocol=&quot;ssh&quot;</span>
+<span class="s2">        nbOfNodes=&quot;1&quot;</span>
+<span class="s2">        mode=&quot;interactif&quot;</span>
+<span class="s2">        OS=&quot;LINUX&quot;</span>
+<span class="s2">        CPUFreqMHz=&quot;</span><span class="si">%s</span><span class="s2">&quot;</span>
+<span class="s2">        nbOfProcPerNode=&quot;</span><span class="si">%s</span><span class="s2">&quot;</span>
+<span class="s2">        memInMB=&quot;</span><span class="si">%s</span><span class="s2">&quot;</span>
+<span class="s2">        userName=&quot;</span><span class="si">%s</span><span class="s2">&quot;</span>
+<span class="s2">        name=&quot;</span><span class="si">%s</span><span class="s2">&quot;</span>
+<span class="s2">        hostname=&quot;</span><span class="si">%s</span><span class="s2">&quot;</span>
+<span class="s2">    &gt;</span>
+<span class="s2">    &lt;/machine&gt;</span>
+<span class="s2">&quot;&quot;&quot;</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="n">msg</span> <span class="o">%</span> <span class="p">(</span><span class="n">freq</span><span class="p">,</span> <span class="n">nb_proc</span><span class="p">,</span> <span class="n">memory</span><span class="p">,</span> <span class="n">user</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">k</span><span class="p">)</span>
+            <span class="n">catalog</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+            
+    <span class="n">catalog</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;&lt;/resources&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+    <span class="n">catalog</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+    <span class="k">return</span> <span class="n">catfile</span></div>
+
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/check.html b/doc/build/html/_modules/commands/check.html
new file mode 100644 (file)
index 0000000..8bc6e5e
--- /dev/null
@@ -0,0 +1,344 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.check &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.check</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+
+<span class="c1">#-*- coding:utf-8 -*-</span>
+<span class="c1">#  Copyright (C) 2010-2018  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+
+<span class="n">CHECK_PROPERTY</span> <span class="o">=</span> <span class="s2">&quot;has_unit_tests&quot;</span>
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.check.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">  The check command executes the &#39;check&#39; command in the build directory of </span>
+<span class="sd">  all the products of the application.</span>
+<span class="sd">  It is possible to reduce the list of products to check</span>
+<span class="sd">  by using the --products option</span>
+
+<span class="sd">  examples:</span>
+<span class="sd">  &gt;&gt; sat check SALOME --products KERNEL,GUI,GEOM</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;check&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.check.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for the check command &#39;sat check &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;p&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span> <span class="s1">&#39;list2&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">Optional: products to configure.</span>
+<span class="s2">          This option can be passed several time to configure several products.&quot;&quot;&quot;</span><span class="p">))</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.check.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat check &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+
+
+    <span class="c1"># check that the command has been called with an application</span>
+    <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span> <span class="n">config</span> <span class="p">)</span>
+
+    <span class="c1"># Get the list of products to treat</span>
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="n">get_products_list</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+    
+    <span class="c1"># Print some informations</span>
+    <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Executing the check command in the build directories of the application&#39;</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">)))</span>
+    
+    <span class="n">info</span> <span class="o">=</span> <span class="p">[(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;BUILD directory&quot;</span><span class="p">),</span>
+             <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span> <span class="s1">&#39;BUILD&#39;</span><span class="p">))]</span>
+    <span class="n">UTS</span><span class="o">.</span><span class="n">logger_info_tuples</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">info</span><span class="p">)</span>
+    
+    <span class="c1"># Call the function that will loop over all the products and execute</span>
+    <span class="c1"># the right command(s)</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="n">check_all_products</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">products_infos</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+    
+    <span class="c1"># Print the final state</span>
+    <span class="n">nb_products</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">products_infos</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">res</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">final_status</span> <span class="o">=</span> <span class="s2">&quot;&lt;OK&gt;&quot;</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">final_status</span> <span class="o">=</span> <span class="s2">&quot;&lt;KO&gt;&quot;</span>
+   
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">Check: </span><span class="si">%(status)s</span><span class="s2"> (</span><span class="si">%(1)d</span><span class="s2">/</span><span class="si">%(2)d</span><span class="s2">)</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> \
+        <span class="p">{</span> <span class="s1">&#39;status&#39;</span><span class="p">:</span> <span class="n">final_status</span><span class="p">,</span> 
+          <span class="s1">&#39;1&#39;</span><span class="p">:</span> <span class="n">nb_products</span> <span class="o">-</span> <span class="n">res</span><span class="p">,</span>
+          <span class="s1">&#39;2&#39;</span><span class="p">:</span> <span class="n">nb_products</span> <span class="p">})</span>    
+    
+    <span class="k">return</span> <span class="n">res</span> </div></div>
+
+
+<div class="viewcode-block" id="get_products_list"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.check.get_products_list">[docs]</a><span class="k">def</span> <span class="nf">get_products_list</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">cfg</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    method that gives the product list with their informations from </span>
+<span class="sd">    configuration regarding the passed options.</span>
+<span class="sd">    </span>
+<span class="sd">    :param options: (Options) The Options instance that stores </span>
+<span class="sd">      the commands arguments</span>
+<span class="sd">    :param cfg: (Config) The global configuration</span>
+<span class="sd">    :param logger: (Logger) The logger instance to use </span>
+<span class="sd">      for the display and logging</span>
+<span class="sd">    :return: (list) The list of (product name, product_informations).</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c1"># Get the products to be prepared, regarding the options</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">products</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="c1"># No options, get all products sources</span>
+        <span class="n">products</span> <span class="o">=</span> <span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="c1"># if option --products, check that all products of the command line</span>
+        <span class="c1"># are present in the application.</span>
+        <span class="n">products</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">products</span>
+        <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">products</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">p</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">:</span>
+                <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Product </span><span class="si">%(1)s</span><span class="s2"> not defined in application </span><span class="si">%(2)s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> \
+                      <span class="p">{</span> <span class="s1">&#39;1&#39;</span><span class="p">:</span> <span class="n">p</span><span class="p">,</span> <span class="s1">&#39;2&#39;</span><span class="p">:</span> <span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">}</span>
+                <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+    
+    <span class="c1"># Construct the list of tuple containing </span>
+    <span class="c1"># the products name and their definition</span>
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_products_infos</span><span class="p">(</span><span class="n">products</span><span class="p">,</span> <span class="n">cfg</span><span class="p">)</span>
+    
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="p">[</span><span class="n">pi</span> <span class="k">for</span> <span class="n">pi</span> <span class="ow">in</span> <span class="n">products_infos</span> <span class="k">if</span> <span class="ow">not</span><span class="p">(</span>
+                                     <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_native</span><span class="p">(</span><span class="n">pi</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="ow">or</span> 
+                                     <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_fixed</span><span class="p">(</span><span class="n">pi</span><span class="p">[</span><span class="mi">1</span><span class="p">]))]</span>
+    
+    <span class="k">return</span> <span class="n">products_infos</span></div>
+
+<div class="viewcode-block" id="log_step"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.check.log_step">[docs]</a><span class="k">def</span> <span class="nf">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="n">step</span><span class="p">):</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="mi">20</span><span class="p">))</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="n">step</span><span class="p">))</span></div>
+
+<div class="viewcode-block" id="log_res_step"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.check.log_res_step">[docs]</a><span class="k">def</span> <span class="nf">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res</span><span class="p">):</span>
+    <span class="k">if</span> <span class="n">res</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;&lt;OK&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;&lt;KO&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span></div>
+
+<div class="viewcode-block" id="check_all_products"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.check.check_all_products">[docs]</a><span class="k">def</span> <span class="nf">check_all_products</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">products_infos</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Execute the proper configuration commands </span>
+<span class="sd">    in each product build directory.</span>
+
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param products_info: (list) </span>
+<span class="sd">      List of (str, Config) =&gt; (product_name, product_info)</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :return: (int) the number of failing commands.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="k">for</span> <span class="n">p_name_info</span> <span class="ow">in</span> <span class="n">products_infos</span><span class="p">:</span>
+        <span class="n">res_prod</span> <span class="o">=</span> <span class="n">check_product</span><span class="p">(</span><span class="n">p_name_info</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">res_prod</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">res</span> <span class="o">+=</span> <span class="mi">1</span> 
+    <span class="k">return</span> <span class="n">res</span></div>
+
+<div class="viewcode-block" id="check_product"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.check.check_product">[docs]</a><span class="k">def</span> <span class="nf">check_product</span><span class="p">(</span><span class="n">p_name_info</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Execute the proper configuration command(s) </span>
+<span class="sd">    in the product build directory.</span>
+<span class="sd">    </span>
+<span class="sd">    :param p_name_info: (tuple) </span>
+<span class="sd">      (str, Config) =&gt; (product_name, product_info)</span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :return: (int) 1 if it fails, else 0.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    
+    <span class="n">p_name</span><span class="p">,</span> <span class="n">p_info</span> <span class="o">=</span> <span class="n">p_name_info</span>
+
+    <span class="n">header</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Check of </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">p_name</span><span class="p">)</span>
+    <span class="n">header</span> <span class="o">+=</span> <span class="s2">&quot; </span><span class="si">%s</span><span class="s2"> &quot;</span> <span class="o">%</span> <span class="p">(</span><span class="s2">&quot;.&quot;</span> <span class="o">*</span> <span class="p">(</span><span class="mi">20</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">p_name</span><span class="p">)))</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">header</span><span class="p">)</span>
+
+    <span class="c1"># Verify if the command has to be launched or not</span>
+    <span class="n">ignored</span> <span class="o">=</span> <span class="kc">False</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;&quot;</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">src</span><span class="o">.</span><span class="n">get_property_in_product_cfg</span><span class="p">(</span><span class="n">p_info</span><span class="p">,</span> <span class="n">CHECK_PROPERTY</span><span class="p">):</span>
+        <span class="n">msg</span> <span class="o">+=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The product </span><span class="si">%s</span><span class="s2"> is defined as not having tests: product ignored.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">p_name</span>
+        <span class="n">ignored</span> <span class="o">=</span> <span class="kc">True</span>
+    <span class="k">if</span> <span class="s2">&quot;build_dir&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">p_info</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">+=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The product </span><span class="si">%s</span><span class="s2"> have no &#39;build_dir&#39; key: product ignored.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">p_name</span>
+        <span class="n">ignored</span> <span class="o">=</span> <span class="kc">True</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_compiles</span><span class="p">(</span><span class="n">p_info</span><span class="p">):</span>
+        <span class="n">msg</span> <span class="o">+=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The product </span><span class="si">%s</span><span class="s2"> is defined as not compiling: product ignored.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">p_name</span>
+        <span class="n">ignored</span> <span class="o">=</span> <span class="kc">True</span>
+    
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">msg</span><span class="p">)</span>
+    <span class="c1"># Get the command to execute for script products</span>
+    <span class="n">cmd_found</span> <span class="o">=</span> <span class="kc">True</span>
+    <span class="n">command</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+    <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_has_script</span><span class="p">(</span><span class="n">p_info</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">ignored</span><span class="p">:</span>
+        <span class="n">command</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_cfg_param</span><span class="p">(</span><span class="n">p_info</span><span class="p">,</span> <span class="s2">&quot;test_build&quot;</span><span class="p">,</span> <span class="s2">&quot;Not found&quot;</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">command</span> <span class="o">==</span> <span class="s2">&quot;Not found&quot;</span><span class="p">:</span>
+            <span class="n">cmd_found</span> <span class="o">=</span> <span class="kc">False</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">The product </span><span class="si">%s</span><span class="s2"> is defined as having tests.</span>
+<span class="s2">But it is compiled using a script and the key &#39;test_build&#39;</span>
+<span class="s2">is not defined in the definition of %(name)</span><span class="se">\n</span><span class="s2">&quot;&quot;&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">p_name</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+                
+    <span class="k">if</span> <span class="n">ignored</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">cmd_found</span><span class="p">:</span>
+        <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;ignored&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;==== </span><span class="si">%s</span><span class="s2"> </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">p_name</span><span class="p">,</span> <span class="s2">&quot;IGNORED&quot;</span><span class="p">))</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="n">cmd_found</span><span class="p">:</span>
+            <span class="k">return</span> <span class="mi">1</span>
+        <span class="k">return</span> <span class="mi">0</span>
+    
+    <span class="c1"># Instantiate the class that manages all the construction commands</span>
+    <span class="c1"># like cmake, check, make install, make test, environment management, etc...</span>
+    <span class="n">builder</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">compilation</span><span class="o">.</span><span class="n">Builder</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">p_info</span><span class="p">)</span>
+    
+    <span class="c1"># Prepare the environment</span>
+    <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;PREPARE ENV&quot;</span><span class="p">)</span>
+    <span class="n">res_prepare</span> <span class="o">=</span> <span class="n">builder</span><span class="o">.</span><span class="n">prepare</span><span class="p">()</span>
+    <span class="n">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res_prepare</span><span class="p">)</span>
+    
+    <span class="n">len_end_line</span> <span class="o">=</span> <span class="mi">20</span>
+
+    <span class="c1"># Launch the check    </span>
+    <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;CHECK&quot;</span><span class="p">)</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="n">builder</span><span class="o">.</span><span class="n">check</span><span class="p">(</span><span class="n">command</span><span class="o">=</span><span class="n">command</span><span class="p">)</span>
+    <span class="n">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res</span><span class="p">)</span>
+    
+    <span class="c1"># Log the result</span>
+    <span class="k">if</span> <span class="n">res</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="n">len_end_line</span><span class="p">))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">header</span> <span class="o">+</span> <span class="s2">&quot;&lt;KO&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;==== &lt;KO&gt; in check of </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">p_name</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="n">len_end_line</span><span class="p">))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">header</span> <span class="o">+</span> <span class="s2">&quot;&lt;OK&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;==== &lt;OK&gt; in check of </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">p_name</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+    <span class="k">return</span> <span class="n">res</span></div>
+
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/clean.html b/doc/build/html/_modules/commands/clean.html
new file mode 100644 (file)
index 0000000..7ccaae4
--- /dev/null
@@ -0,0 +1,326 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.clean &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.clean</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2018  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+<span class="kn">import</span> <span class="nn">re</span>
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+
+<span class="c1"># Compatibility python 2/3 for input function</span>
+<span class="c1"># input stays input for python 3 and input = raw_input for python 2</span>
+<span class="k">try</span><span class="p">:</span> 
+    <span class="nb">input</span> <span class="o">=</span> <span class="n">raw_input</span>
+<span class="k">except</span> <span class="ne">NameError</span><span class="p">:</span> 
+    <span class="k">pass</span>
+
+<span class="n">PROPERTY_EXPRESSION</span> <span class="o">=</span> <span class="s2">&quot;^.+:.+$&quot;</span>
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.clean.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">  The clean command suppresses the source, build, or install directories </span>
+<span class="sd">  of the application products.</span>
+<span class="sd">  Use the options to define what directories you want to suppress and </span>
+<span class="sd">  to reduce the list of products</span>
+
+<span class="sd">  examples:</span>
+<span class="sd">  &gt;&gt; sat clean SALOME --build --install --properties is_salome_module:yes</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;clean&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.clean.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for the command &#39;sat clean &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;p&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span> <span class="s1">&#39;list2&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: Products to clean. This option can be&#39;</span>
+        <span class="s1">&#39; passed several time to clean several products.&#39;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;properties&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;properties&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: Filter the products by their properties.</span><span class="se">\n</span><span class="s1">&#39;</span>
+          <span class="s1">&#39;</span><span class="se">\t</span><span class="s1">Syntax: --properties &lt;property&gt;:&lt;value&gt;&#39;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;s&#39;</span><span class="p">,</span> <span class="s1">&#39;sources&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;sources&#39;</span><span class="p">,</span> 
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: Clean the product source directories.&quot;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;b&#39;</span><span class="p">,</span> <span class="s1">&#39;build&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;build&#39;</span><span class="p">,</span> 
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: Clean the product build directories.&quot;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;i&#39;</span><span class="p">,</span> <span class="s1">&#39;install&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;install&#39;</span><span class="p">,</span> 
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: Clean the product install directories.&quot;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;a&#39;</span><span class="p">,</span> <span class="s1">&#39;all&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;all&#39;</span><span class="p">,</span> 
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: Clean the product source, build and install directories.&quot;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;sources_without_dev&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;sources_without_dev&#39;</span><span class="p">,</span> 
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: do not clean the products in development mode.&quot;</span><span class="p">))</span>
+    <span class="k">return</span> <span class="n">parser</span>    </div>
+
+  
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.clean.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat clean &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+
+    <span class="c1"># check that the command has been called with an application</span>
+    <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span> <span class="n">config</span> <span class="p">)</span>
+
+    <span class="c1"># Verify the --properties option</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">properties</span><span class="p">:</span>
+        <span class="n">oExpr</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="n">PROPERTY_EXPRESSION</span><span class="p">)</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="n">oExpr</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">options</span><span class="o">.</span><span class="n">properties</span><span class="p">):</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">The &#39;--properties&#39; options must have the following syntax:</span>
+<span class="s2">  --properties &lt;property&gt;:&lt;value&gt;</span><span class="se">\n</span><span class="s2">&quot;&quot;&quot;</span><span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+            <span class="n">options</span><span class="o">.</span><span class="n">properties</span> <span class="o">=</span> <span class="kc">None</span>
+            
+
+    <span class="c1"># Get the list of products to threat</span>
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_products_list</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+
+    <span class="c1"># Construct the list of directories to suppress</span>
+    <span class="n">l_dir_to_suppress</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">all</span><span class="p">:</span>
+        <span class="n">l_dir_to_suppress</span> <span class="o">+=</span> <span class="p">(</span><span class="n">get_source_directories</span><span class="p">(</span><span class="n">products_infos</span><span class="p">,</span> 
+                                            <span class="n">options</span><span class="o">.</span><span class="n">sources_without_dev</span><span class="p">)</span> <span class="o">+</span>
+                             <span class="n">get_build_directories</span><span class="p">(</span><span class="n">products_infos</span><span class="p">)</span> <span class="o">+</span> 
+                             <span class="n">get_install_directories</span><span class="p">(</span><span class="n">products_infos</span><span class="p">))</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">install</span><span class="p">:</span>
+            <span class="n">l_dir_to_suppress</span> <span class="o">+=</span> <span class="n">get_install_directories</span><span class="p">(</span><span class="n">products_infos</span><span class="p">)</span>
+        
+        <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">build</span><span class="p">:</span>
+            <span class="n">l_dir_to_suppress</span> <span class="o">+=</span> <span class="n">get_build_directories</span><span class="p">(</span><span class="n">products_infos</span><span class="p">)</span>
+            
+        <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">sources</span> <span class="ow">or</span> <span class="n">options</span><span class="o">.</span><span class="n">sources_without_dev</span><span class="p">:</span>
+            <span class="n">l_dir_to_suppress</span> <span class="o">+=</span> <span class="n">get_source_directories</span><span class="p">(</span><span class="n">products_infos</span><span class="p">,</span> 
+                                                <span class="n">options</span><span class="o">.</span><span class="n">sources_without_dev</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">l_dir_to_suppress</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">sat_command</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;sat -h clean&quot;</span><span class="p">)</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Nothing to suppress, Please specify what you want to suppress.&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">see: &#39;</span><span class="si">%s</span><span class="s2">&#39;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">sat_command</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;KO&quot;</span><span class="p">,</span> <span class="s2">&quot;specify what you want to suppress&quot;</span><span class="p">)</span>
+    
+    <span class="c1"># Check with the user if he really wants to suppress the directories</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">runner</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">batch</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Remove the following directories ?</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="k">for</span> <span class="n">directory</span> <span class="ow">in</span> <span class="n">l_dir_to_suppress</span><span class="p">:</span>
+            <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;  </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">directory</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="n">rep</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Are you sure you want to continue? [Yes/No] &quot;</span><span class="p">))</span>
+        <span class="k">if</span> <span class="n">rep</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">!=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;YES&quot;</span><span class="p">):</span>
+            <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;user do not want to continue&quot;</span><span class="p">)</span>
+    
+    <span class="c1"># Suppress the list of paths</span>
+    <span class="n">suppress_directories</span><span class="p">(</span><span class="n">l_dir_to_suppress</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+    
+    <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;clean done&quot;</span><span class="p">)</span></div></div>
+    
+
+<div class="viewcode-block" id="get_source_directories"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.clean.get_source_directories">[docs]</a><span class="k">def</span> <span class="nf">get_source_directories</span><span class="p">(</span><span class="n">products_infos</span><span class="p">,</span> <span class="n">without_dev</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Returns the list of directory source paths corresponding to the list of </span>
+<span class="sd">    product information given as input. If without_dev (bool), then</span>
+<span class="sd">    the dev products are ignored.</span>
+<span class="sd">    </span>
+<span class="sd">    :param products_infos: (list) </span>
+<span class="sd">      The list of (name, config) corresponding to one product.</span>
+<span class="sd">    :param without_dev: (boolean) If True, then ignore the dev products.</span>
+<span class="sd">    :return: (list) the list of source paths.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">l_dir_source</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="k">for</span> <span class="n">__</span><span class="p">,</span> <span class="n">product_info</span> <span class="ow">in</span> <span class="n">products_infos</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">product_has_dir</span><span class="p">(</span><span class="n">product_info</span><span class="p">,</span> <span class="n">without_dev</span><span class="p">):</span>
+            <span class="n">l_dir_source</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">Path</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">source_dir</span><span class="p">))</span>
+    <span class="k">return</span> <span class="n">l_dir_source</span></div>
+
+<div class="viewcode-block" id="get_build_directories"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.clean.get_build_directories">[docs]</a><span class="k">def</span> <span class="nf">get_build_directories</span><span class="p">(</span><span class="n">products_infos</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Returns the list of directory build paths corresponding to the list of </span>
+<span class="sd">    product information given as input.</span>
+<span class="sd">    </span>
+<span class="sd">    :param products_infos: (list)</span>
+<span class="sd">      The list of (name, config) corresponding to one product.</span>
+<span class="sd">    :return: (list) the list of build paths.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">l_dir_build</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="k">for</span> <span class="n">__</span><span class="p">,</span> <span class="n">product_info</span> <span class="ow">in</span> <span class="n">products_infos</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">product_has_dir</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+            <span class="k">if</span> <span class="s2">&quot;build_dir&quot;</span> <span class="ow">in</span> <span class="n">product_info</span><span class="p">:</span>
+                <span class="n">l_dir_build</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">Path</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">build_dir</span><span class="p">))</span>
+    <span class="k">return</span> <span class="n">l_dir_build</span></div>
+
+<div class="viewcode-block" id="get_install_directories"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.clean.get_install_directories">[docs]</a><span class="k">def</span> <span class="nf">get_install_directories</span><span class="p">(</span><span class="n">products_infos</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Returns the list of directory install paths corresponding to the list of </span>
+<span class="sd">    product information given as input.</span>
+<span class="sd">    </span>
+<span class="sd">    :param products_infos: (list) </span>
+<span class="sd">      The list of (name, config) corresponding to one product.</span>
+<span class="sd">    :return: (list) the list of install paths.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">l_dir_install</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="k">for</span> <span class="n">__</span><span class="p">,</span> <span class="n">product_info</span> <span class="ow">in</span> <span class="n">products_infos</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">product_has_dir</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+            <span class="n">l_dir_install</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">Path</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">install_dir</span><span class="p">))</span>
+    <span class="k">return</span> <span class="n">l_dir_install</span></div>
+
+<div class="viewcode-block" id="product_has_dir"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.clean.product_has_dir">[docs]</a><span class="k">def</span> <span class="nf">product_has_dir</span><span class="p">(</span><span class="n">product_info</span><span class="p">,</span> <span class="n">without_dev</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Returns a boolean at True if there is a source, build and install</span>
+<span class="sd">    directory corresponding to the product described by product_info.</span>
+<span class="sd">    </span>
+<span class="sd">    :param products_info: (Config) </span>
+<span class="sd">      The config corresponding to the product.</span>
+<span class="sd">    :return: (bool)</span>
+<span class="sd">      True if there is a source, build and install</span>
+<span class="sd">      directory corresponding to the product described by product_info.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">if</span> <span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_native</span><span class="p">(</span><span class="n">product_info</span><span class="p">)</span> <span class="ow">or</span> 
+                            <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_fixed</span><span class="p">(</span><span class="n">product_info</span><span class="p">)):</span>
+        <span class="k">return</span> <span class="kc">False</span>
+    <span class="k">if</span> <span class="n">without_dev</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_dev</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+            <span class="k">return</span> <span class="kc">False</span>
+    <span class="k">return</span> <span class="kc">True</span></div>
+    
+<div class="viewcode-block" id="suppress_directories"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.clean.suppress_directories">[docs]</a><span class="k">def</span> <span class="nf">suppress_directories</span><span class="p">(</span><span class="n">l_paths</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Suppress the paths given in the list in l_paths.</span>
+<span class="sd">    </span>
+<span class="sd">    :param l_paths: (list) The list of Path to be suppressed</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    &quot;&quot;&quot;</span>    
+    <span class="k">for</span> <span class="n">path</span> <span class="ow">in</span> <span class="n">l_paths</span><span class="p">:</span>
+        <span class="n">strpath</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">():</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The path </span><span class="si">%s</span><span class="s2"> does not exists (or is not a directory)</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">strpath</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Removing </span><span class="si">%s</span><span class="s2"> ...&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">strpath</span> <span class="p">)</span>
+            <span class="n">path</span><span class="o">.</span><span class="n">rm</span><span class="p">()</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;&lt;OK&gt;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span></div>
+
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/compile.html b/doc/build/html/_modules/commands/compile.html
new file mode 100644 (file)
index 0000000..b689ce6
--- /dev/null
@@ -0,0 +1,817 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.compile &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.compile</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2018  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+
+<span class="kn">import</span> <span class="nn">os</span>
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">import</span> <span class="nn">src.pyconf</span> <span class="k">as</span> <span class="nn">PYCONF</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+
+<span class="c1"># Compatibility python 2/3 for input function</span>
+<span class="c1"># input stays input for python 3 and input = raw_input for python 2</span>
+<span class="k">try</span><span class="p">:</span> 
+    <span class="nb">input</span> <span class="o">=</span> <span class="n">raw_input</span>
+<span class="k">except</span> <span class="ne">NameError</span><span class="p">:</span> 
+    <span class="k">pass</span>
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.compile.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;\</span>
+<span class="sd">  The compile command constructs the products of the application</span>
+<span class="sd">  </span>
+<span class="sd">  examples:</span>
+<span class="sd">    &gt;&gt; sat compile SALOME --products KERNEL,GUI,MEDCOUPLING --clean_all</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;compile&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.compile.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for the command &#39;sat compile &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;p&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span> <span class="s1">&#39;list2&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: products to configure. This option can be passed several time to configure several products.&#39;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;with_fathers&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;fathers&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: build all necessary products to the given product (KERNEL is build before building GUI).&quot;</span><span class="p">),</span> 
+        <span class="kc">False</span><span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;with_children&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;children&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: build all products using the given product (all SMESH plugins  are build after SMESH).&quot;</span><span class="p">),</span>
+        <span class="kc">False</span><span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;clean_all&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;clean_all&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: clean BUILD dir and INSTALL dir before building product.&quot;</span><span class="p">),</span>
+        <span class="kc">False</span><span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;clean_install&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;clean_install&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: clean INSTALL dir before building product.&quot;</span><span class="p">),</span> <span class="kc">False</span><span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;make_flags&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;makeflags&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: add extra options to the &#39;make&#39; command.&quot;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;show&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;no_compile&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: DO NOT COMPILE just show if products are installed or not.&quot;</span><span class="p">),</span>
+        <span class="kc">False</span><span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;stop_first_fail&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;stop_first_fail&#39;</span><span class="p">,</span> <span class="n">_</span><span class="p">(</span>
+        <span class="s2">&quot;Optional: Stops the command at first product compilation fail.&quot;</span><span class="p">),</span> 
+        <span class="kc">False</span><span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;check&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;check&#39;</span><span class="p">,</span> 
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: execute the unit tests after compilation&quot;</span><span class="p">),</span> 
+       <span class="kc">False</span><span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;clean_build_after&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;clean_build_after&#39;</span><span class="p">,</span> 
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: remove the build directory after successful compilation&#39;</span><span class="p">),</span> 
+        <span class="kc">False</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.compile.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat compile &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+
+    <span class="c1"># Warn the user if he invoked the clean_all option </span>
+    <span class="c1"># without --products option</span>
+    <span class="k">if</span> <span class="p">(</span><span class="n">options</span><span class="o">.</span><span class="n">clean_all</span> <span class="ow">and</span> 
+        <span class="n">options</span><span class="o">.</span><span class="n">products</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">and</span> 
+        <span class="ow">not</span> <span class="n">runner</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">batch</span><span class="p">):</span>
+        <span class="n">rep</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;You used --clean_all without specifying a product&quot;</span>
+                      <span class="s2">&quot; are you sure you want to continue? [Yes/No] &quot;</span><span class="p">))</span>
+        <span class="k">if</span> <span class="n">rep</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">!=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;YES&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">():</span>
+            <span class="k">return</span> <span class="mi">0</span>
+        
+    <span class="c1"># check that the command has been called with an application</span>
+    <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span> <span class="n">config</span> <span class="p">)</span>
+
+    <span class="c1"># Print some informations</span>
+    <span class="n">nameApp</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">)</span>
+    <span class="n">srcDir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span> <span class="s1">&#39;SOURCES&#39;</span><span class="p">)</span>
+    <span class="n">buildDir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span> <span class="s1">&#39;BUILD&#39;</span><span class="p">)</span>
+    
+    <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Application </span><span class="si">%s</span><span class="s2">, executing compile commands in build directories of products.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">nameApp</span><span class="p">))</span>
+    
+    <span class="n">info</span> <span class="o">=</span> <span class="p">[</span> <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;SOURCE directory&quot;</span><span class="p">),</span> <span class="n">srcDir</span><span class="p">),</span>
+             <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;BUILD directory&quot;</span><span class="p">),</span><span class="n">buildDir</span><span class="p">)</span> <span class="p">]</span>
+    <span class="n">UTS</span><span class="o">.</span><span class="n">logger_info_tuples</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">info</span><span class="p">)</span>
+
+    <span class="c1"># Get the list of products to treat</span>
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="n">get_products_list</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">fathers</span><span class="p">:</span>
+        <span class="c1"># Extend the list with all recursive dependencies of the given products</span>
+        <span class="n">products_infos</span> <span class="o">=</span> <span class="n">extend_with_fathers</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">products_infos</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">children</span><span class="p">:</span>
+        <span class="c1"># Extend the list with all products that use the given products</span>
+        <span class="n">products_infos</span> <span class="o">=</span> <span class="n">extend_with_children</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">products_infos</span><span class="p">)</span>
+
+    <span class="c1"># Sort the list regarding the dependencies of the products</span>
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="n">sort_products</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">products_infos</span><span class="p">)</span>
+
+    
+    <span class="c1"># Call the function that will loop over all the products and execute</span>
+    <span class="c1"># the right command(s)</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="n">compile_all_products</span><span class="p">(</span><span class="n">runner</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">products_infos</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+    
+    <span class="c1"># Print the final state</span>
+    <span class="n">nb_products</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">products_infos</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">res</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">final_status</span> <span class="o">=</span> <span class="s2">&quot;&lt;OK&gt;&quot;</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">final_status</span> <span class="o">=</span> <span class="s2">&quot;&lt;KO&gt;&quot;</span>
+   
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">Compilation: </span><span class="si">%(status)s</span><span class="s2"> (</span><span class="si">%(1)d</span><span class="s2">/</span><span class="si">%(2)d</span><span class="s2">)</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> \
+        <span class="p">{</span> <span class="s1">&#39;status&#39;</span><span class="p">:</span> <span class="n">final_status</span><span class="p">,</span> 
+          <span class="s1">&#39;1&#39;</span><span class="p">:</span> <span class="n">nb_products</span> <span class="o">-</span> <span class="n">res</span><span class="p">,</span>
+          <span class="s1">&#39;2&#39;</span><span class="p">:</span> <span class="n">nb_products</span> <span class="p">})</span>    
+    
+    <span class="n">code</span> <span class="o">=</span> <span class="n">res</span>
+    <span class="k">if</span> <span class="n">code</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">code</span> <span class="o">=</span> <span class="mi">1</span>
+    <span class="k">return</span> <span class="n">code</span></div></div>
+      
+      
+<div class="viewcode-block" id="get_products_list"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.compile.get_products_list">[docs]</a><span class="k">def</span> <span class="nf">get_products_list</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">cfg</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    method that gives the product list with their informations from </span>
+<span class="sd">    configuration regarding the passed options.</span>
+<span class="sd">    </span>
+<span class="sd">    :param options: (Options) </span>
+<span class="sd">      The Options instance that stores the commands arguments</span>
+<span class="sd">    :param cfg: (Config) The global configuration</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :return: (list) The list of (product name, product_informations).</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c1"># Get the products to be prepared, regarding the options</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">products</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="c1"># No options, get all products sources</span>
+        <span class="n">products</span> <span class="o">=</span> <span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="c1"># if option --products, check that all products of the command line</span>
+        <span class="c1"># are present in the application.</span>
+        <span class="n">products</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">products</span>
+        <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">products</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">p</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span>
+                    <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Product </span><span class="si">%(product)s</span><span class="s2"> not defined in application </span><span class="si">%(application)s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span>
+                    <span class="p">{</span> <span class="s1">&#39;product&#39;</span><span class="p">:</span> <span class="n">p</span><span class="p">,</span> <span class="s1">&#39;application&#39;</span><span class="p">:</span> <span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">}</span> <span class="p">)</span>
+    
+    <span class="c1"># Construct the list of tuple containing </span>
+    <span class="c1"># the products name and their definition</span>
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_products_infos</span><span class="p">(</span><span class="n">products</span><span class="p">,</span> <span class="n">cfg</span><span class="p">)</span>
+    
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="p">[</span><span class="n">pi</span> <span class="k">for</span> <span class="n">pi</span> <span class="ow">in</span> <span class="n">products_infos</span> <span class="k">if</span> <span class="ow">not</span><span class="p">(</span>
+                                     <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_fixed</span><span class="p">(</span><span class="n">pi</span><span class="p">[</span><span class="mi">1</span><span class="p">]))]</span>
+    
+    <span class="k">return</span> <span class="n">products_infos</span></div>
+
+<div class="viewcode-block" id="get_children"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.compile.get_children">[docs]</a><span class="k">def</span> <span class="nf">get_children</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">p_name_p_info</span><span class="p">):</span>
+    <span class="n">l_res</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="n">p_name</span><span class="p">,</span> <span class="n">__</span> <span class="o">=</span> <span class="n">p_name_p_info</span>
+    <span class="c1"># Get all products of the application</span>
+    <span class="n">products</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span>
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_products_infos</span><span class="p">(</span><span class="n">products</span><span class="p">,</span> <span class="n">config</span><span class="p">)</span>
+    <span class="k">for</span> <span class="n">p_name_potential_child</span><span class="p">,</span> <span class="n">p_info_potential_child</span> <span class="ow">in</span> <span class="n">products_infos</span><span class="p">:</span>
+        <span class="k">if</span> <span class="p">(</span><span class="s2">&quot;depend&quot;</span> <span class="ow">in</span> <span class="n">p_info_potential_child</span> <span class="ow">and</span> 
+                <span class="n">p_name</span> <span class="ow">in</span> <span class="n">p_info_potential_child</span><span class="o">.</span><span class="n">depend</span><span class="p">):</span>
+            <span class="n">l_res</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p_name_potential_child</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">l_res</span></div>
+
+<div class="viewcode-block" id="get_recursive_children"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.compile.get_recursive_children">[docs]</a><span class="k">def</span> <span class="nf">get_recursive_children</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">p_name_p_info</span><span class="p">,</span> <span class="n">without_native_fixed</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Get the recursive list of the product that depend on </span>
+<span class="sd">    the product defined by prod_info</span>
+<span class="sd">    </span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param prod_info: (Config) The specific config of the product</span>
+<span class="sd">    :param without_native_fixed: (bool) </span>
+<span class="sd">      If true, do not include the fixed or native products in the result</span>
+<span class="sd">    :return: (list) The list of product_informations.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">p_name</span><span class="p">,</span> <span class="n">__</span> <span class="o">=</span> <span class="n">p_name_p_info</span>
+    <span class="c1"># Initialization of the resulting list</span>
+    <span class="n">l_children</span> <span class="o">=</span> <span class="p">[]</span>
+    
+    <span class="c1"># Get the direct children (not recursive)</span>
+    <span class="n">l_direct_children</span> <span class="o">=</span> <span class="n">get_children</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">p_name_p_info</span><span class="p">)</span>
+    <span class="c1"># Minimal case : no child</span>
+    <span class="k">if</span> <span class="n">l_direct_children</span> <span class="o">==</span> <span class="p">[]:</span>
+        <span class="k">return</span> <span class="p">[]</span>
+    <span class="c1"># Add the children and call the function to get the children of the</span>
+    <span class="c1"># children</span>
+    <span class="k">for</span> <span class="n">child_name</span> <span class="ow">in</span> <span class="n">l_direct_children</span><span class="p">:</span>
+        <span class="n">l_children_name</span> <span class="o">=</span> <span class="p">[</span><span class="n">pn_pi</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">pn_pi</span> <span class="ow">in</span> <span class="n">l_children</span><span class="p">]</span>
+        <span class="k">if</span> <span class="n">child_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">l_children_name</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">child_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">:</span>
+                <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">The product </span><span class="si">%(child_name)s</span><span class="s2"> that is in </span><span class="si">%(product_name)s</span><span class="s2"> children</span>
+<span class="s2">is not present in application </span><span class="si">%(appli_name)s</span><span class="s2">.&quot;&quot;&quot;</span> <span class="o">%</span> 
+                     <span class="p">{</span><span class="s2">&quot;child_name&quot;</span> <span class="p">:</span> <span class="n">child_name</span><span class="p">,</span> 
+                      <span class="s2">&quot;product_name&quot;</span> <span class="p">:</span> <span class="n">p_name</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> 
+                      <span class="s2">&quot;appli_name&quot;</span> <span class="p">:</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">}</span> <span class="p">)</span>
+                <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+            <span class="n">prod_info_child</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                                                              <span class="n">child_name</span><span class="p">)</span>
+            <span class="n">pname_pinfo_child</span> <span class="o">=</span> <span class="p">(</span><span class="n">prod_info_child</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">prod_info_child</span><span class="p">)</span>
+            <span class="c1"># Do not append the child if it is native or fixed and </span>
+            <span class="c1"># the corresponding parameter is called</span>
+            <span class="k">if</span> <span class="n">without_native_fixed</span><span class="p">:</span>
+                <span class="k">if</span> <span class="ow">not</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_native</span><span class="p">(</span><span class="n">prod_info_child</span><span class="p">)</span> <span class="ow">or</span> 
+                       <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_fixed</span><span class="p">(</span><span class="n">prod_info_child</span><span class="p">)):</span>
+                    <span class="n">l_children</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">pname_pinfo_child</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">l_children</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">pname_pinfo_child</span><span class="p">)</span>
+            <span class="c1"># Get the children of the children</span>
+            <span class="n">l_grand_children</span> <span class="o">=</span> <span class="n">get_recursive_children</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                                <span class="n">pname_pinfo_child</span><span class="p">,</span>
+                                <span class="n">without_native_fixed</span> <span class="o">=</span> <span class="n">without_native_fixed</span><span class="p">)</span>
+            <span class="n">l_children</span> <span class="o">+=</span> <span class="n">l_grand_children</span>
+    <span class="k">return</span> <span class="n">l_children</span></div>
+
+<div class="viewcode-block" id="get_recursive_fathers"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.compile.get_recursive_fathers">[docs]</a><span class="k">def</span> <span class="nf">get_recursive_fathers</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">p_name_p_info</span><span class="p">,</span> <span class="n">without_native_fixed</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Get the recursive list of the dependencies of the product defined </span>
+<span class="sd">    by prod_info</span>
+<span class="sd">    </span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param prod_info: (Config) The specific config of the product</span>
+<span class="sd">    :param without_native_fixed: (bool) </span>
+<span class="sd">      If true, do not include the fixed or native products in the result</span>
+<span class="sd">    :return: (list) The list of product_informations.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">p_name</span><span class="p">,</span> <span class="n">p_info</span> <span class="o">=</span> <span class="n">p_name_p_info</span>
+    <span class="c1"># Initialization of the resulting list</span>
+    <span class="n">l_fathers</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="c1"># Minimal case : no dependencies</span>
+    <span class="k">if</span> <span class="s2">&quot;depend&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">p_info</span> <span class="ow">or</span> <span class="n">p_info</span><span class="o">.</span><span class="n">depend</span> <span class="o">==</span> <span class="p">[]:</span>
+        <span class="k">return</span> <span class="p">[]</span>
+    <span class="c1"># Add the dependencies and call the function to get the dependencies of the</span>
+    <span class="c1"># dependencies</span>
+    <span class="k">for</span> <span class="n">father_name</span> <span class="ow">in</span> <span class="n">p_info</span><span class="o">.</span><span class="n">depend</span><span class="p">:</span>
+        <span class="n">l_fathers_name</span> <span class="o">=</span> <span class="p">[</span><span class="n">pn_pi</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">pn_pi</span> <span class="ow">in</span> <span class="n">l_fathers</span><span class="p">]</span>
+        <span class="k">if</span> <span class="n">father_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">l_fathers_name</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">father_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">:</span>
+                <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The product </span><span class="si">%(father_name)s</span><span class="s2"> that is in %(product_nam&quot;</span>
+                        <span class="s2">&quot;e)s dependencies is not present in application &quot;</span>
+                        <span class="s2">&quot;</span><span class="si">%(appli_name)s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">{</span><span class="s2">&quot;father_name&quot;</span> <span class="p">:</span> <span class="n">father_name</span><span class="p">,</span> 
+                                    <span class="s2">&quot;product_name&quot;</span> <span class="p">:</span> <span class="n">p_name</span><span class="p">,</span> 
+                                    <span class="s2">&quot;appli_name&quot;</span> <span class="p">:</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">})</span>
+                <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+            <span class="n">prod_info_father</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                                                              <span class="n">father_name</span><span class="p">)</span>
+            <span class="n">pname_pinfo_father</span> <span class="o">=</span> <span class="p">(</span><span class="n">prod_info_father</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">prod_info_father</span><span class="p">)</span>
+            <span class="c1"># Do not append the father if it is native or fixed and </span>
+            <span class="c1"># the corresponding parameter is called</span>
+            <span class="k">if</span> <span class="n">without_native_fixed</span><span class="p">:</span>
+                <span class="k">if</span> <span class="ow">not</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_native</span><span class="p">(</span><span class="n">prod_info_father</span><span class="p">)</span> <span class="ow">or</span> 
+                       <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_fixed</span><span class="p">(</span><span class="n">prod_info_father</span><span class="p">)):</span>
+                    <span class="n">l_fathers</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">pname_pinfo_father</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">l_fathers</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">pname_pinfo_father</span><span class="p">)</span>
+            <span class="c1"># Get the dependencies of the dependency</span>
+            <span class="n">l_grand_fathers</span> <span class="o">=</span> <span class="n">get_recursive_fathers</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                                <span class="n">pname_pinfo_father</span><span class="p">,</span>
+                                <span class="n">without_native_fixed</span> <span class="o">=</span> <span class="n">without_native_fixed</span><span class="p">)</span>
+            <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">l_grand_fathers</span><span class="p">:</span>
+                <span class="k">if</span> <span class="n">item</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">l_fathers</span><span class="p">:</span>
+                    <span class="n">l_fathers</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">l_fathers</span></div>
+
+<div class="viewcode-block" id="sort_products"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.compile.sort_products">[docs]</a><span class="k">def</span> <span class="nf">sort_products</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">p_infos</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Sort the p_infos regarding the dependencies between the products</span>
+<span class="sd">    </span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param p_infos: (list) </span>
+<span class="sd">      List of (str, Config) =&gt; (product_name, product_info)</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">l_prod_sorted</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">deepcopy_list</span><span class="p">(</span><span class="n">p_infos</span><span class="p">)</span>
+    <span class="k">for</span> <span class="n">prod</span> <span class="ow">in</span> <span class="n">p_infos</span><span class="p">:</span>
+        <span class="n">l_fathers</span> <span class="o">=</span> <span class="n">get_recursive_fathers</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                                          <span class="n">prod</span><span class="p">,</span>
+                                          <span class="n">without_native_fixed</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+        <span class="n">l_fathers</span> <span class="o">=</span> <span class="p">[</span><span class="n">father</span> <span class="k">for</span> <span class="n">father</span> <span class="ow">in</span> <span class="n">l_fathers</span> <span class="k">if</span> <span class="n">father</span> <span class="ow">in</span> <span class="n">p_infos</span><span class="p">]</span>
+        <span class="k">if</span> <span class="n">l_fathers</span> <span class="o">==</span> <span class="p">[]:</span>
+            <span class="k">continue</span>
+        <span class="k">for</span> <span class="n">p_sorted</span> <span class="ow">in</span> <span class="n">l_prod_sorted</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">p_sorted</span> <span class="ow">in</span> <span class="n">l_fathers</span><span class="p">:</span>
+                <span class="n">l_fathers</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">p_sorted</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">l_fathers</span><span class="o">==</span><span class="p">[]:</span>
+                <span class="n">l_prod_sorted</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">prod</span><span class="p">)</span>
+                <span class="n">l_prod_sorted</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="n">l_prod_sorted</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">p_sorted</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span> <span class="n">prod</span><span class="p">)</span>
+                <span class="k">break</span>
+        
+    <span class="k">return</span> <span class="n">l_prod_sorted</span></div>
+
+<div class="viewcode-block" id="extend_with_fathers"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.compile.extend_with_fathers">[docs]</a><span class="k">def</span> <span class="nf">extend_with_fathers</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">p_infos</span><span class="p">):</span>
+    <span class="n">p_infos_res</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">deepcopy_list</span><span class="p">(</span><span class="n">p_infos</span><span class="p">)</span>
+    <span class="k">for</span> <span class="n">p_name_p_info</span> <span class="ow">in</span> <span class="n">p_infos</span><span class="p">:</span>
+        <span class="n">fathers</span> <span class="o">=</span> <span class="n">get_recursive_fathers</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                                        <span class="n">p_name_p_info</span><span class="p">,</span>
+                                        <span class="n">without_native_fixed</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+        <span class="k">for</span> <span class="n">p_name_p_info_father</span> <span class="ow">in</span> <span class="n">fathers</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">p_name_p_info_father</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">p_infos_res</span><span class="p">:</span>
+                <span class="n">p_infos_res</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p_name_p_info_father</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">p_infos_res</span></div>
+
+<div class="viewcode-block" id="extend_with_children"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.compile.extend_with_children">[docs]</a><span class="k">def</span> <span class="nf">extend_with_children</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">p_infos</span><span class="p">):</span>
+    <span class="n">p_infos_res</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">deepcopy_list</span><span class="p">(</span><span class="n">p_infos</span><span class="p">)</span>
+    <span class="k">for</span> <span class="n">p_name_p_info</span> <span class="ow">in</span> <span class="n">p_infos</span><span class="p">:</span>
+        <span class="n">children</span> <span class="o">=</span> <span class="n">get_recursive_children</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                                        <span class="n">p_name_p_info</span><span class="p">,</span>
+                                        <span class="n">without_native_fixed</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+        <span class="k">for</span> <span class="n">p_name_p_info_child</span> <span class="ow">in</span> <span class="n">children</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">p_name_p_info_child</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">p_infos_res</span><span class="p">:</span>
+                <span class="n">p_infos_res</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p_name_p_info_child</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">p_infos_res</span>    </div>
+
+<div class="viewcode-block" id="check_dependencies"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.compile.check_dependencies">[docs]</a><span class="k">def</span> <span class="nf">check_dependencies</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">p_name_p_info</span><span class="p">):</span>
+    <span class="n">l_depends_not_installed</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="n">fathers</span> <span class="o">=</span> <span class="n">get_recursive_fathers</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">p_name_p_info</span><span class="p">,</span> <span class="n">without_native_fixed</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+    <span class="k">for</span> <span class="n">p_name_father</span><span class="p">,</span> <span class="n">p_info_father</span> <span class="ow">in</span> <span class="n">fathers</span><span class="p">:</span>
+        <span class="k">if</span> <span class="ow">not</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">check_installation</span><span class="p">(</span><span class="n">p_info_father</span><span class="p">)):</span>
+            <span class="n">l_depends_not_installed</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p_name_father</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">l_depends_not_installed</span></div>
+
+<div class="viewcode-block" id="log_step"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.compile.log_step">[docs]</a><span class="k">def</span> <span class="nf">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="n">step</span><span class="p">):</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="mi">30</span><span class="p">))</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="n">step</span><span class="p">))</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">==== </span><span class="si">%s</span><span class="s2"> </span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">step</span><span class="p">)</span></div>
+
+<div class="viewcode-block" id="log_res_step"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.compile.log_res_step">[docs]</a><span class="k">def</span> <span class="nf">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res</span><span class="p">):</span>
+    <span class="k">if</span> <span class="n">res</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;&lt;OK&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;&lt;KO&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span></div>
+
+
+<div class="viewcode-block" id="compile_all_products"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.compile.compile_all_products">[docs]</a><span class="k">def</span> <span class="nf">compile_all_products</span><span class="p">(</span><span class="n">sat</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">products_infos</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Execute the proper configuration commands </span>
+<span class="sd">    in each product build directory.</span>
+
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param products_info: (list)</span>
+<span class="sd">      List of (str, Config) =&gt; (product_name, product_info)</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :return: (int) the number of failing commands.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="k">for</span> <span class="n">p_name_info</span> <span class="ow">in</span> <span class="n">products_infos</span><span class="p">:</span>
+        
+        <span class="n">p_name</span><span class="p">,</span> <span class="n">p_info</span> <span class="o">=</span> <span class="n">p_name_info</span>
+        
+        <span class="c1"># Logging</span>
+        <span class="n">len_end_line</span> <span class="o">=</span> <span class="mi">30</span>
+        <span class="n">header</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Compilation of </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">p_name</span><span class="p">)</span>
+        <span class="n">header</span> <span class="o">+=</span> <span class="s2">&quot; </span><span class="si">%s</span><span class="s2"> </span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="s2">&quot;.&quot;</span> <span class="o">*</span> <span class="p">(</span><span class="n">len_end_line</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">p_name</span><span class="p">)))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">header</span><span class="p">)</span>
+        
+        <span class="c1"># Do nothing if the product is not compilable</span>
+        <span class="k">if</span> <span class="p">(</span><span class="s2">&quot;properties&quot;</span> <span class="ow">in</span> <span class="n">p_info</span> <span class="ow">and</span> \
+            <span class="s2">&quot;compilation&quot;</span> <span class="ow">in</span> <span class="n">p_info</span><span class="o">.</span><span class="n">properties</span> <span class="ow">and</span> \
+            <span class="n">p_info</span><span class="o">.</span><span class="n">properties</span><span class="o">.</span><span class="n">compilation</span> <span class="o">==</span> <span class="s2">&quot;no&quot;</span><span class="p">):</span>
+              
+            <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;ignored&quot;</span><span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+            <span class="k">continue</span>
+
+        <span class="c1"># Do nothing if the product is native</span>
+        <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_native</span><span class="p">(</span><span class="n">p_info</span><span class="p">):</span>
+            <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;native&quot;</span><span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+            <span class="k">continue</span>
+
+        <span class="c1"># Clean the build and the install directories </span>
+        <span class="c1"># if the corresponding options was called</span>
+        <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">clean_all</span><span class="p">:</span>
+            <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;CLEAN BUILD AND INSTALL&quot;</span><span class="p">)</span>
+            <span class="n">sat</span><span class="o">.</span><span class="n">clean</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span> <span class="o">+</span> 
+                      <span class="s2">&quot; --products &quot;</span> <span class="o">+</span> <span class="n">p_name</span> <span class="o">+</span> 
+                      <span class="s2">&quot; --build --install&quot;</span><span class="p">,</span>
+                      <span class="n">batch</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+                      <span class="n">verbose</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
+                      <span class="n">logger_add_link</span> <span class="o">=</span> <span class="n">logger</span><span class="p">)</span>
+        
+        <span class="c1"># Clean the the install directory </span>
+        <span class="c1"># if the corresponding option was called</span>
+        <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">clean_install</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">clean_all</span><span class="p">:</span>
+            <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;CLEAN INSTALL&quot;</span><span class="p">)</span>
+            <span class="n">sat</span><span class="o">.</span><span class="n">clean</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span> <span class="o">+</span> 
+                      <span class="s2">&quot; --products &quot;</span> <span class="o">+</span> <span class="n">p_name</span> <span class="o">+</span> 
+                      <span class="s2">&quot; --install&quot;</span><span class="p">,</span>
+                      <span class="n">batch</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+                      <span class="n">verbose</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
+                      <span class="n">logger_add_link</span> <span class="o">=</span> <span class="n">logger</span><span class="p">)</span>
+        
+        <span class="c1"># Recompute the product information to get the right install_dir</span>
+        <span class="c1"># (it could change if there is a clean of the install directory)</span>
+        <span class="n">p_info</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">p_name</span><span class="p">)</span>
+        
+        <span class="c1"># Check if it was already successfully installed</span>
+        <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">check_installation</span><span class="p">(</span><span class="n">p_info</span><span class="p">):</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Already installed</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">))</span>
+            <span class="k">continue</span>
+        
+        <span class="c1"># If the show option was called, do not launch the compilation</span>
+        <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">no_compile</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Not installed</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">))</span>
+            <span class="k">continue</span>
+        
+        <span class="c1"># Check if the dependencies are installed</span>
+        <span class="n">l_depends_not_installed</span> <span class="o">=</span> <span class="n">check_dependencies</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">p_name_info</span><span class="p">)</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">l_depends_not_installed</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;the following products are mandatory:</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+            <span class="k">for</span> <span class="n">prod_name</span> <span class="ow">in</span> <span class="n">l_depends_not_installed</span><span class="p">:</span>
+                <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">prod_name</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+            <span class="k">continue</span>
+        
+        <span class="c1"># Call the function to compile the product</span>
+        <span class="n">res_prod</span><span class="p">,</span> <span class="n">len_end_line</span><span class="p">,</span> <span class="n">error_step</span> <span class="o">=</span> <span class="n">compile_product</span><span class="p">(</span><span class="n">sat</span><span class="p">,</span>
+                                                             <span class="n">p_name_info</span><span class="p">,</span>
+                                                             <span class="n">config</span><span class="p">,</span>
+                                                             <span class="n">options</span><span class="p">,</span>
+                                                             <span class="n">logger</span><span class="p">,</span>
+                                                             <span class="n">header</span><span class="p">,</span>
+                                                             <span class="n">len_end_line</span><span class="p">)</span>
+        
+        <span class="k">if</span> <span class="n">res_prod</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">res</span> <span class="o">+=</span> <span class="mi">1</span>
+            
+            <span class="k">if</span> <span class="n">error_step</span> <span class="o">!=</span> <span class="s2">&quot;CHECK&quot;</span><span class="p">:</span>
+                <span class="c1"># Clean the install directory if there is any</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Cleaning the install directory if there is any</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">))</span>
+                <span class="n">sat</span><span class="o">.</span><span class="n">clean</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span> <span class="o">+</span> 
+                          <span class="s2">&quot; --products &quot;</span> <span class="o">+</span> <span class="n">p_name</span> <span class="o">+</span> 
+                          <span class="s2">&quot; --install&quot;</span><span class="p">,</span>
+                          <span class="n">batch</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+                          <span class="n">verbose</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
+                          <span class="n">logger_add_link</span> <span class="o">=</span> <span class="n">logger</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="c1"># Clean the build directory if the compilation and tests succeed</span>
+            <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">clean_build_after</span><span class="p">:</span>
+                <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;CLEAN BUILD&quot;</span><span class="p">)</span>
+                <span class="n">sat</span><span class="o">.</span><span class="n">clean</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span> <span class="o">+</span> 
+                          <span class="s2">&quot; --products &quot;</span> <span class="o">+</span> <span class="n">p_name</span> <span class="o">+</span> 
+                          <span class="s2">&quot; --build&quot;</span><span class="p">,</span>
+                          <span class="n">batch</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+                          <span class="n">verbose</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
+                          <span class="n">logger_add_link</span> <span class="o">=</span> <span class="n">logger</span><span class="p">)</span>
+
+        <span class="c1"># Log the result</span>
+        <span class="k">if</span> <span class="n">res_prod</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="n">len_end_line</span><span class="p">))</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">header</span> <span class="o">+</span> <span class="s2">&quot;&lt;KO&gt; &quot;</span> <span class="o">+</span> <span class="n">error_step</span><span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">==== &lt;KO&gt; in compile of </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">p_name</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">error_step</span> <span class="o">==</span> <span class="s2">&quot;CHECK&quot;</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">INSTALL directory = </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">p_info</span><span class="o">.</span><span class="n">install_dir</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="n">len_end_line</span><span class="p">))</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">header</span> <span class="o">+</span> <span class="s2">&quot;&lt;OK&gt;&quot;</span><span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">INSTALL directory = </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">p_info</span><span class="o">.</span><span class="n">install_dir</span><span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">==== &lt;OK&gt; in compile of </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">p_name</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        
+        
+        <span class="k">if</span> <span class="n">res_prod</span> <span class="o">!=</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">options</span><span class="o">.</span><span class="n">stop_first_fail</span><span class="p">:</span>
+            <span class="k">break</span>
+        
+    <span class="k">return</span> <span class="n">res</span></div>
+
+<div class="viewcode-block" id="compile_product"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.compile.compile_product">[docs]</a><span class="k">def</span> <span class="nf">compile_product</span><span class="p">(</span><span class="n">sat</span><span class="p">,</span> <span class="n">p_name_info</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="n">len_end</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Execute the proper configuration command(s) </span>
+<span class="sd">    in the product build directory.</span>
+<span class="sd">    </span>
+<span class="sd">    :param p_name_info: (tuple) (str, Config) =&gt; (product_name, product_info)</span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :param header: (str) the header to display when logging</span>
+<span class="sd">    :param len_end: (int) the lenght of the the end of line (used in display)</span>
+<span class="sd">    :return: (int) 1 if it fails, else 0.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    
+    <span class="n">p_name</span><span class="p">,</span> <span class="n">p_info</span> <span class="o">=</span> <span class="n">p_name_info</span>
+          
+    <span class="c1"># Get the build procedure from the product configuration.</span>
+    <span class="c1"># It can be :</span>
+    <span class="c1"># build_sources : autotools -&gt; build_configure, configure, make, make install</span>
+    <span class="c1"># build_sources : cmake     -&gt; cmake, make, make install</span>
+    <span class="c1"># build_sources : script    -&gt; script executions</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="k">if</span> <span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_autotools</span><span class="p">(</span><span class="n">p_info</span><span class="p">)</span> <span class="ow">or</span> 
+                                          <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_cmake</span><span class="p">(</span><span class="n">p_info</span><span class="p">)):</span>
+        <span class="n">res</span><span class="p">,</span> <span class="n">len_end_line</span><span class="p">,</span> <span class="n">error_step</span> <span class="o">=</span> <span class="n">compile_product_cmake_autotools</span><span class="p">(</span><span class="n">sat</span><span class="p">,</span>
+                                                                  <span class="n">p_name_info</span><span class="p">,</span>
+                                                                  <span class="n">config</span><span class="p">,</span>
+                                                                  <span class="n">options</span><span class="p">,</span>
+                                                                  <span class="n">logger</span><span class="p">,</span>
+                                                                  <span class="n">header</span><span class="p">,</span>
+                                                                  <span class="n">len_end</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_has_script</span><span class="p">(</span><span class="n">p_info</span><span class="p">):</span>
+        <span class="n">res</span><span class="p">,</span> <span class="n">len_end_line</span><span class="p">,</span> <span class="n">error_step</span> <span class="o">=</span> <span class="n">compile_product_script</span><span class="p">(</span><span class="n">sat</span><span class="p">,</span>
+                                                                  <span class="n">p_name_info</span><span class="p">,</span>
+                                                                  <span class="n">config</span><span class="p">,</span>
+                                                                  <span class="n">options</span><span class="p">,</span>
+                                                                  <span class="n">logger</span><span class="p">,</span>
+                                                                  <span class="n">header</span><span class="p">,</span>
+                                                                  <span class="n">len_end</span><span class="p">)</span>
+
+    <span class="c1"># Check that the install directory exists</span>
+    <span class="k">if</span> <span class="n">res</span><span class="o">==</span><span class="mi">0</span> <span class="ow">and</span> <span class="ow">not</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">p_info</span><span class="o">.</span><span class="n">install_dir</span><span class="p">)):</span>
+        <span class="n">res</span> <span class="o">=</span> <span class="mi">1</span>
+        <span class="n">error_step</span> <span class="o">=</span> <span class="s2">&quot;NO INSTALL DIR&quot;</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;despite all the steps ended successfully, no install directory was found</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">res</span><span class="p">,</span> <span class="n">len_end</span><span class="p">,</span> <span class="n">error_step</span>
+    
+    <span class="c1"># Add the config file corresponding to the dependencies/versions of the </span>
+    <span class="c1"># product that have been successfully compiled</span>
+    <span class="k">if</span> <span class="n">res</span><span class="o">==</span><span class="mi">0</span><span class="p">:</span>       
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Add the config file in installation directory</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">))</span>
+        <span class="n">add_compile_config_file</span><span class="p">(</span><span class="n">p_info</span><span class="p">,</span> <span class="n">config</span><span class="p">)</span>
+        
+        <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">check</span><span class="p">:</span>
+            <span class="c1"># Do the unit tests (call the check command)</span>
+            <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;CHECK&quot;</span><span class="p">)</span>
+            <span class="n">res_check</span> <span class="o">=</span> <span class="n">sat</span><span class="o">.</span><span class="n">check</span><span class="p">(</span>
+                              <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span> <span class="o">+</span> <span class="s2">&quot; --products &quot;</span> <span class="o">+</span> <span class="n">p_name</span><span class="p">,</span>
+                              <span class="n">verbose</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
+                              <span class="n">logger_add_link</span> <span class="o">=</span> <span class="n">logger</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">res_check</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+                <span class="n">error_step</span> <span class="o">=</span> <span class="s2">&quot;CHECK&quot;</span>
+                
+            <span class="n">res</span> <span class="o">+=</span> <span class="n">res_check</span>
+    
+    <span class="k">return</span> <span class="n">res</span><span class="p">,</span> <span class="n">len_end_line</span><span class="p">,</span> <span class="n">error_step</span></div>
+
+<div class="viewcode-block" id="compile_product_cmake_autotools"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.compile.compile_product_cmake_autotools">[docs]</a><span class="k">def</span> <span class="nf">compile_product_cmake_autotools</span><span class="p">(</span><span class="n">sat</span><span class="p">,</span>
+                                    <span class="n">p_name_info</span><span class="p">,</span>
+                                    <span class="n">config</span><span class="p">,</span>
+                                    <span class="n">options</span><span class="p">,</span>
+                                    <span class="n">logger</span><span class="p">,</span>
+                                    <span class="n">header</span><span class="p">,</span>
+                                    <span class="n">len_end</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Execute the proper build procedure for autotools or cmake</span>
+<span class="sd">    in the product build directory.</span>
+<span class="sd">    </span>
+<span class="sd">    :param p_name_info: (tuple) </span>
+<span class="sd">      (str, Config) =&gt; (product_name, product_info)</span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :param header: (str) the header to display when logging</span>
+<span class="sd">    :param len_end: (int) the length of the the end of line (used in display)</span>
+<span class="sd">    :return: (int) 1 if it fails, else 0.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">p_name</span><span class="p">,</span> <span class="n">p_info</span> <span class="o">=</span> <span class="n">p_name_info</span>
+    
+    <span class="c1"># Execute &quot;sat configure&quot;, &quot;sat make&quot; and &quot;sat install&quot;</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="n">error_step</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+    
+    <span class="c1"># Logging and sat command call for configure step</span>
+    <span class="n">len_end_line</span> <span class="o">=</span> <span class="n">len_end</span>
+    <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;CONFIGURE&quot;</span><span class="p">)</span>
+    <span class="n">res_c</span> <span class="o">=</span> <span class="n">sat</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span> <span class="o">+</span> <span class="s2">&quot; --products &quot;</span> <span class="o">+</span> <span class="n">p_name</span><span class="p">,</span>
+                          <span class="n">verbose</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
+                          <span class="n">logger_add_link</span> <span class="o">=</span> <span class="n">logger</span><span class="p">)</span>
+    <span class="n">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res_c</span><span class="p">)</span>
+    <span class="n">res</span> <span class="o">+=</span> <span class="n">res_c</span>
+    
+    <span class="k">if</span> <span class="n">res_c</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">error_step</span> <span class="o">=</span> <span class="s2">&quot;CONFIGURE&quot;</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="c1"># Logging and sat command call for make step</span>
+        <span class="c1"># Logging take account of the fact that the product has a compilation </span>
+        <span class="c1"># script or not</span>
+        <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_has_script</span><span class="p">(</span><span class="n">p_info</span><span class="p">):</span>
+            <span class="c1"># if the product has a compilation script, </span>
+            <span class="c1"># it is executed during make step</span>
+            <span class="n">scrit_path_display</span> <span class="o">=</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span>
+                                                        <span class="n">p_info</span><span class="o">.</span><span class="n">compil_script</span><span class="p">)</span>
+            <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;SCRIPT &quot;</span> <span class="o">+</span> <span class="n">scrit_path_display</span><span class="p">)</span>
+            <span class="n">len_end_line</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">scrit_path_display</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;MAKE&quot;</span><span class="p">)</span>
+        <span class="n">make_arguments</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span> <span class="o">+</span> <span class="s2">&quot; --products &quot;</span> <span class="o">+</span> <span class="n">p_name</span>
+        <span class="c1"># Get the make_flags option if there is any</span>
+        <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">makeflags</span><span class="p">:</span>
+            <span class="n">make_arguments</span> <span class="o">+=</span> <span class="s2">&quot; --option -j&quot;</span> <span class="o">+</span> <span class="n">options</span><span class="o">.</span><span class="n">makeflags</span>
+        <span class="n">res_m</span> <span class="o">=</span> <span class="n">sat</span><span class="o">.</span><span class="n">make</span><span class="p">(</span><span class="n">make_arguments</span><span class="p">,</span>
+                         <span class="n">verbose</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
+                         <span class="n">logger_add_link</span> <span class="o">=</span> <span class="n">logger</span><span class="p">)</span>
+        <span class="n">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res_m</span><span class="p">)</span>
+        <span class="n">res</span> <span class="o">+=</span> <span class="n">res_m</span>
+        
+        <span class="k">if</span> <span class="n">res_m</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">error_step</span> <span class="o">=</span> <span class="s2">&quot;MAKE&quot;</span>
+        <span class="k">else</span><span class="p">:</span> 
+            <span class="c1"># Logging and sat command call for make install step</span>
+            <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;MAKE INSTALL&quot;</span><span class="p">)</span>
+            <span class="n">res_mi</span> <span class="o">=</span> <span class="n">sat</span><span class="o">.</span><span class="n">makeinstall</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span> <span class="o">+</span> 
+                                     <span class="s2">&quot; --products &quot;</span> <span class="o">+</span> 
+                                     <span class="n">p_name</span><span class="p">,</span>
+                                    <span class="n">verbose</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
+                                    <span class="n">logger_add_link</span> <span class="o">=</span> <span class="n">logger</span><span class="p">)</span>
+
+            <span class="n">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res_mi</span><span class="p">)</span>
+            <span class="n">res</span> <span class="o">+=</span> <span class="n">res_mi</span>
+            
+            <span class="k">if</span> <span class="n">res_mi</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+                <span class="n">error_step</span> <span class="o">=</span> <span class="s2">&quot;MAKE INSTALL&quot;</span>
+                
+    <span class="k">return</span> <span class="n">res</span><span class="p">,</span> <span class="n">len_end_line</span><span class="p">,</span> <span class="n">error_step</span> </div>
+
+<div class="viewcode-block" id="compile_product_script"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.compile.compile_product_script">[docs]</a><span class="k">def</span> <span class="nf">compile_product_script</span><span class="p">(</span><span class="n">sat</span><span class="p">,</span>
+                           <span class="n">p_name_info</span><span class="p">,</span>
+                           <span class="n">config</span><span class="p">,</span>
+                           <span class="n">options</span><span class="p">,</span>
+                           <span class="n">logger</span><span class="p">,</span>
+                           <span class="n">header</span><span class="p">,</span>
+                           <span class="n">len_end</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Execute the script build procedure in the product build directory.</span>
+<span class="sd">    </span>
+<span class="sd">    :param p_name_info: (tuple) </span>
+<span class="sd">      (str, Config) =&gt; (product_name, product_info)</span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :param header: (str) the header to display when logging</span>
+<span class="sd">    :param len_end: (int) the lenght of the the end of line (used in display)</span>
+<span class="sd">    :return: (int) 1 if it fails, else 0.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">p_name</span><span class="p">,</span> <span class="n">p_info</span> <span class="o">=</span> <span class="n">p_name_info</span>
+    
+    <span class="c1"># Execute &quot;sat configure&quot;, &quot;sat make&quot; and &quot;sat install&quot;</span>
+    <span class="n">error_step</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+    
+    <span class="c1"># Logging and sat command call for the script step</span>
+    <span class="n">scrit_path_display</span> <span class="o">=</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">p_info</span><span class="o">.</span><span class="n">compil_script</span><span class="p">)</span>
+    <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;SCRIPT &quot;</span> <span class="o">+</span> <span class="n">scrit_path_display</span><span class="p">)</span>
+    <span class="n">len_end_line</span> <span class="o">=</span> <span class="n">len_end</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="n">scrit_path_display</span><span class="p">)</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="n">sat</span><span class="o">.</span><span class="n">script</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span> <span class="o">+</span> <span class="s2">&quot; --products &quot;</span> <span class="o">+</span> <span class="n">p_name</span><span class="p">,</span>
+                     <span class="n">verbose</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
+                     <span class="n">logger_add_link</span> <span class="o">=</span> <span class="n">logger</span><span class="p">)</span>
+    <span class="n">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res</span><span class="p">)</span>
+              
+    <span class="k">return</span> <span class="n">res</span><span class="p">,</span> <span class="n">len_end_line</span><span class="p">,</span> <span class="n">error_step</span> </div>
+
+<div class="viewcode-block" id="add_compile_config_file"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.compile.add_compile_config_file">[docs]</a><span class="k">def</span> <span class="nf">add_compile_config_file</span><span class="p">(</span><span class="n">p_info</span><span class="p">,</span> <span class="n">config</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Execute the proper configuration command(s) </span>
+<span class="sd">    in the product build directory.</span>
+<span class="sd">    </span>
+<span class="sd">    :param p_info: (Config) The specific config of the product</span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c1"># Create the compile config</span>
+    <span class="n">compile_cfg</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Config</span><span class="p">()</span>
+    <span class="k">for</span> <span class="n">prod_name</span> <span class="ow">in</span> <span class="n">p_info</span><span class="o">.</span><span class="n">depend</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">prod_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">compile_cfg</span><span class="p">:</span>
+            <span class="n">compile_cfg</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="n">prod_name</span><span class="p">,</span>
+                                   <span class="n">PYCONF</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(</span><span class="n">compile_cfg</span><span class="p">),</span>
+                                   <span class="s2">&quot;&quot;</span><span class="p">)</span>
+        <span class="n">prod_dep_info</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">prod_name</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
+        <span class="n">compile_cfg</span><span class="p">[</span><span class="n">prod_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">prod_dep_info</span><span class="o">.</span><span class="n">version</span>
+    <span class="c1"># Write it in the install directory of the product</span>
+    <span class="n">compile_cfg_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">p_info</span><span class="o">.</span><span class="n">install_dir</span><span class="p">,</span> <span class="n">src</span><span class="o">.</span><span class="n">CONFIG_FILENAME</span><span class="p">)</span>
+    <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">compile_cfg_path</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span>
+    <span class="n">compile_cfg</span><span class="o">.</span><span class="n">__save__</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
+    <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div>
+    
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/config.html b/doc/build/html/_modules/commands/config.html
new file mode 100644 (file)
index 0000000..d8d7e15
--- /dev/null
@@ -0,0 +1,324 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.config &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.config</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+<span class="kn">import</span> <span class="nn">os</span>
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+<span class="kn">import</span> <span class="nn">src.configManager</span> <span class="k">as</span> <span class="nn">CFGMGR</span>
+<span class="kn">import</span> <span class="nn">src.system</span> <span class="k">as</span> <span class="nn">SYSS</span>
+
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.config.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">  The config command allows manipulation and operation on config &#39;.pyconf&#39; files.</span>
+
+<span class="sd">  | examples:</span>
+<span class="sd">  | &gt;&gt; sat config --list</span>
+<span class="sd">  | &gt;&gt; sat config SALOME --edit</span>
+<span class="sd">  | &gt;&gt; sat config SALOME --copy SALOME-new</span>
+<span class="sd">  | &gt;&gt; sat config SALOME --value VARS</span>
+<span class="sd">  | &gt;&gt; sat config SALOME --debug VARS</span>
+<span class="sd">  | &gt;&gt; sat config SALOME --info ParaView</span>
+<span class="sd">  | &gt;&gt; sat config SALOME --show_patchs</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;config&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.config.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for command &#39;sat config &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;v&#39;</span><span class="p">,</span> <span class="s1">&#39;value&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;value&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: print the value of CONFIG_VARIABLE.&quot;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="s1">&#39;debug&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;debug&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: print the debugging value of CONFIG_VARIABLE.&quot;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;e&#39;</span><span class="p">,</span> <span class="s1">&#39;edit&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;edit&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: edit the product configuration file.&quot;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;i&#39;</span><span class="p">,</span> <span class="s1">&#39;info&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;info&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: get information on a product.&quot;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;l&#39;</span><span class="p">,</span> <span class="s1">&#39;list&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;list&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: list all available applications.&quot;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;p&#39;</span><span class="p">,</span> <span class="s1">&#39;show_patchs&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;show_patchs&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: synthetic view of all patches used in the application&quot;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;c&#39;</span><span class="p">,</span> <span class="s1">&#39;copy&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;copy&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">Optional: copy a config file (.pyconf) to the personal config files directory.</span>
+<span class="s2">Warning: the included files are not copied.</span>
+<span class="s2">If a name is given the new config file takes the given name.&quot;&quot;&quot;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;n&#39;</span><span class="p">,</span> <span class="s1">&#39;no_label&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;no_label&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Internal use: do not print labels, Works only with --value and --list.&quot;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;o&#39;</span><span class="p">,</span> <span class="s1">&#39;completion&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;completion&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Internal use: print only keys, works only with --value.&quot;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;s&#39;</span><span class="p">,</span> <span class="s1">&#39;schema&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;schema&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Internal use.&quot;</span><span class="p">))</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.config.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat config &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+
+    <span class="k">if</span> <span class="n">config</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;KO&quot;</span><span class="p">,</span> <span class="s2">&quot;config is None&quot;</span><span class="p">)</span>
+      
+    <span class="c1"># Only useful for completion mechanism : print the keys of the config</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">schema</span><span class="p">:</span>
+        <span class="n">get_config_children</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;completion mechanism&quot;</span><span class="p">)</span>
+    
+    <span class="c1"># case : print a value of the config</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">value</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">value</span> <span class="o">==</span> <span class="s2">&quot;.&quot;</span><span class="p">:</span>
+            <span class="c1"># if argument is &quot;.&quot;, print all the config</span>
+            <span class="k">for</span> <span class="n">val</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">keys</span><span class="p">()):</span>
+                <span class="n">CFGMGR</span><span class="o">.</span><span class="n">print_value</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">val</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">no_label</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">CFGMGR</span><span class="o">.</span><span class="n">print_value</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">options</span><span class="o">.</span><span class="n">value</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">no_label</span><span class="p">,</span> 
+                        <span class="n">level</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">show_full_path</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">debug</span><span class="p">:</span>
+        <span class="n">CFGMGR</span><span class="o">.</span><span class="n">print_debug</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">options</span><span class="o">.</span><span class="n">debug</span><span class="p">),</span> <span class="n">logger</span><span class="p">,</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">no_label</span><span class="p">,</span> 
+                    <span class="n">level</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">show_full_path</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+    
+    <span class="c1"># case : edit user pyconf file or application file</span>
+    <span class="k">elif</span> <span class="n">options</span><span class="o">.</span><span class="n">edit</span><span class="p">:</span>
+        <span class="n">editor</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">USER</span><span class="o">.</span><span class="n">editor</span>
+        <span class="k">if</span> <span class="p">(</span><span class="s1">&#39;APPLICATION&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">config</span> <span class="ow">and</span>
+            <span class="s1">&#39;open_application&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">config</span><span class="p">):</span> <span class="c1"># edit user pyconf</span>
+            <span class="n">usercfg</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">personalDir</span><span class="p">,</span> <span class="s1">&#39;SAT.pyconf&#39;</span><span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Opening </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">usercfg</span><span class="p">)</span>
+            <span class="n">SYSS</span><span class="o">.</span><span class="n">show_in_editor</span><span class="p">(</span><span class="n">editor</span><span class="p">,</span> <span class="n">usercfg</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="c1"># search for file &lt;application&gt;.pyconf and open it</span>
+            <span class="k">for</span> <span class="n">path</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">PATHS</span><span class="o">.</span><span class="n">APPLICATIONPATH</span><span class="p">:</span>
+                <span class="n">pyconf_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span> <span class="o">+</span> <span class="s2">&quot;.pyconf&quot;</span><span class="p">)</span>
+                <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">pyconf_path</span><span class="p">):</span>
+                    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Opening </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">pyconf_path</span><span class="p">)</span>
+                    <span class="n">SYSS</span><span class="o">.</span><span class="n">show_in_editor</span><span class="p">(</span><span class="n">editor</span><span class="p">,</span> <span class="n">pyconf_path</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+                    <span class="k">break</span>
+    
+    <span class="c1"># case : give information about the product in parameter</span>
+    <span class="k">elif</span> <span class="n">options</span><span class="o">.</span><span class="n">info</span><span class="p">:</span>
+        <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">info</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">:</span>
+            <span class="n">show_product_info</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">options</span><span class="o">.</span><span class="n">info</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+            <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;options.info&quot;</span><span class="p">)</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span>
+            <span class="n">_</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%(product_name)s</span><span class="s2"> is not a product of </span><span class="si">%(application_name)s</span><span class="s2">.&quot;</span><span class="p">)</span> <span class="o">%</span> \
+            <span class="p">{</span><span class="s1">&#39;product_name&#39;</span> <span class="p">:</span> <span class="n">options</span><span class="o">.</span><span class="n">info</span><span class="p">,</span> <span class="s1">&#39;application_name&#39;</span> <span class="p">:</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">}</span> <span class="p">)</span>
+    
+    <span class="c1"># case : copy an existing &lt;application&gt;.pyconf </span>
+    <span class="c1"># to ~/.salomeTools/Applications/LOCAL_&lt;application&gt;.pyconf</span>
+    <span class="k">elif</span> <span class="n">options</span><span class="o">.</span><span class="n">copy</span><span class="p">:</span>
+        <span class="c1"># product is required</span>
+        <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span> <span class="n">config</span> <span class="p">)</span>
+
+        <span class="c1"># get application file path </span>
+        <span class="n">source</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span> <span class="o">+</span> <span class="s1">&#39;.pyconf&#39;</span>
+        <span class="n">source_full_path</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+        <span class="k">for</span> <span class="n">path</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">PATHS</span><span class="o">.</span><span class="n">APPLICATIONPATH</span><span class="p">:</span>
+            <span class="c1"># ignore personal directory</span>
+            <span class="k">if</span> <span class="n">path</span> <span class="o">==</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">personalDir</span><span class="p">:</span>
+                <span class="k">continue</span>
+            <span class="c1"># loop on all directories that can have pyconf applications</span>
+            <span class="n">zz</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">source</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">zz</span><span class="p">):</span>
+                <span class="n">source_full_path</span> <span class="o">=</span> <span class="n">zz</span>
+                <span class="k">break</span>
+
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">source_full_path</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span>
+                <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Config file for product </span><span class="si">%s</span><span class="s2"> not found</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">source</span> <span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+                <span class="c1"># a name is given as parameter, use it</span>
+                <span class="n">dest</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+            <span class="k">elif</span> <span class="s1">&#39;copy_prefix&#39;</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">INTERNAL</span><span class="o">.</span><span class="n">config</span><span class="p">:</span>
+                <span class="c1"># use prefix</span>
+                <span class="n">dest</span> <span class="o">=</span> <span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">INTERNAL</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">copy_prefix</span> 
+                        <span class="o">+</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="c1"># use same name as source</span>
+                <span class="n">dest</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span>
+                
+            <span class="c1"># the full path</span>
+            <span class="n">dest_file</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
+                <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">personalDir</span><span class="p">,</span> <span class="s1">&#39;Applications&#39;</span><span class="p">,</span> <span class="n">dest</span> <span class="o">+</span> <span class="s1">&#39;.pyconf&#39;</span> <span class="p">)</span>
+            <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">dest_file</span><span class="p">):</span>
+                <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span>
+                    <span class="n">_</span><span class="p">(</span><span class="s2">&quot;A personal application &#39;</span><span class="si">%s</span><span class="s2">&#39; already exists&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">dest</span> <span class="p">)</span>
+            
+            <span class="c1"># perform the copy</span>
+            <span class="n">shutil</span><span class="o">.</span><span class="n">copyfile</span><span class="p">(</span><span class="n">source_full_path</span><span class="p">,</span> <span class="n">dest_file</span><span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> has been created.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">dest_file</span><span class="p">)</span>
+    
+    <span class="c1"># case : display all the available pyconf applications</span>
+    <span class="k">elif</span> <span class="n">options</span><span class="o">.</span><span class="n">list</span><span class="p">:</span>
+        <span class="n">lproduct</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
+        <span class="c1"># search in all directories that can have pyconf applications</span>
+        <span class="k">for</span> <span class="n">path</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">PATHS</span><span class="o">.</span><span class="n">APPLICATIONPATH</span><span class="p">:</span>
+            <span class="c1"># print a header</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">no_label</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;&lt;header&gt;------ </span><span class="si">%s</span><span class="s2">&lt;reset&gt;&quot;</span> <span class="o">%</span> <span class="n">path</span><span class="p">)</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span> <span class="c1"># only one multiline info</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
+                <span class="n">msg</span> <span class="o">+=</span> <span class="p">(</span><span class="s2">&quot;&lt;red&gt;&quot;</span> <span class="o">+</span>  <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Directory not found&quot;</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;&lt;reset&gt;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">path</span><span class="p">)):</span>
+                    <span class="c1"># ignore file that does not ends with .pyconf</span>
+                    <span class="k">if</span> <span class="ow">not</span> <span class="n">f</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.pyconf&#39;</span><span class="p">):</span>
+                        <span class="k">continue</span>
+
+                    <span class="n">appliname</span> <span class="o">=</span> <span class="n">f</span><span class="p">[:</span><span class="o">-</span><span class="nb">len</span><span class="p">(</span><span class="s1">&#39;.pyconf&#39;</span><span class="p">)]</span>
+                    <span class="k">if</span> <span class="n">appliname</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">lproduct</span><span class="p">:</span>
+                        <span class="n">lproduct</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">appliname</span><span class="p">)</span>
+                        <span class="k">if</span> <span class="n">path</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">personalDir</span><span class="p">)</span> \
+                                    <span class="ow">and</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">no_label</span><span class="p">:</span>
+                            <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">*</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">appliname</span>
+                        <span class="k">else</span><span class="p">:</span>
+                            <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">appliname</span>
+                            
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+
+    <span class="c1"># case : give a synthetic view of all patches used in the application</span>
+    <span class="k">elif</span> <span class="n">options</span><span class="o">.</span><span class="n">show_patchs</span><span class="p">:</span>
+        <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
+        <span class="c1"># Print some informations</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Show the patchs of application </span><span class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span> <span class="o">%</span> \
+                     <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">))</span>
+        <span class="n">show_patchs</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+    
+    <span class="c1"># case: print all the products name of the application (internal use for completion)</span>
+    <span class="k">elif</span> <span class="n">options</span><span class="o">.</span><span class="n">completion</span><span class="p">:</span>
+        <span class="k">for</span> <span class="n">product_name</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">product_name</span><span class="p">)</span>
+          
+    <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;config command done&quot;</span><span class="p">)</span></div></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/configure.html b/doc/build/html/_modules/commands/configure.html
new file mode 100644 (file)
index 0000000..4d3ddeb
--- /dev/null
@@ -0,0 +1,337 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.configure &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.configure</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.configure.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">  The configure command executes in the build directory commands</span>
+<span class="sd">  corresponding to the compilation mode of the application products.</span>
+<span class="sd">  The possible compilation modes are &#39;cmake&#39;, &#39;autotools&#39;, or &#39;script&#39;.</span>
+
+<span class="sd">  Here are the commands to be run:</span>
+<span class="sd">  autotools: &gt;&gt; build_configure and configure</span>
+<span class="sd">  cmake:     &gt;&gt; cmake</span>
+<span class="sd">  script:    (do nothing)</span>
+<span class="sd">  </span>
+<span class="sd">  examples:</span>
+<span class="sd">  &gt;&gt; sat configure SALOME --products KERNEL,GUI,PARAVIS</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;configure&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.configure.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for command &#39;sat configure &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;p&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span> <span class="s1">&#39;list2&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: products to configure. This option can be&#39;</span>
+        <span class="s1">&#39; passed several time to configure several products.&#39;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;o&#39;</span><span class="p">,</span> <span class="s1">&#39;option&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;option&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: Option to add to the configure or cmake command.&#39;</span><span class="p">),</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.configure.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat configure &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+    
+
+    <span class="c1"># check that the command has been called with an application</span>
+    <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span> <span class="n">config</span> <span class="p">)</span>
+
+    <span class="c1"># Get the list of products to treat</span>
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="n">get_products_list</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+    
+    <span class="c1"># Print some informations</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Configuring the sources of the application </span><span class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span> <span class="o">%</span> 
+                <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">))</span>
+    
+    <span class="n">info</span> <span class="o">=</span> <span class="p">[(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;BUILD directory&quot;</span><span class="p">),</span>
+             <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span> <span class="s1">&#39;BUILD&#39;</span><span class="p">))]</span>
+    <span class="n">UTS</span><span class="o">.</span><span class="n">logger_info_tuples</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">info</span><span class="p">)</span>
+    
+    <span class="c1"># Call the function that will loop over all the products and execute</span>
+    <span class="c1"># the right command(s)</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">option</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="n">options</span><span class="o">.</span><span class="n">option</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="n">configure_all_products</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">products_infos</span><span class="p">,</span> <span class="n">options</span><span class="o">.</span><span class="n">option</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+    
+    <span class="c1"># Print the final state</span>
+    <span class="n">nb_products</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">products_infos</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">res</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">final_status</span> <span class="o">=</span> <span class="s2">&quot;&lt;OK&gt;&quot;</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">final_status</span> <span class="o">=</span> <span class="s2">&quot;&lt;KO&gt;&quot;</span>
+   
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">Configuration: </span><span class="si">%(status)s</span><span class="s2"> (</span><span class="si">%(1)d</span><span class="s2">/</span><span class="si">%(2)d</span><span class="s2">)</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> \
+        <span class="p">{</span> <span class="s1">&#39;status&#39;</span><span class="p">:</span> <span class="n">final_status</span><span class="p">,</span> 
+          <span class="s1">&#39;1&#39;</span><span class="p">:</span> <span class="n">nb_products</span> <span class="o">-</span> <span class="n">res</span><span class="p">,</span>
+          <span class="s1">&#39;2&#39;</span><span class="p">:</span> <span class="n">nb_products</span> <span class="p">},</span> <span class="mi">1</span><span class="p">)</span>    
+    
+    <span class="k">return</span> <span class="n">res</span> </div></div>
+
+
+<div class="viewcode-block" id="get_products_list"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.configure.get_products_list">[docs]</a><span class="k">def</span> <span class="nf">get_products_list</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">cfg</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    method that gives the product list with their informations from </span>
+<span class="sd">    configuration regarding the passed options.</span>
+<span class="sd">    </span>
+<span class="sd">    :param options: (Options) </span>
+<span class="sd">      The Options instance that stores the commands arguments</span>
+<span class="sd">    :param cfg: (Config) The global configuration</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :return: (list) The list of (product name, product_informations).</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c1"># Get the products to be prepared, regarding the options</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">products</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="c1"># No options, get all products sources</span>
+        <span class="n">products</span> <span class="o">=</span> <span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="c1"># if option --products, check that all products of the command line</span>
+        <span class="c1"># are present in the application.</span>
+        <span class="n">products</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">products</span>
+        <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">products</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">p</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span>
+                    <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Product </span><span class="si">%(product)s</span><span class="s2"> not defined in application </span><span class="si">%(application)s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span>
+                    <span class="p">{</span><span class="s1">&#39;product&#39;</span><span class="p">:</span> <span class="n">p</span><span class="p">,</span> <span class="s1">&#39;application&#39;</span><span class="p">:</span> <span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">}</span> <span class="p">)</span>
+    
+    <span class="c1"># Construct the list of tuple containing </span>
+    <span class="c1"># the products name and their definition</span>
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_products_infos</span><span class="p">(</span><span class="n">products</span><span class="p">,</span> <span class="n">cfg</span><span class="p">)</span>
+    
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="p">[</span><span class="n">pi</span> <span class="k">for</span> <span class="n">pi</span> <span class="ow">in</span> <span class="n">products_infos</span> <span class="k">if</span> <span class="ow">not</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_native</span><span class="p">(</span><span class="n">pi</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="ow">or</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_fixed</span><span class="p">(</span><span class="n">pi</span><span class="p">[</span><span class="mi">1</span><span class="p">]))]</span>
+    
+    <span class="k">return</span> <span class="n">products_infos</span></div>
+
+<div class="viewcode-block" id="log_step"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.configure.log_step">[docs]</a><span class="k">def</span> <span class="nf">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="n">step</span><span class="p">):</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="mi">20</span><span class="p">))</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="n">step</span><span class="p">))</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">==== </span><span class="si">%s</span><span class="s2"> </span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">step</span><span class="p">))</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span></div>
+
+<div class="viewcode-block" id="log_res_step"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.configure.log_res_step">[docs]</a><span class="k">def</span> <span class="nf">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res</span><span class="p">):</span>
+    <span class="k">if</span> <span class="n">res</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;&lt;OK&gt;&quot;</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;&lt;KO&gt;&quot;</span><span class="p">)</span></div>
+
+<div class="viewcode-block" id="configure_all_products"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.configure.configure_all_products">[docs]</a><span class="k">def</span> <span class="nf">configure_all_products</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">products_infos</span><span class="p">,</span> <span class="n">conf_option</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Execute the proper configuration commands </span>
+<span class="sd">    in each product build directory.</span>
+
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param products_info: (list) </span>
+<span class="sd">      List of (str, Config) =&gt; (product_name, product_info)</span>
+<span class="sd">    :param conf_option: (str) The options to add to the command</span>
+<span class="sd">    :param logger: (Logger) The logger instance to use for the display and logging</span>
+<span class="sd">    :return: (int) the number of failing commands.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="k">for</span> <span class="n">p_name_info</span> <span class="ow">in</span> <span class="n">products_infos</span><span class="p">:</span>
+        <span class="n">res_prod</span> <span class="o">=</span> <span class="n">configure_product</span><span class="p">(</span><span class="n">p_name_info</span><span class="p">,</span> <span class="n">conf_option</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">res_prod</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">res</span> <span class="o">+=</span> <span class="mi">1</span> 
+    <span class="k">return</span> <span class="n">res</span></div>
+
+<div class="viewcode-block" id="configure_product"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.configure.configure_product">[docs]</a><span class="k">def</span> <span class="nf">configure_product</span><span class="p">(</span><span class="n">p_name_info</span><span class="p">,</span> <span class="n">conf_option</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Execute the proper configuration command(s) </span>
+<span class="sd">    in the product build directory.</span>
+<span class="sd">    </span>
+<span class="sd">    :param p_name_info: (tuple) </span>
+<span class="sd">      (str, Config) =&gt; (product_name, product_info)</span>
+<span class="sd">    :param conf_option: (str) The options to add to the command</span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :return: (int) 1 if it fails, else 0.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    
+    <span class="n">p_name</span><span class="p">,</span> <span class="n">p_info</span> <span class="o">=</span> <span class="n">p_name_info</span>
+    
+    <span class="c1"># Logging</span>
+    <span class="n">header</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Configuration of </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">p_name</span><span class="p">)</span>
+    <span class="n">header</span> <span class="o">+=</span> <span class="s2">&quot; </span><span class="si">%s</span><span class="s2"> &quot;</span> <span class="o">%</span> <span class="p">(</span><span class="s2">&quot;.&quot;</span> <span class="o">*</span> <span class="p">(</span><span class="mi">20</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">p_name</span><span class="p">)))</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">header</span><span class="p">)</span>
+    
+    <span class="c1"># Do nothing if he product is not compilable</span>
+    <span class="k">if</span> <span class="p">(</span><span class="s2">&quot;properties&quot;</span> <span class="ow">in</span> <span class="n">p_info</span> <span class="ow">and</span> \
+        <span class="s2">&quot;compilation&quot;</span> <span class="ow">in</span> <span class="n">p_info</span><span class="o">.</span><span class="n">properties</span> <span class="ow">and</span> \
+        <span class="n">p_info</span><span class="o">.</span><span class="n">properties</span><span class="o">.</span><span class="n">compilation</span> <span class="o">==</span> <span class="s2">&quot;no&quot;</span><span class="p">):</span>
+          
+        <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;ignored&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="k">return</span> <span class="mi">0</span>
+
+    <span class="c1"># Instantiate the class that manages all the construction commands</span>
+    <span class="c1"># like cmake, make, make install, make test, environment management, etc...</span>
+    <span class="n">builder</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">compilation</span><span class="o">.</span><span class="n">Builder</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">p_info</span><span class="p">)</span>
+    
+    <span class="c1"># Prepare the environment</span>
+    <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;PREPARE ENV&quot;</span><span class="p">)</span>
+    <span class="n">res_prepare</span> <span class="o">=</span> <span class="n">builder</span><span class="o">.</span><span class="n">prepare</span><span class="p">()</span>
+    <span class="n">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res_prepare</span><span class="p">)</span>
+    
+    <span class="c1"># Execute buildconfigure, configure if the product is autotools</span>
+    <span class="c1"># Execute cmake if the product is cmake</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_autotools</span><span class="p">(</span><span class="n">p_info</span><span class="p">):</span>
+        <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;BUILDCONFIGURE&quot;</span><span class="p">)</span>
+        <span class="n">res_bc</span> <span class="o">=</span> <span class="n">builder</span><span class="o">.</span><span class="n">build_configure</span><span class="p">()</span>
+        <span class="n">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res_bc</span><span class="p">)</span>
+        <span class="n">res</span> <span class="o">+=</span> <span class="n">res_bc</span>
+        <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;CONFIGURE&quot;</span><span class="p">)</span>
+        <span class="n">res_c</span> <span class="o">=</span> <span class="n">builder</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">conf_option</span><span class="p">)</span>
+        <span class="n">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res_c</span><span class="p">)</span>
+        <span class="n">res</span> <span class="o">+=</span> <span class="n">res_c</span>
+    <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_cmake</span><span class="p">(</span><span class="n">p_info</span><span class="p">):</span>
+        <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;CMAKE&quot;</span><span class="p">)</span>
+        <span class="n">res_cm</span> <span class="o">=</span> <span class="n">builder</span><span class="o">.</span><span class="n">cmake</span><span class="p">(</span><span class="n">conf_option</span><span class="p">)</span>
+        <span class="n">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res_cm</span><span class="p">)</span>
+        <span class="n">res</span> <span class="o">+=</span> <span class="n">res_cm</span>
+    
+    <span class="c1"># Log the result</span>
+    <span class="k">if</span> <span class="n">res</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="mi">20</span><span class="p">))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">header</span> <span class="o">+</span> <span class="s2">&quot;&lt;KO&gt;&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;==== &lt;KO&gt; in configuration of </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">p_name</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="mi">20</span><span class="p">))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">header</span> <span class="o">+</span> <span class="s2">&quot;&lt;OK&gt;&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;==== &lt;OK&gt; in configuration of </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">p_name</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+    <span class="k">return</span> <span class="n">res</span></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/environ.html b/doc/build/html/_modules/commands/environ.html
new file mode 100644 (file)
index 0000000..ea14d16
--- /dev/null
@@ -0,0 +1,268 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.environ &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.environ</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">import</span> <span class="nn">src.utilsSat</span> <span class="k">as</span> <span class="nn">UTS</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+
+<span class="c1"># list of available shells with extensions</span>
+<span class="n">C_SHELLS</span> <span class="o">=</span> <span class="p">{</span> <span class="s2">&quot;bash&quot;</span><span class="p">:</span> <span class="s2">&quot;sh&quot;</span><span class="p">,</span> <span class="s2">&quot;bat&quot;</span><span class="p">:</span> <span class="s2">&quot;bat&quot;</span><span class="p">,</span> <span class="s2">&quot;cfg&quot;</span> <span class="p">:</span> <span class="s2">&quot;cfg&quot;</span> <span class="p">}</span>
+<span class="n">C_ALL_SHELL</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">&quot;bash&quot;</span><span class="p">,</span> <span class="s2">&quot;bat&quot;</span><span class="p">,</span> <span class="s2">&quot;cfg&quot;</span> <span class="p">]</span>
+
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.environ.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">  The environ command generates the environment files of your application.</span>
+
+<span class="sd">  examples:</span>
+<span class="sd">  &gt;&gt; sat environ SALOME</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;environ&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.environ.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for command &#39;sat environ &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;shell&#39;</span><span class="p">,</span> <span class="s1">&#39;list2&#39;</span><span class="p">,</span> <span class="s1">&#39;shell&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: Generates the environment files for the given format: &quot;</span>
+          <span class="s2">&quot;bash (default), bat (for windows), cfg (salome context file) or all.&quot;</span><span class="p">),</span> <span class="p">[])</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;p&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span> <span class="s1">&#39;list2&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: Includes only the specified products.&quot;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;prefix&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;prefix&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: Specifies the prefix for the environment files.&quot;</span><span class="p">),</span> <span class="s2">&quot;env&quot;</span><span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;t&#39;</span><span class="p">,</span> <span class="s1">&#39;target&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;out_dir&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: Specifies the directory path where to put the environment files.&quot;</span><span class="p">),</span>
+        <span class="kc">None</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.environ.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat environ &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+
+    <span class="c1"># check that the command was called with an application</span>
+    <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span> <span class="n">config</span> <span class="p">)</span>
+    
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">products</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="n">environ_info</span> <span class="o">=</span> <span class="kc">None</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="c1"># add products specified by user (only products </span>
+        <span class="c1"># included in the application)</span>
+        <span class="n">environ_info</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span>
+                              <span class="n">l</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="o">.</span><span class="n">keys</span><span class="p">(),</span>
+                              <span class="n">options</span><span class="o">.</span><span class="n">products</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">shell</span> <span class="o">==</span> <span class="p">[]:</span>
+        <span class="n">shell</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;bash&quot;</span><span class="p">]</span>
+        <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">architecture</span><span class="o">.</span><span class="n">is_windows</span><span class="p">():</span>
+            <span class="n">shell</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;bat&quot;</span><span class="p">]</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">shell</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">shell</span>
+    
+    <span class="n">out_dir</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">out_dir</span>
+    <span class="k">if</span> <span class="n">out_dir</span><span class="p">:</span>
+        <span class="n">out_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">out_dir</span><span class="p">)</span>
+    
+    <span class="n">write_all_source_files</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">out_dir</span><span class="o">=</span><span class="n">out_dir</span><span class="p">,</span> <span class="n">shells</span><span class="o">=</span><span class="n">shell</span><span class="p">,</span>
+                           <span class="n">prefix</span><span class="o">=</span><span class="n">options</span><span class="o">.</span><span class="n">prefix</span><span class="p">,</span> <span class="n">env_info</span><span class="o">=</span><span class="n">environ_info</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span></div></div>
+    <span class="c1">#TODO return code</span>
+
+<div class="viewcode-block" id="write_all_source_files"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.environ.write_all_source_files">[docs]</a><span class="k">def</span> <span class="nf">write_all_source_files</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                           <span class="n">logger</span><span class="p">,</span>
+                           <span class="n">out_dir</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+                           <span class="n">src_root</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+                           <span class="n">silent</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
+                           <span class="n">shells</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;bash&quot;</span><span class="p">],</span>
+                           <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;env&quot;</span><span class="p">,</span>
+                           <span class="n">env_info</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Generates the environment files.</span>
+<span class="sd">    </span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param logger: (Logger)</span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :param out_dir: (str) </span>
+<span class="sd">      The path to the directory where the files will be put</span>
+<span class="sd">    :param src_root: (str) </span>
+<span class="sd">      The path to the directory where the sources are</span>
+<span class="sd">    :param silent: (bool) </span>
+<span class="sd">      If True, do not print anything in the terminal</span>
+<span class="sd">    :param shells: (list) The list of shells to generate</span>
+<span class="sd">    :param prefix: (str) The prefix to add to the file names.</span>
+<span class="sd">    :param env_info: (str) The list of products to add in the files.</span>
+<span class="sd">    :return: (list) The list of the generated files.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+        
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">out_dir</span><span class="p">:</span>
+        <span class="n">out_dir</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span>
+
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">out_dir</span><span class="p">):</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Target directory not found: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">out_dir</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">silent</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Creating environment files for </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> \
+                     <span class="n">UTS</span><span class="o">.</span><span class="n">header</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;  </span><span class="si">%s</span><span class="s2"> = </span><span class="si">%s</span><span class="se">\n\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Target&quot;</span><span class="p">),</span> <span class="n">out_dir</span><span class="p">))</span>
+    
+    <span class="n">shells_list</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="n">all_shells</span> <span class="o">=</span> <span class="n">C_ALL_SHELL</span>
+    <span class="k">if</span> <span class="s2">&quot;all&quot;</span> <span class="ow">in</span> <span class="n">shells</span><span class="p">:</span>
+        <span class="n">shells</span> <span class="o">=</span> <span class="n">all_shells</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">shells</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="n">l</span> <span class="ow">in</span> <span class="n">all_shells</span><span class="p">,</span> <span class="n">shells</span><span class="p">)</span>
+
+    <span class="k">for</span> <span class="n">shell</span> <span class="ow">in</span> <span class="n">shells</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">shell</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">C_SHELLS</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Unknown shell: </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">shell</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">shells_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">environment</span><span class="o">.</span><span class="n">Shell</span><span class="p">(</span><span class="n">shell</span><span class="p">,</span> <span class="n">C_SHELLS</span><span class="p">[</span><span class="n">shell</span><span class="p">]))</span>
+    
+    <span class="n">writer</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">environment</span><span class="o">.</span><span class="n">FileEnvWriter</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                                           <span class="n">logger</span><span class="p">,</span>
+                                           <span class="n">out_dir</span><span class="p">,</span>
+                                           <span class="n">src_root</span><span class="p">,</span>
+                                           <span class="n">env_info</span><span class="p">)</span>
+    <span class="n">writer</span><span class="o">.</span><span class="n">silent</span> <span class="o">=</span> <span class="n">silent</span>
+    <span class="n">files</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="n">for_build</span> <span class="o">=</span> <span class="kc">True</span>
+    <span class="n">for_launch</span> <span class="o">=</span> <span class="kc">False</span>
+    <span class="k">for</span> <span class="n">shell</span> <span class="ow">in</span> <span class="n">shells_list</span><span class="p">:</span>
+        <span class="n">files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">writer</span><span class="o">.</span><span class="n">write_env_file</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2">_launch.</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span>
+                                           <span class="p">(</span><span class="n">prefix</span><span class="p">,</span> <span class="n">shell</span><span class="o">.</span><span class="n">extension</span><span class="p">),</span>
+                                           <span class="n">for_launch</span><span class="p">,</span>
+                                           <span class="n">shell</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
+        <span class="n">files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">writer</span><span class="o">.</span><span class="n">write_env_file</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2">_build.</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span>
+                                           <span class="p">(</span><span class="n">prefix</span><span class="p">,</span> <span class="n">shell</span><span class="o">.</span><span class="n">extension</span><span class="p">),</span>
+                                           <span class="n">for_build</span><span class="p">,</span>
+                                           <span class="n">shell</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
+
+    <span class="k">return</span> <span class="n">files</span></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/find_duplicates.html b/doc/build/html/_modules/commands/find_duplicates.html
new file mode 100644 (file)
index 0000000..afb83f6
--- /dev/null
@@ -0,0 +1,391 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.find_duplicates &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.find_duplicates</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">import</span> <span class="nn">src.utilsSat</span> <span class="k">as</span> <span class="nn">UTS</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+
+
+<span class="n">default_extension_ignored</span> <span class="o">=</span> \
+    <span class="s1">&#39;html png txt js xml cmake gif m4 in pyo pyc doctree css&#39;</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
+
+<span class="n">default_files_ignored</span> <span class="o">=</span> \
+    <span class="s1">&#39;__init__.py Makefile.am VERSION build_configure README AUTHORS NEWS COPYING ChangeLog&#39;</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
+
+<span class="n">default_directories_ignored</span> <span class="o">=</span> <span class="p">[]</span>
+
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.find_duplicates.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;\</span>
+<span class="sd">  The find_duplicates command search recursively for all duplicates files</span>
+<span class="sd">  in INSTALL directory (or the optionally given directory) and </span>
+<span class="sd">  prints the found files to the terminal.</span>
+<span class="sd">  </span>
+<span class="sd">  examples:</span>
+<span class="sd">    &gt;&gt; sat find_duplicates --path /tmp</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;find_duplicates&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.find_duplicates.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for command &#39;sat find_duplicates &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s2">&quot;s&quot;</span><span class="p">,</span>
+        <span class="s2">&quot;sources&quot;</span><span class="p">,</span>
+        <span class="s2">&quot;boolean&quot;</span><span class="p">,</span>
+        <span class="s2">&quot;sources&quot;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Search the duplicate files in the SOURCES directory.&quot;</span><span class="p">)</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s2">&quot;p&quot;</span><span class="p">,</span>
+        <span class="s2">&quot;path&quot;</span><span class="p">,</span>
+        <span class="s2">&quot;list2&quot;</span><span class="p">,</span>
+        <span class="s2">&quot;path&quot;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: Search the duplicate files in the given directory paths.&quot;</span><span class="p">)</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s2">&quot;&quot;</span><span class="p">,</span>
+        <span class="s2">&quot;exclude-file&quot;</span><span class="p">,</span>
+        <span class="s2">&quot;list2&quot;</span><span class="p">,</span>
+        <span class="s2">&quot;exclude_file&quot;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: Override the default list of filtered files.&quot;</span><span class="p">)</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s2">&quot;&quot;</span><span class="p">,</span>
+        <span class="s2">&quot;exclude-extension&quot;</span><span class="p">,</span>
+        <span class="s2">&quot;list2&quot;</span><span class="p">,</span>
+        <span class="s2">&quot;exclude_extension&quot;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: Override the default list of filtered extensions.&quot;</span><span class="p">)</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s2">&quot;&quot;</span><span class="p">,</span>
+        <span class="s2">&quot;exclude-path&quot;</span><span class="p">,</span>
+        <span class="s2">&quot;list2&quot;</span><span class="p">,</span>
+        <span class="s2">&quot;exclude_path&quot;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: Override the default list of filtered paths.&quot;</span><span class="p">)</span> <span class="p">)</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.find_duplicates.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat find_duplicates &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+  
+    <span class="c1"># Determine the directory path where to search </span>
+    <span class="c1"># for duplicates files regarding the options</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">path</span><span class="p">:</span>
+        <span class="n">l_dir_path</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">path</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">sources</span><span class="p">:</span>
+            <span class="n">l_dir_path</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span> <span class="s2">&quot;SOURCES&quot;</span><span class="p">)]</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="c1"># find all installation paths</span>
+            <span class="n">all_products</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
+            <span class="n">l_product_cfg</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_products_infos</span><span class="p">(</span><span class="n">all_products</span><span class="p">,</span> <span class="n">config</span><span class="p">)</span>
+            <span class="n">l_dir_path</span> <span class="o">=</span> <span class="p">[</span><span class="n">pi</span><span class="o">.</span><span class="n">install_dir</span> <span class="k">for</span> <span class="n">__</span><span class="p">,</span> <span class="n">pi</span> <span class="ow">in</span> <span class="n">l_product_cfg</span><span class="p">]</span>
+    
+    <span class="c1"># Get the files to ignore during the searching</span>
+    <span class="n">files_ignored</span> <span class="o">=</span> <span class="n">default_files_ignored</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">exclude_file</span><span class="p">:</span>
+        <span class="n">files_ignored</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">exclude_file</span>
+
+    <span class="c1"># Get the extension to ignore during the searching</span>
+    <span class="n">extension_ignored</span> <span class="o">=</span> <span class="n">default_extension_ignored</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">exclude_extension</span><span class="p">:</span>
+        <span class="n">extension_ignored</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">exclude_extension</span>
+
+    <span class="c1"># Get the directory paths to ignore during the searching</span>
+    <span class="n">directories_ignored</span> <span class="o">=</span> <span class="n">default_directories_ignored</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">exclude_path</span><span class="p">:</span>
+        <span class="n">directories_ignored</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">exclude_path</span>
+    
+    <span class="c1"># Check the directories</span>
+    <span class="n">l_path</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">deepcopy_list</span><span class="p">(</span><span class="n">l_dir_path</span><span class="p">)</span>
+    <span class="n">l_dir_path</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="k">for</span> <span class="n">dir_path</span> <span class="ow">in</span> <span class="n">l_path</span><span class="p">:</span>
+        <span class="k">if</span> <span class="ow">not</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">dir_path</span><span class="p">)):</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> does not exists or is not a directory path: it will be ignored&quot;</span> <span class="o">%</span>
+                  <span class="n">dir_path</span><span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">msg</span><span class="p">)</span>
+            <span class="k">continue</span>
+        <span class="n">l_dir_path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">dir_path</span><span class="p">)</span>
+            
+    
+    <span class="c1"># Display some information</span>
+    <span class="n">info</span> <span class="o">=</span> <span class="p">[(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Directories&quot;</span><span class="p">),</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">l_dir_path</span><span class="p">)),</span>
+            <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Ignored files&quot;</span><span class="p">),</span> <span class="n">files_ignored</span><span class="p">),</span>
+            <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Ignored extensions&quot;</span><span class="p">),</span> <span class="n">extension_ignored</span><span class="p">),</span>
+            <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Ignored directories&quot;</span><span class="p">),</span> <span class="n">directories_ignored</span><span class="p">)</span>
+           <span class="p">]</span>
+    <span class="n">UTS</span><span class="o">.</span><span class="n">logger_info_tuples</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">info</span><span class="p">)</span>
+    
+    <span class="c1"># Get all the files and paths</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Store all file paths ... &quot;</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
+    <span class="n">dic</span><span class="p">,</span> <span class="n">fic</span> <span class="o">=</span> <span class="n">list_directory</span><span class="p">(</span><span class="n">l_dir_path</span><span class="p">,</span>
+                              <span class="n">extension_ignored</span><span class="p">,</span>
+                              <span class="n">files_ignored</span><span class="p">,</span>
+                              <span class="n">directories_ignored</span><span class="p">)</span>  
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;&lt;OK&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+    
+    <span class="c1"># Eliminate all the singletons</span>
+    <span class="n">len_fic</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">fic</span><span class="p">)</span>
+    <span class="n">range_fic</span> <span class="o">=</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">len_fic</span><span class="p">)</span>
+    <span class="n">range_fic</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
+    <span class="n">my_bar</span> <span class="o">=</span> <span class="n">Progress_bar</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Eliminate the files that are not duplicated&#39;</span><span class="p">),</span>
+                          <span class="mi">0</span><span class="p">,</span>
+                          <span class="n">len_fic</span><span class="p">,</span>
+                          <span class="n">logger</span><span class="p">,</span>
+                          <span class="n">length</span> <span class="o">=</span> <span class="mi">50</span><span class="p">)</span>
+    <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">range_fic</span><span class="p">:</span>
+        <span class="n">my_bar</span><span class="o">.</span><span class="n">display_value_progression</span><span class="p">(</span><span class="n">len_fic</span> <span class="o">-</span> <span class="n">i</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">fic</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="n">fic</span><span class="p">[</span><span class="n">i</span><span class="p">])</span><span class="o">==</span><span class="mi">1</span><span class="p">:</span>
+            <span class="n">fic</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">fic</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
+            <span class="n">dic</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">dic</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
+
+    <span class="c1"># Format the resulting variable to get a dictionary</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">Compute the dict for file -&gt; list of paths ... &quot;</span><span class="p">))</span>
+    <span class="n">fic</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
+    <span class="n">len_fic</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">fic</span><span class="p">)</span>
+    <span class="n">rg_fic</span> <span class="o">=</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">len_fic</span><span class="p">)</span>
+    <span class="n">rg_fic</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
+    <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">rg_fic</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">fic</span><span class="p">[</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="n">fic</span><span class="p">[</span><span class="n">i</span><span class="p">]:</span>
+            <span class="n">fic</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">fic</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
+
+    <span class="n">dic_fic_paths</span> <span class="o">=</span> <span class="p">{}</span>
+    <span class="k">for</span> <span class="n">fichier</span> <span class="ow">in</span> <span class="n">fic</span><span class="p">:</span>
+        <span class="n">the_file</span> <span class="o">=</span> <span class="n">fichier</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="n">l_path</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="k">for</span> <span class="n">fic_path</span> <span class="ow">in</span> <span class="n">dic</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">fic_path</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="n">the_file</span><span class="p">:</span>
+                <span class="n">l_path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">fic_path</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
+        <span class="n">dic_fic_paths</span><span class="p">[</span><span class="n">the_file</span><span class="p">]</span> <span class="o">=</span> <span class="n">l_path</span>
+    
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;&lt;OK&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+    <span class="c1"># End the execution if no duplicates were found</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">dic_fic_paths</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;No duplicate files found.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">))</span>
+        <span class="k">return</span> <span class="mi">0</span>
+
+    <span class="c1"># Check that there are no singletons in the result (it would be a bug)</span>
+    <span class="k">for</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">dic_fic_paths</span><span class="p">:</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">dic_fic_paths</span><span class="p">[</span><span class="n">elem</span><span class="p">])</span><span class="o">&lt;</span><span class="mi">2</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Element </span><span class="si">%s</span><span class="s2"> has not more than two paths.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">elem</span><span class="p">)</span>
+
+
+    <span class="c1"># Display the results</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Results:</span><span class="se">\n\n</span><span class="s1">&#39;</span><span class="p">))</span>
+    <span class="n">max_file_name_lenght</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="nb">len</span><span class="p">(</span><span class="n">l</span><span class="p">),</span> <span class="n">dic_fic_paths</span><span class="o">.</span><span class="n">keys</span><span class="p">()))</span>
+    <span class="k">for</span> <span class="n">fich</span> <span class="ow">in</span> <span class="n">dic_fic_paths</span><span class="p">:</span>
+        <span class="n">sp</span> <span class="o">=</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="p">(</span><span class="n">max_file_name_lenght</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">fich</span><span class="p">))</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">fich</span><span class="p">)</span> <span class="o">+</span> <span class="n">sp</span>
+        <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="n">dic_fic_paths</span><span class="p">[</span><span class="n">fich</span><span class="p">]:</span>
+            <span class="n">msg</span> <span class="o">+=</span> <span class="n">rep</span> <span class="o">+</span> <span class="s2">&quot; &quot;</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+    <span class="k">return</span> <span class="mi">0</span></div></div>
+
+
+<div class="viewcode-block" id="list_directory"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.find_duplicates.list_directory">[docs]</a><span class="k">def</span> <span class="nf">list_directory</span><span class="p">(</span><span class="n">lpath</span><span class="p">,</span> <span class="n">extension_ignored</span><span class="p">,</span> <span class="n">files_ignored</span><span class="p">,</span> <span class="n">directories_ignored</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Make the list of all files and paths that are not filtered </span>
+<span class="sd">    </span>
+<span class="sd">    :param lpath: (list) </span>
+<span class="sd">      The list of path to of the directories where to  search for duplicates</span>
+<span class="sd">    :param extension_ignored: (list) The list of extensions to ignore</span>
+<span class="sd">    :param files_ignored: (list) The list of files to ignore</span>
+<span class="sd">    :param directories_ignored: (list) </span>
+<span class="sd">      The list of directory paths to ignore</span>
+<span class="sd">    :return: (list, list) </span>
+<span class="sd">      files_arb_out is the list of [file, path] </span>
+<span class="sd">      and files_out is is the list of files</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">files_out</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="n">files_arb_out</span><span class="o">=</span><span class="p">[]</span>
+    <span class="k">for</span> <span class="n">path</span> <span class="ow">in</span> <span class="n">lpath</span><span class="p">:</span>
+        <span class="k">for</span> <span class="n">root</span><span class="p">,</span> <span class="n">__</span><span class="p">,</span> <span class="n">files</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>  
+            <span class="k">for</span> <span class="n">fic</span> <span class="ow">in</span> <span class="n">files</span><span class="p">:</span>
+                <span class="n">extension</span> <span class="o">=</span> <span class="n">fic</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>   
+                <span class="k">if</span> <span class="p">(</span><span class="n">extension</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">extension_ignored</span> <span class="ow">and</span> 
+                                                      <span class="n">fic</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">files_ignored</span><span class="p">):</span>
+                    <span class="n">in_ignored_dir</span> <span class="o">=</span> <span class="kc">False</span>
+                    <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="n">directories_ignored</span><span class="p">:</span>
+                        <span class="k">if</span> <span class="n">rep</span> <span class="ow">in</span> <span class="n">root</span><span class="p">:</span>
+                            <span class="n">in_ignored_dir</span> <span class="o">=</span> <span class="kc">True</span>                
+                    <span class="k">if</span> <span class="ow">not</span> <span class="n">in_ignored_dir</span><span class="p">:</span>
+                        <span class="n">files_out</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">fic</span><span class="p">])</span>              
+                        <span class="n">files_arb_out</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">fic</span><span class="p">,</span> <span class="n">root</span><span class="p">])</span>
+    <span class="k">return</span> <span class="n">files_arb_out</span><span class="p">,</span> <span class="n">files_out</span></div>
+
+<div class="viewcode-block" id="format_list_of_str"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.find_duplicates.format_list_of_str">[docs]</a><span class="k">def</span> <span class="nf">format_list_of_str</span><span class="p">(</span><span class="n">l_str</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Make a list from a string</span>
+<span class="sd">    </span>
+<span class="sd">    :param l_str: (list or str) The variable to format</span>
+<span class="sd">    :return: (list) the formatted variable</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">l_str</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
+        <span class="k">return</span> <span class="n">l_str</span>
+    <span class="k">return</span> <span class="s2">&quot;,&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">l_str</span><span class="p">)</span></div>
+
+<div class="viewcode-block" id="Progress_bar"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.find_duplicates.Progress_bar">[docs]</a><span class="k">class</span> <span class="nc">Progress_bar</span><span class="p">:</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Create a progress bar in the terminal</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">valMin</span><span class="p">,</span> <span class="n">valMax</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">length</span> <span class="o">=</span> <span class="mi">50</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Initialization of the progress bar.</span>
+<span class="sd">        </span>
+<span class="sd">        :param name: (str) The name of the progress bar</span>
+<span class="sd">        :param valMin: (float) the minimum value of the variable</span>
+<span class="sd">        :param valMax: (float) the maximum value of the variable</span>
+<span class="sd">        :param logger: (Logger) the logger instance</span>
+<span class="sd">        :param length: (int) the lenght of the progress bar</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">valMin</span> <span class="o">=</span> <span class="n">valMin</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">valMax</span> <span class="o">=</span> <span class="n">valMax</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">length</span> <span class="o">=</span> <span class="n">length</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span> <span class="o">=</span> <span class="n">logger</span>
+        <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">valMax</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">valMin</span><span class="p">)</span> <span class="o">&lt;=</span> <span class="mi">0</span> <span class="ow">or</span> <span class="n">length</span> <span class="o">&lt;=</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">out_err</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s1">&#39;ERROR: Wrong init values for the progress bar</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">out_err</span><span class="p">)</span>
+        
+<div class="viewcode-block" id="Progress_bar.display_value_progression"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.find_duplicates.Progress_bar.display_value_progression">[docs]</a>    <span class="k">def</span> <span class="nf">display_value_progression</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">val</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Display the progress bar.</span>
+<span class="sd">        </span>
+<span class="sd">        :param val: (float) val must be between valMin and valMax.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">if</span> <span class="n">val</span> <span class="o">&lt;</span> <span class="bp">self</span><span class="o">.</span><span class="n">valMin</span> <span class="ow">or</span> <span class="n">val</span> <span class="o">&gt;</span> <span class="bp">self</span><span class="o">.</span><span class="n">valMax</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Wrong value for the progress bar.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">))</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">perc</span> <span class="o">=</span> <span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">val</span><span class="o">-</span><span class="bp">self</span><span class="o">.</span><span class="n">valMin</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">valMax</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">valMin</span><span class="p">))</span> <span class="o">*</span> <span class="mf">100.</span>
+            <span class="n">nb_equals</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">perc</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">length</span> <span class="o">/</span> <span class="mi">100</span><span class="p">)</span>
+            <span class="n">out</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="se">\r</span><span class="s1"> </span><span class="si">%s</span><span class="s1"> : </span><span class="si">%3d</span><span class="s1"> </span><span class="si">%%</span><span class="s1"> [</span><span class="si">%s%s</span><span class="s1">]&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">perc</span><span class="p">,</span> <span class="n">nb_equals</span><span class="o">*</span><span class="s1">&#39;=&#39;</span><span class="p">,</span>
+                                             <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">length</span> <span class="o">-</span> <span class="n">nb_equals</span><span class="p">)</span><span class="o">*</span><span class="s1">&#39; &#39;</span> <span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">out</span><span class="p">)</span></div></div>
+
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/generate.html b/doc/build/html/_modules/commands/generate.html
new file mode 100644 (file)
index 0000000..f110cfb
--- /dev/null
@@ -0,0 +1,493 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.generate &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.generate</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">import</span> <span class="nn">src.utilsSat</span> <span class="k">as</span> <span class="nn">UTS</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+<span class="kn">import</span> <span class="nn">src.pyconf</span> <span class="k">as</span> <span class="nn">PYCONF</span>
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.generate.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;\</span>
+<span class="sd">  The generate command generates SALOME modules from &#39;pure cpp&#39; products.</span>
+<span class="sd">  WARNING: this command NEEDS YACSGEN to run.</span>
+<span class="sd">  </span>
+<span class="sd">  examples:</span>
+<span class="sd">    &gt;&gt; sat generate SALOME --products FLICACPP</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;generate&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.generate.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for command &#39;sat generate &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;p&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span> <span class="s1">&#39;list2&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span>
+                      <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: the list of products to generate&quot;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;yacsgen&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;yacsgen&#39;</span><span class="p">,</span>
+                      <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: path to YACSGEN&#39;s module_generator package&quot;</span><span class="p">))</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+  
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.generate.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat generate &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+    
+    <span class="c1"># Check that the command has been called with an application</span>
+    <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
+    
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span> <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Generation of SALOME modules for application </span><span class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span> <span class="o">%</span> \
+        <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">)</span> <span class="p">)</span>
+
+    <span class="n">status</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">KO_STATUS</span>
+
+    <span class="c1"># verify that YACSGEN is available</span>
+    <span class="n">returnCode</span> <span class="o">=</span> <span class="n">check_yacsgen</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">options</span><span class="o">.</span><span class="n">yacsgen</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">returnCode</span><span class="o">.</span><span class="n">isOk</span><span class="p">():</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">returnCode</span><span class="o">.</span><span class="n">getWhy</span><span class="p">())</span>
+        <span class="k">return</span> <span class="n">returnCode</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">yacsgen_dir</span> <span class="o">=</span> <span class="n">returnCode</span><span class="o">.</span><span class="n">getValue</span><span class="p">()</span>
+        
+    <span class="c1"># Make the generator module visible by python</span>
+    <span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">yacsgen_dir</span><span class="p">)</span>
+    
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot; insert directory PATH </span><span class="si">%s</span><span class="s2"> = </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> \
+                <span class="p">(</span><span class="s2">&quot;YACSGEN&quot;</span><span class="p">,</span> <span class="n">UTS</span><span class="o">.</span><span class="n">blue</span><span class="p">(</span><span class="n">yacsgen_dir</span><span class="p">))</span> <span class="p">)</span>
+
+    <span class="n">products</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">products</span><span class="p">:</span>
+        <span class="n">products</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">products</span>
+
+    <span class="n">details</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="n">nbgen</span> <span class="o">=</span> <span class="mi">0</span>
+
+    <span class="n">context</span> <span class="o">=</span> <span class="n">build_context</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+    <span class="n">lprod</span> <span class="o">=</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">product</span><span class="p">)</span>
+    <span class="k">for</span> <span class="n">product</span> <span class="ow">in</span> <span class="n">products</span><span class="p">:</span>
+        <span class="n">header</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Generating </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">lprod</span>
+        <span class="n">header</span> <span class="o">+=</span> <span class="s2">&quot; </span><span class="si">%s</span><span class="s2"> &quot;</span> <span class="o">%</span> <span class="p">(</span><span class="s2">&quot;.&quot;</span> <span class="o">*</span> <span class="p">(</span><span class="mi">20</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">product</span><span class="p">)))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">header</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">product</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">PRODUCTS</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Unknown product </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">lprod</span><span class="p">)</span>
+            <span class="k">continue</span>
+
+        <span class="n">pi</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">product</span><span class="p">)</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_generated</span><span class="p">(</span><span class="n">pi</span><span class="p">):</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;not a generated product </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">lprod</span><span class="p">)</span>
+            <span class="k">continue</span>
+
+        <span class="n">nbgen</span> <span class="o">+=</span> <span class="mi">1</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">result</span> <span class="o">=</span> <span class="n">generate_component_list</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">pi</span><span class="p">,</span> <span class="n">context</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+        <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">exc</span><span class="p">:</span>
+            <span class="n">result</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">exc</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">result</span> <span class="o">!=</span> <span class="n">src</span><span class="o">.</span><span class="n">OK_STATUS</span><span class="p">:</span>
+            <span class="n">result</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;ERROR: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">result</span>
+            <span class="n">details</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">product</span><span class="p">,</span> <span class="n">result</span><span class="p">])</span>
+
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">details</span><span class="p">)</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The following modules were not generated correctly:</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">details</span><span class="p">:</span>
+          <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;  </span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">d</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;KO&quot;</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;generate command done&quot;</span><span class="p">)</span></div></div>
+
+
+<div class="viewcode-block" id="generate_component_list"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.generate.generate_component_list">[docs]</a><span class="k">def</span> <span class="nf">generate_component_list</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">product_info</span><span class="p">,</span> <span class="n">context</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="s2">&quot;?&quot;</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+    <span class="k">for</span> <span class="n">compo</span> <span class="ow">in</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_components</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+        <span class="n">header</span> <span class="o">=</span> <span class="s2">&quot;  </span><span class="si">%s</span><span class="s2"> </span><span class="si">%s</span><span class="s2"> &quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">compo</span><span class="p">),</span> <span class="s2">&quot;.&quot;</span> <span class="o">*</span> <span class="p">(</span><span class="mi">20</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">compo</span><span class="p">)))</span>
+        <span class="n">res</span> <span class="o">=</span> <span class="n">generate_component</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                                 <span class="n">compo</span><span class="p">,</span>
+                                 <span class="n">product_info</span><span class="p">,</span>
+                                 <span class="n">context</span><span class="p">,</span>
+                                 <span class="n">header</span><span class="p">,</span>
+                                 <span class="n">logger</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">config</span><span class="o">.</span><span class="n">USER</span><span class="o">.</span><span class="n">output_verbose_level</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="se">\r</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="mi">20</span><span class="p">,</span> <span class="n">header</span><span class="p">))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">res</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">res</span></div>
+
+<div class="viewcode-block" id="generate_component"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.generate.generate_component">[docs]</a><span class="k">def</span> <span class="nf">generate_component</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">compo</span><span class="p">,</span> <span class="n">product_info</span><span class="p">,</span> <span class="n">context</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+<span class="c1">#   get from config include file name and librairy name, or take default value</span>
+    <span class="k">if</span> <span class="s2">&quot;hxxfile&quot;</span> <span class="ow">in</span> <span class="n">product_info</span><span class="p">:</span>
+        <span class="n">hxxfile</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">hxxfile</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">hxxfile</span> <span class="o">=</span> <span class="n">compo</span> <span class="o">+</span> <span class="s2">&quot;.hxx&quot;</span>
+    <span class="k">if</span> <span class="s2">&quot;cpplib&quot;</span> <span class="ow">in</span> <span class="n">product_info</span><span class="p">:</span>
+        <span class="n">cpplib</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">cpplib</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">cpplib</span> <span class="o">=</span> <span class="s2">&quot;lib&quot;</span> <span class="o">+</span> <span class="n">compo</span> <span class="o">+</span> <span class="s2">&quot;CXX.so&quot;</span>
+    <span class="n">cpp_path</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">install_dir</span>
+
+    <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">blue</span><span class="p">(</span><span class="n">header</span><span class="p">)</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;hxxfile  = </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">hxxfile</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;cpplib   = </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">cpplib</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;cpp_path = </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">cpp_path</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+    
+    <span class="c1"># create a product_info at runtime</span>
+    <span class="n">compo_info</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
+    <span class="n">compo_info</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">compo</span>
+    <span class="n">compo_info</span><span class="o">.</span><span class="n">nb_proc</span> <span class="o">=</span> <span class="mi">1</span>
+    <span class="n">generate_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span> <span class="s2">&quot;GENERATED&quot;</span><span class="p">)</span>
+    <span class="n">install_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span> <span class="s2">&quot;INSTALL&quot;</span><span class="p">)</span>
+    <span class="n">build_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span> <span class="s2">&quot;BUILD&quot;</span><span class="p">)</span>
+    <span class="n">compo_info</span><span class="o">.</span><span class="n">source_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">generate_dir</span><span class="p">,</span> <span class="n">compo</span> <span class="o">+</span> <span class="s2">&quot;_SRC&quot;</span><span class="p">)</span>
+    <span class="n">compo_info</span><span class="o">.</span><span class="n">install_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">install_dir</span><span class="p">,</span> <span class="n">compo</span><span class="p">)</span>
+    <span class="n">compo_info</span><span class="o">.</span><span class="n">build_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">build_dir</span><span class="p">,</span> <span class="n">compo</span><span class="p">)</span>
+    <span class="n">compo_info</span><span class="o">.</span><span class="n">depend</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">depend</span>
+    <span class="n">compo_info</span><span class="o">.</span><span class="n">depend</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="c1"># add cpp module</span>
+    <span class="n">compo_info</span><span class="o">.</span><span class="n">opt_depend</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">opt_depend</span>
+
+    <span class="n">config</span><span class="o">.</span><span class="n">PRODUCTS</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="n">compo</span><span class="p">,</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(</span><span class="n">config</span><span class="p">),</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
+    <span class="n">config</span><span class="o">.</span><span class="n">PRODUCTS</span><span class="p">[</span><span class="n">compo</span><span class="p">]</span><span class="o">.</span><span class="n">default</span> <span class="o">=</span> <span class="n">compo_info</span>
+
+    <span class="n">builder</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">compilation</span><span class="o">.</span><span class="n">Builder</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">compo_info</span><span class="p">,</span> <span class="n">check_src</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+    <span class="n">builder</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="n">header</span>
+
+    <span class="c1"># generate the component</span>
+    <span class="c1"># create GENERATE dir if necessary</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">generate_dir</span><span class="p">):</span>
+        <span class="n">os</span><span class="o">.</span><span class="n">mkdir</span><span class="p">(</span><span class="n">generate_dir</span><span class="p">)</span>
+
+    <span class="c1"># delete previous generated directory if it already exists</span>
+    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">compo_info</span><span class="o">.</span><span class="n">source_dir</span><span class="p">):</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;  delete </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">compo_info</span><span class="o">.</span><span class="n">source_dir</span><span class="p">)</span>
+        <span class="n">shutil</span><span class="o">.</span><span class="n">rmtree</span><span class="p">(</span><span class="n">compo_info</span><span class="o">.</span><span class="n">source_dir</span><span class="p">)</span>
+
+    <span class="c1"># generate generates in the current directory =&gt; change for generate dir</span>
+    <span class="n">curdir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">curdir</span>
+    <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="n">generate_dir</span><span class="p">)</span>
+
+    <span class="c1"># inline class to override bootstrap method</span>
+    <span class="kn">import</span> <span class="nn">module_generator</span>
+    <span class="k">class</span> <span class="nc">sat_generator</span><span class="p">(</span><span class="n">module_generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span>
+        <span class="c1"># old bootstrap for automake (used if salome version &lt;= 7.4)</span>
+        <span class="k">def</span> <span class="nf">bootstrap</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source_dir</span><span class="p">,</span> <span class="n">log_file</span><span class="p">):</span>
+            <span class="c1"># replace call to default bootstrap() by using subprocess call (cleaner)</span>
+            <span class="n">command</span> <span class="o">=</span> <span class="s2">&quot;sh autogen.sh&quot;</span>
+            <span class="n">ier</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">command</span><span class="p">,</span> <span class="n">shell</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">cwd</span><span class="o">=</span><span class="n">source_dir</span><span class="p">,</span>
+                                  <span class="n">stdout</span><span class="o">=</span><span class="n">log_file</span><span class="p">,</span> <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">STDOUT</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">ier</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;bootstrap has ended in error&quot;</span><span class="p">)</span>
+
+    
+    <span class="c1"># determine salome version</span>
+    <span class="n">VersionSalome</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_salome_version</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">VersionSalome</span> <span class="o">&gt;=</span> <span class="mi">750</span> <span class="p">:</span>
+        <span class="n">use_autotools</span><span class="o">=</span><span class="kc">False</span>
+        <span class="n">builder</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="s1">&#39;USE CMAKE&#39;</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">use_autotools</span><span class="o">=</span><span class="kc">True</span>
+        <span class="n">builder</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="s1">&#39;USE AUTOTOOLS&#39;</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
+
+    <span class="n">result</span> <span class="o">=</span> <span class="s2">&quot;GENERATE&quot;</span>
+    <span class="n">builder</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="s1">&#39;GENERATE&#39;</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
+    
+    <span class="n">prevstdout</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span>
+    <span class="n">prevstderr</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">stderr</span>
+
+    <span class="k">try</span><span class="p">:</span>
+        <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span> <span class="o">=</span> <span class="n">logger</span><span class="o">.</span><span class="n">logTxtFile</span>
+        <span class="n">sys</span><span class="o">.</span><span class="n">stderr</span> <span class="o">=</span> <span class="n">logger</span><span class="o">.</span><span class="n">logTxtFile</span>
+
+        <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_mpi</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+            <span class="n">salome_compo</span> <span class="o">=</span> <span class="n">module_generator</span><span class="o">.</span><span class="n">HXX2SALOMEParaComponent</span><span class="p">(</span><span class="n">hxxfile</span><span class="p">,</span>
+                                                                    <span class="n">cpplib</span><span class="p">,</span>
+                                                                    <span class="n">cpp_path</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">salome_compo</span> <span class="o">=</span> <span class="n">module_generator</span><span class="o">.</span><span class="n">HXX2SALOMEComponent</span><span class="p">(</span><span class="n">hxxfile</span><span class="p">,</span>
+                                                                <span class="n">cpplib</span><span class="p">,</span>
+                                                                <span class="n">cpp_path</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_has_salome_gui</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+            <span class="c1"># get files to build a template GUI</span>
+            <span class="n">gui_files</span> <span class="o">=</span> <span class="n">salome_compo</span><span class="o">.</span><span class="n">getGUIfilesTemplate</span><span class="p">(</span><span class="n">compo</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">gui_files</span> <span class="o">=</span> <span class="kc">None</span>
+
+        <span class="n">mg</span> <span class="o">=</span> <span class="n">module_generator</span><span class="o">.</span><span class="n">Module</span><span class="p">(</span><span class="n">compo</span><span class="p">,</span> <span class="n">components</span><span class="o">=</span><span class="p">[</span><span class="n">salome_compo</span><span class="p">],</span>
+                                     <span class="n">prefix</span><span class="o">=</span><span class="n">generate_dir</span><span class="p">,</span> <span class="n">gui</span><span class="o">=</span><span class="n">gui_files</span><span class="p">)</span>
+        <span class="n">g</span> <span class="o">=</span> <span class="n">sat_generator</span><span class="p">(</span><span class="n">mg</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span>
+        <span class="n">g</span><span class="o">.</span><span class="n">generate</span><span class="p">()</span>
+
+        <span class="k">if</span> <span class="n">use_autotools</span><span class="p">:</span>
+            <span class="n">result</span> <span class="o">=</span> <span class="s2">&quot;BUID_CONFIGURE&quot;</span>
+            <span class="n">builder</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="s1">&#39;BUID_CONFIGURE (no bootstrap)&#39;</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
+            <span class="n">g</span><span class="o">.</span><span class="n">bootstrap</span><span class="p">(</span><span class="n">compo_info</span><span class="o">.</span><span class="n">source_dir</span><span class="p">,</span> <span class="n">logger</span><span class="o">.</span><span class="n">logTxtFile</span><span class="p">)</span>
+
+        <span class="n">result</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">OK_STATUS</span>
+    <span class="k">finally</span><span class="p">:</span>
+        <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span> <span class="o">=</span> <span class="n">prevstdout</span>
+        <span class="n">sys</span><span class="o">.</span><span class="n">stderr</span> <span class="o">=</span> <span class="n">prevstderr</span>
+
+    <span class="c1"># go back to previous directory</span>
+    <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="n">curdir</span><span class="p">)</span>
+
+    <span class="c1"># do the compilation using the builder object</span>
+    <span class="k">if</span> <span class="n">builder</span><span class="o">.</span><span class="n">prepare</span><span class="p">()</span><span class="o">!=</span> <span class="mi">0</span><span class="p">:</span> <span class="k">return</span> <span class="s2">&quot;Error in prepare&quot;</span>
+    <span class="k">if</span> <span class="n">use_autotools</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">builder</span><span class="o">.</span><span class="n">configure</span><span class="p">()</span><span class="o">!=</span> <span class="mi">0</span><span class="p">:</span> <span class="k">return</span> <span class="s2">&quot;Error in configure&quot;</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">builder</span><span class="o">.</span><span class="n">cmake</span><span class="p">()</span><span class="o">!=</span> <span class="mi">0</span><span class="p">:</span> <span class="k">return</span> <span class="s2">&quot;Error in cmake&quot;</span>
+
+    <span class="k">if</span> <span class="n">builder</span><span class="o">.</span><span class="n">make</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">nb_proc</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">)</span><span class="o">!=</span><span class="mi">0</span><span class="p">:</span> <span class="k">return</span> <span class="s2">&quot;Error in make&quot;</span>
+    <span class="k">if</span> <span class="n">builder</span><span class="o">.</span><span class="n">install</span><span class="p">()</span><span class="o">!=</span><span class="mi">0</span><span class="p">:</span> <span class="k">return</span> <span class="s2">&quot;Error in make install&quot;</span>
+
+    <span class="c1"># copy specified logo in generated component install directory</span>
+    <span class="c1"># rem : logo is not copied in source dir because this would require</span>
+    <span class="c1">#       to modify the generated makefile</span>
+    <span class="n">logo_path</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_has_logo</span><span class="p">(</span><span class="n">product_info</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">logo_path</span><span class="p">:</span>
+        <span class="n">destlogo</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">compo_info</span><span class="o">.</span><span class="n">install_dir</span><span class="p">,</span> <span class="s2">&quot;share&quot;</span><span class="p">,</span> <span class="s2">&quot;salome&quot;</span><span class="p">,</span>
+            <span class="s2">&quot;resources&quot;</span><span class="p">,</span> <span class="n">compo</span><span class="o">.</span><span class="n">lower</span><span class="p">(),</span> <span class="n">compo</span> <span class="o">+</span> <span class="s2">&quot;.png&quot;</span><span class="p">)</span>
+        <span class="n">src</span><span class="o">.</span><span class="n">Path</span><span class="p">(</span><span class="n">logo_path</span><span class="p">)</span><span class="o">.</span><span class="n">copyfile</span><span class="p">(</span><span class="n">destlogo</span><span class="p">)</span>
+
+    <span class="k">return</span> <span class="n">result</span></div>
+
+<div class="viewcode-block" id="build_context"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.generate.build_context">[docs]</a><span class="k">def</span> <span class="nf">build_context</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="n">products_list</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;KERNEL&#39;</span><span class="p">,</span> <span class="s1">&#39;GUI&#39;</span> <span class="p">]</span>
+    <span class="n">ctxenv</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">environment</span><span class="o">.</span><span class="n">SalomeEnviron</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                                           <span class="n">src</span><span class="o">.</span><span class="n">environment</span><span class="o">.</span><span class="n">Environ</span><span class="p">(</span><span class="nb">dict</span><span class="p">(</span>
+                                                                   <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">)),</span>
+                                           <span class="kc">True</span><span class="p">)</span>
+    <span class="n">ctxenv</span><span class="o">.</span><span class="n">silent</span> <span class="o">=</span> <span class="kc">True</span>
+    <span class="n">ctxenv</span><span class="o">.</span><span class="n">set_full_environ</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span>
+
+    <span class="n">dicdir</span> <span class="o">=</span> <span class="p">{}</span>
+    <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">products_list</span><span class="p">:</span>
+        <span class="n">prod_env</span> <span class="o">=</span> <span class="n">p</span> <span class="o">+</span> <span class="s2">&quot;_ROOT_DIR&quot;</span>
+        <span class="n">val</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="n">prod_env</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="n">prod_env</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">p</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">:</span>
+                <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;product </span><span class="si">%s</span><span class="s2"> is not defined. Include it in the application or define $</span><span class="si">%s</span><span class="s2">.&quot;</span><span class="p">)</span> <span class="o">%</span> \
+                       <span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">prod_env</span><span class="p">)</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="n">msg</span><span class="p">))</span>
+                <span class="n">val</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+            <span class="n">val</span> <span class="o">=</span> <span class="n">ctxenv</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">prod_env</span><span class="p">]</span>
+        <span class="n">dicdir</span><span class="p">[</span><span class="n">p</span><span class="p">]</span> <span class="o">=</span> <span class="n">val</span>
+
+    <span class="c1"># the dictionary requires all keys </span>
+    <span class="c1"># but the generation requires only values for KERNEL and GUI</span>
+    <span class="n">context</span> <span class="o">=</span> <span class="p">{</span>
+        <span class="s2">&quot;update&quot;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
+        <span class="s2">&quot;makeflags&quot;</span><span class="p">:</span> <span class="s2">&quot;-j2&quot;</span><span class="p">,</span>
+        <span class="s2">&quot;kernel&quot;</span><span class="p">:</span> <span class="n">dicdir</span><span class="p">[</span><span class="s2">&quot;KERNEL&quot;</span><span class="p">],</span>
+        <span class="s2">&quot;gui&quot;</span><span class="p">:</span>    <span class="n">dicdir</span><span class="p">[</span><span class="s2">&quot;GUI&quot;</span><span class="p">],</span>
+        <span class="s2">&quot;yacs&quot;</span><span class="p">:</span>   <span class="s2">&quot;&quot;</span><span class="p">,</span>
+        <span class="s2">&quot;med&quot;</span><span class="p">:</span>    <span class="s2">&quot;&quot;</span><span class="p">,</span>
+        <span class="s2">&quot;mesh&quot;</span><span class="p">:</span>   <span class="s2">&quot;&quot;</span><span class="p">,</span>
+        <span class="s2">&quot;visu&quot;</span><span class="p">:</span>   <span class="s2">&quot;&quot;</span><span class="p">,</span>
+        <span class="s2">&quot;geom&quot;</span><span class="p">:</span>   <span class="s2">&quot;&quot;</span><span class="p">,</span>
+    <span class="p">}</span>
+    <span class="k">return</span> <span class="n">context</span></div>
+
+<div class="viewcode-block" id="check_module_generator"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.generate.check_module_generator">[docs]</a><span class="k">def</span> <span class="nf">check_module_generator</span><span class="p">(</span><span class="n">directory</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Check if module_generator is available.</span>
+<span class="sd">    </span>
+<span class="sd">    :param directory: (str) The directory of YACSGEN.</span>
+<span class="sd">    :return: (str) </span>
+<span class="sd">      The YACSGEN path if the module_generator is available, else None</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">undo</span> <span class="o">=</span> <span class="kc">False</span>
+    <span class="k">if</span> <span class="n">directory</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">directory</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="p">:</span>
+        <span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">directory</span><span class="p">)</span>
+        <span class="n">undo</span> <span class="o">=</span> <span class="kc">True</span>
+    
+    <span class="n">res</span> <span class="o">=</span> <span class="kc">None</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="c1">#import module_generator</span>
+        <span class="n">info</span> <span class="o">=</span> <span class="n">imp</span><span class="o">.</span><span class="n">find_module</span><span class="p">(</span><span class="s2">&quot;module_generator&quot;</span><span class="p">)</span>
+        <span class="n">res</span> <span class="o">=</span> <span class="n">info</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+    <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">undo</span><span class="p">:</span>
+            <span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">directory</span><span class="p">)</span>
+        <span class="n">res</span> <span class="o">=</span> <span class="kc">None</span>
+
+    <span class="k">return</span> <span class="n">res</span></div>
+
+<div class="viewcode-block" id="check_yacsgen"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.generate.check_yacsgen">[docs]</a><span class="k">def</span> <span class="nf">check_yacsgen</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">directory</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Check if YACSGEN is available.</span>
+<span class="sd">    </span>
+<span class="sd">    :param config: (Config) The global configuration.</span>
+<span class="sd">    :param directory: (str) The directory given by option --yacsgen</span>
+<span class="sd">    :param logger: (Logger) The logger instance</span>
+<span class="sd">    :return: (RCO.ReturnCode) </span>
+<span class="sd">      with value The path to yacsgen directory if ok</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c1"># first check for YACSGEN (command option, then product, then environment)</span>
+    <span class="n">yacsgen_dir</span> <span class="o">=</span> <span class="kc">None</span>
+    <span class="n">yacs_src</span> <span class="o">=</span> <span class="s2">&quot;?&quot;</span>
+    <span class="k">if</span> <span class="n">directory</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="n">yacsgen_dir</span> <span class="o">=</span> <span class="n">directory</span>
+        <span class="n">yacs_src</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Using YACSGEN from command line&quot;</span><span class="p">)</span>
+    <span class="k">elif</span> <span class="s1">&#39;YACSGEN&#39;</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">:</span>
+        <span class="n">yacsgen_info</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="s1">&#39;YACSGEN&#39;</span><span class="p">)</span>
+        <span class="n">yacsgen_dir</span> <span class="o">=</span> <span class="n">yacsgen_info</span><span class="o">.</span><span class="n">install_dir</span>
+        <span class="n">yacs_src</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Using YACSGEN from application&quot;</span><span class="p">)</span>
+    <span class="k">elif</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="s2">&quot;YACSGEN_ROOT_DIR&quot;</span><span class="p">):</span>
+        <span class="n">yacsgen_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s2">&quot;YACSGEN_ROOT_DIR&quot;</span><span class="p">)</span>
+        <span class="n">yacs_src</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Using YACSGEN from environment&quot;</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="n">yacsgen_dir</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;KO&quot;</span><span class="p">,</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The generate command requires YACSGEN.&quot;</span><span class="p">))</span>
+    
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;  </span><span class="si">%s</span><span class="s2"> in </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">yacs_src</span><span class="p">,</span> <span class="n">yacsgen_dir</span><span class="p">))</span>
+
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">yacsgen_dir</span><span class="p">):</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;YACSGEN directory not found: &#39;</span><span class="si">%s</span><span class="s2">&#39;&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">yacsgen_dir</span>
+        <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;KO&quot;</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
+    
+    <span class="c1"># load module_generator</span>
+    <span class="n">c</span> <span class="o">=</span> <span class="n">check_module_generator</span><span class="p">(</span><span class="n">yacsgen_dir</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">c</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;check_module_generator on </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">yacsgen_dir</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span>
+    
+    <span class="n">pv</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s2">&quot;PYTHON_VERSION&quot;</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">pv</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="n">python_info</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="s2">&quot;Python&quot;</span><span class="p">)</span>
+        <span class="n">pv</span> <span class="o">=</span> <span class="s1">&#39;.&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">python_info</span><span class="o">.</span><span class="n">version</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)[:</span><span class="mi">2</span><span class="p">])</span>
+    <span class="k">assert</span> <span class="n">pv</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">,</span> <span class="s2">&quot;$PYTHON_VERSION not defined&quot;</span>
+    <span class="n">yacsgen_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">yacsgen_dir</span><span class="p">,</span> <span class="s2">&quot;lib&quot;</span><span class="p">,</span> <span class="s2">&quot;python</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">pv</span><span class="p">,</span> <span class="s2">&quot;site-packages&quot;</span><span class="p">)</span>
+    <span class="n">c</span> <span class="o">=</span> <span class="n">check_module_generator</span><span class="p">(</span><span class="n">yacsgen_dir</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">c</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;check_module_generator on </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">yacsgen_dir</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span>
+
+    <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;KO&quot;</span><span class="p">,</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The python module module_generator was not found in YACSGEN&quot;</span><span class="p">))</span></div>
+
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/init.html b/doc/build/html/_modules/commands/init.html
new file mode 100644 (file)
index 0000000..68a6106
--- /dev/null
@@ -0,0 +1,274 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.init &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.init</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">import</span> <span class="nn">src.utilsSat</span> <span class="k">as</span> <span class="nn">UTS</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+<span class="kn">import</span> <span class="nn">src.pyconf</span> <span class="k">as</span> <span class="nn">PYCONF</span>
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.init.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;\</span>
+<span class="sd">  The init command Changes the local settings of SAT</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;init&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.init.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for command &#39;sat init &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;b&#39;</span><span class="p">,</span> <span class="s1">&#39;base&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;base&#39;</span><span class="p">,</span> 
+                      <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: The path to the products base&#39;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;w&#39;</span><span class="p">,</span> <span class="s1">&#39;workdir&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;workdir&#39;</span><span class="p">,</span> 
+                      <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: The path to the working directory &#39;</span>
+                        <span class="s1">&#39;(where to install the applications&#39;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;a&#39;</span><span class="p">,</span> <span class="s1">&#39;archive_dir&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;archive_dir&#39;</span><span class="p">,</span> 
+                      <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: The path to the local archive directory &#39;</span>
+                        <span class="s1">&#39;(where to install local source archives&#39;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;v&#39;</span><span class="p">,</span> <span class="s1">&#39;VCS&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;VCS&#39;</span><span class="p">,</span> 
+                      <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: The address of the repository of SAT &#39;</span>
+                        <span class="s1">&#39;(only informative)&#39;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;t&#39;</span><span class="p">,</span> <span class="s1">&#39;tag&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;tag&#39;</span><span class="p">,</span> 
+                      <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: The tag of SAT (only informative)&#39;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;l&#39;</span><span class="p">,</span> <span class="s1">&#39;log_dir&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;log_dir&#39;</span><span class="p">,</span> 
+                      <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: The directory where to put all the logs of SAT&#39;</span><span class="p">))</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.init.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat init &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+   
+    <span class="c1"># Print some informations</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Local Settings of SAT </span><span class="si">%s</span><span class="s1">&#39;</span><span class="p">)</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">salometoolsway</span><span class="p">))</span>
+
+    <span class="n">res</span> <span class="o">=</span> <span class="mi">0</span>
+    
+    <span class="c1"># Set the options corresponding to a directory</span>
+    <span class="k">for</span> <span class="n">opt</span> <span class="ow">in</span> <span class="p">[(</span><span class="s2">&quot;base&quot;</span> <span class="p">,</span> <span class="n">options</span><span class="o">.</span><span class="n">base</span><span class="p">),</span>
+                <span class="p">(</span><span class="s2">&quot;workdir&quot;</span><span class="p">,</span> <span class="n">options</span><span class="o">.</span><span class="n">workdir</span><span class="p">),</span>
+                <span class="p">(</span><span class="s2">&quot;log_dir&quot;</span><span class="p">,</span> <span class="n">options</span><span class="o">.</span><span class="n">log_dir</span><span class="p">),</span>
+                <span class="p">(</span><span class="s2">&quot;archive_dir&quot;</span><span class="p">,</span> <span class="n">options</span><span class="o">.</span><span class="n">archive_dir</span><span class="p">)]:</span>
+        <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="o">=</span> <span class="n">opt</span>
+        <span class="k">if</span> <span class="n">value</span><span class="p">:</span>
+            <span class="n">res_check</span> <span class="o">=</span> <span class="n">check_path</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+            <span class="n">res</span> <span class="o">+=</span> <span class="n">res_check</span>
+            <span class="k">if</span> <span class="n">res_check</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+                <span class="n">res_set</span> <span class="o">=</span> <span class="n">set_local_value</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+                <span class="n">res</span> <span class="o">+=</span> <span class="n">res_set</span>
+
+    <span class="c1"># Set the options corresponding to an informative value            </span>
+    <span class="k">for</span> <span class="n">opt</span> <span class="ow">in</span> <span class="p">[(</span><span class="s2">&quot;VCS&quot;</span><span class="p">,</span> <span class="n">options</span><span class="o">.</span><span class="n">VCS</span><span class="p">),</span> <span class="p">(</span><span class="s2">&quot;tag&quot;</span><span class="p">,</span> <span class="n">options</span><span class="o">.</span><span class="n">tag</span><span class="p">)]:</span>
+        <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="o">=</span> <span class="n">opt</span>
+        <span class="n">res_set</span> <span class="o">=</span> <span class="n">set_local_value</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+        <span class="n">res</span> <span class="o">+=</span> <span class="n">res_set</span>
+    
+    <span class="n">display_local_values</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+    
+    <span class="k">return</span> <span class="n">res</span></div></div>
+
+
+<div class="viewcode-block" id="set_local_value"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.init.set_local_value">[docs]</a><span class="k">def</span> <span class="nf">set_local_value</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Edit the site.pyconf file and change a value.</span>
+
+<span class="sd">    :param config: (Config) The global configuration.    </span>
+<span class="sd">    :param key: (str) The key from which to change the value.</span>
+<span class="sd">    :param value: (str) The path to change.</span>
+<span class="sd">    :param logger: (Logger) The logger instance.</span>
+<span class="sd">    :return: (int) 0 if all is OK, else 1</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">local_file_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">datadir</span><span class="p">,</span> <span class="s2">&quot;local.pyconf&quot;</span><span class="p">)</span>
+    <span class="c1"># Update the local.pyconf file</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="n">local_cfg</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Config</span><span class="p">(</span><span class="n">local_file_path</span><span class="p">)</span>
+        <span class="n">local_cfg</span><span class="o">.</span><span class="n">LOCAL</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
+        <span class="n">ff</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">local_file_path</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span>
+        <span class="n">local_cfg</span><span class="o">.</span><span class="n">__save__</span><span class="p">(</span><span class="n">ff</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
+        <span class="n">ff</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+        <span class="k">if</span> <span class="n">key</span> <span class="o">!=</span> <span class="s2">&quot;log_dir&quot;</span><span class="p">:</span>
+            <span class="n">config</span><span class="o">.</span><span class="n">LOCAL</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
+    <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+        <span class="n">err</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Unable to update the local.pyconf file: </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">err</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;KO&quot;</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
+    
+    <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">)</span></div>
+    
+<div class="viewcode-block" id="display_local_values"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.init.display_local_values">[docs]</a><span class="k">def</span> <span class="nf">display_local_values</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Display the base path</span>
+
+<span class="sd">    :param config: (Config) The global configuration.</span>
+<span class="sd">    :param key: (str) The key from which to change the value.</span>
+<span class="sd">    :param logger: (Logger) The logger instance.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">info</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">&quot;base&quot;</span><span class="p">,</span> <span class="n">config</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">base</span><span class="p">),</span>
+            <span class="p">(</span><span class="s2">&quot;workdir&quot;</span><span class="p">,</span> <span class="n">config</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">workdir</span><span class="p">),</span>
+            <span class="p">(</span><span class="s2">&quot;log_dir&quot;</span><span class="p">,</span> <span class="n">config</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">log_dir</span><span class="p">),</span>
+            <span class="p">(</span><span class="s2">&quot;archive_dir&quot;</span><span class="p">,</span> <span class="n">config</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">archive_dir</span><span class="p">),</span>
+            <span class="p">(</span><span class="s2">&quot;VCS&quot;</span><span class="p">,</span> <span class="n">config</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">VCS</span><span class="p">),</span>
+            <span class="p">(</span><span class="s2">&quot;tag&quot;</span><span class="p">,</span> <span class="n">config</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">tag</span><span class="p">)]</span>
+    <span class="n">UTS</span><span class="o">.</span><span class="n">logger_info_tuples</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">info</span><span class="p">)</span>
+
+    <span class="k">return</span> <span class="mi">0</span></div>
+
+<div class="viewcode-block" id="check_path"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.init.check_path">[docs]</a><span class="k">def</span> <span class="nf">check_path</span><span class="p">(</span><span class="n">path_to_check</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Verify that the given path is not a file and can be created.</span>
+<span class="sd">    </span>
+<span class="sd">    :param path_to_check: (str) The path to check.</span>
+<span class="sd">    :param logger: (Logger) The logger instance.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">if</span> <span class="n">path_to_check</span> <span class="o">==</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span>
+        <span class="k">return</span> <span class="mi">0</span>
+    
+    <span class="c1"># Get the path</span>
+    <span class="n">path</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">Path</span><span class="p">(</span><span class="n">path_to_check</span><span class="p">)</span>
+    
+    <span class="c1"># If it is a file, do nothing and return error</span>
+    <span class="k">if</span> <span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">():</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">The given path is a file: </span><span class="si">%s</span><span class="s2"></span>
+<span class="s2">Please provide a path to a directory</span><span class="se">\n</span><span class="s2">&quot;&quot;&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">blue</span><span class="p">(</span><span class="n">path_to_check</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="k">return</span> <span class="mi">1</span>
+      
+    <span class="c1"># Try to create the given path</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="n">UTS</span><span class="o">.</span><span class="n">ensure_path_exists</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">path</span><span class="p">))</span>
+    <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">Unable to create the directory </span><span class="si">%s</span><span class="s2">:</span>
+
+<span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;&quot;&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">blue</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">path</span><span class="p">)),</span> <span class="n">UTS</span><span class="o">.</span><span class="n">yellow</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="k">return</span> <span class="mi">1</span>
+    
+    <span class="k">return</span> <span class="mi">0</span></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/job.html b/doc/build/html/_modules/commands/job.html
new file mode 100644 (file)
index 0000000..5edc609
--- /dev/null
@@ -0,0 +1,276 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.job &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.job</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.job.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;\</span>
+<span class="sd">  The job command executes the commands of the job defined</span>
+<span class="sd">  in the jobs configuration file\</span>
+<span class="sd">  </span>
+<span class="sd">  examples:</span>
+<span class="sd">  &gt;&gt; sat job --jobs_config my_jobs --name my_job&quot;</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;job&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.job.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for command &#39;sat job &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;j&#39;</span><span class="p">,</span> <span class="s1">&#39;jobs_config&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;jobs_cfg&#39;</span><span class="p">,</span> 
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Mandatory: The name of the config file that contains the jobs configuration&#39;</span><span class="p">)</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;name&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;job&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Mandatory: The job name from which to execute commands.&#39;</span><span class="p">),</span> <span class="s2">&quot;&quot;</span> <span class="p">)</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.job.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat job &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+         
+    <span class="n">l_cfg_dir</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">PATHS</span><span class="o">.</span><span class="n">JOBPATH</span>
+    
+    <span class="c1"># Make sure the jobs_config option has been called</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">jobs_cfg</span><span class="p">:</span>
+        <span class="n">message</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The option --jobs_config is required</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>      
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
+        <span class="k">return</span> <span class="mi">1</span>
+    
+    <span class="c1"># Make sure the name option has been called</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">job</span><span class="p">:</span>
+        <span class="n">message</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The option --name is required</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>      
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
+        <span class="k">return</span> <span class="mi">1</span>
+    
+    <span class="c1"># Find the file in the directories</span>
+    <span class="n">found</span> <span class="o">=</span> <span class="kc">True</span>
+    <span class="n">fPyconf</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">jobs_cfg</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">file_jobs_cfg</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.pyconf&#39;</span><span class="p">):</span> 
+        <span class="n">fPyconf</span> <span class="o">+=</span> <span class="s1">&#39;.pyconf&#39;</span>
+        
+    <span class="k">for</span> <span class="n">cfg_dir</span> <span class="ow">in</span> <span class="n">l_cfg_dir</span><span class="p">:</span>
+        <span class="n">file_jobs_cfg</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">cfg_dir</span><span class="p">,</span> <span class="n">fPyconf</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">file_jobs_cfg</span><span class="p">):</span>
+            <span class="n">found</span> <span class="o">=</span> <span class="kc">True</span>
+            <span class="k">break</span>
+
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">found</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">The job file configuration </span><span class="si">%s</span><span class="s2"> was not found.</span>
+<span class="s2">Use the --list option to get the possible files.&quot;&quot;&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">blue</span><span class="p">(</span><span class="n">fPyconf</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="k">return</span> <span class="mi">1</span>
+    
+    <span class="n">info</span> <span class="o">=</span> <span class="p">[</span> <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Platform&quot;</span><span class="p">),</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">dist</span><span class="p">),</span>
+             <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;File containing the jobs configuration&quot;</span><span class="p">),</span> <span class="n">file_jobs_cfg</span><span class="p">)</span> <span class="p">]</span>
+    <span class="n">UTS</span><span class="o">.</span><span class="n">logger_info_tuples</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">info</span><span class="p">)</span>
+    
+    <span class="c1"># Read the config that is in the file</span>
+    <span class="n">config_jobs</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">read_config_from_a_file</span><span class="p">(</span><span class="n">file_jobs_cfg</span><span class="p">)</span>
+    
+    <span class="c1"># Find the job and its commands</span>
+    <span class="n">found</span> <span class="o">=</span> <span class="kc">False</span>
+    <span class="k">for</span> <span class="n">job</span> <span class="ow">in</span> <span class="n">config_jobs</span><span class="o">.</span><span class="n">jobs</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">job</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="n">options</span><span class="o">.</span><span class="n">job</span><span class="p">:</span>
+            <span class="n">commands</span> <span class="o">=</span> <span class="n">job</span><span class="o">.</span><span class="n">commands</span>
+            <span class="n">found</span> <span class="o">=</span> <span class="kc">True</span>
+            <span class="k">break</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">found</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Impossible to find the job </span><span class="si">%s</span><span class="s2"> in </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="p">(</span><span class="n">options</span><span class="o">.</span><span class="n">job</span><span class="p">,</span> <span class="n">file_jobs_cfg</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="k">return</span> <span class="mi">1</span>
+    
+    <span class="c1"># Find the maximum length of the commands in order to format the display</span>
+    <span class="n">len_max_command</span> <span class="o">=</span> <span class="nb">max</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">cmd</span><span class="p">)</span> <span class="k">for</span> <span class="n">cmd</span> <span class="ow">in</span> <span class="n">commands</span><span class="p">])</span>
+    
+    <span class="c1"># Loop over the commands and execute it</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="n">nb_pass</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="k">for</span> <span class="n">command</span> <span class="ow">in</span> <span class="n">commands</span><span class="p">:</span>
+        <span class="n">specific_option</span> <span class="o">=</span> <span class="kc">False</span>
+        <span class="c1"># Determine if it is a sat command or a shell command</span>
+        <span class="n">cmd_exe</span> <span class="o">=</span> <span class="n">command</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot; &quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="c1"># first part</span>
+        <span class="k">if</span> <span class="n">cmd_exe</span> <span class="o">==</span> <span class="s2">&quot;sat&quot;</span><span class="p">:</span>
+            <span class="c1"># use the salomeTools parser to get the options of the command</span>
+            <span class="n">sat_parser</span> <span class="o">=</span> <span class="n">salomeTools</span><span class="o">.</span><span class="n">parser</span>
+            <span class="n">input_parser</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">remove_item_from_list</span><span class="p">(</span><span class="n">command</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">)[</span><span class="mi">1</span><span class="p">:],</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
+            <span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">argus</span><span class="p">)</span> <span class="o">=</span> <span class="n">sat_parser</span><span class="o">.</span><span class="n">parse_args</span><span class="p">(</span><span class="n">input_parser</span><span class="p">)</span>
+            <span class="c1"># Verify if there is a changed option</span>
+            <span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="nb">dir</span><span class="p">(</span><span class="n">options</span><span class="p">):</span>
+                <span class="k">if</span> <span class="n">attr</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">&quot;__&quot;</span><span class="p">):</span>
+                    <span class="k">continue</span>
+                <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="fm">__getattr__</span><span class="p">(</span><span class="n">attr</span><span class="p">)</span> <span class="o">!=</span> <span class="kc">None</span><span class="p">:</span>
+                    <span class="n">specific_option</span> <span class="o">=</span> <span class="kc">True</span>
+            <span class="n">sat_command_name</span> <span class="o">=</span> <span class="n">argus</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+            <span class="n">end_cmd</span> <span class="o">=</span> <span class="s2">&quot; &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">argus</span><span class="p">[</span><span class="mi">1</span><span class="p">:])</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">sat_command_name</span> <span class="o">=</span> <span class="s2">&quot;shell&quot;</span>
+            <span class="n">end_cmd</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;--command&quot;</span><span class="p">,</span> <span class="n">command</span><span class="p">]</span>
+        <span class="c1"># Do not change the options if no option was called in the command</span>
+        <span class="k">if</span> <span class="ow">not</span><span class="p">(</span><span class="n">specific_option</span><span class="p">):</span>
+            <span class="n">options</span> <span class="o">=</span> <span class="kc">None</span>
+
+        <span class="c1"># Get dynamically the command function to call</span>
+        <span class="n">sat_command</span> <span class="o">=</span> <span class="n">runner</span><span class="o">.</span><span class="fm">__getattr__</span><span class="p">(</span><span class="n">sat_command_name</span><span class="p">)</span>
+
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Executing &quot;</span> <span class="o">+</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">command</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot; &quot;</span> <span class="o">+</span>
+                    <span class="s2">&quot;.&quot;</span> <span class="o">*</span> <span class="p">(</span><span class="n">len_max_command</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">command</span><span class="p">))</span> <span class="o">+</span> <span class="s2">&quot; &quot;</span><span class="p">)</span>
+        
+        <span class="n">error</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+        <span class="c1"># Execute the command</span>
+        <span class="n">code</span> <span class="o">=</span> <span class="n">sat_command</span><span class="p">(</span><span class="n">end_cmd</span><span class="p">,</span>
+                           <span class="n">options</span> <span class="o">=</span> <span class="n">options</span><span class="p">,</span>
+                           <span class="n">batch</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+                           <span class="n">verbose</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
+                           <span class="n">logger_add_link</span> <span class="o">=</span> <span class="n">logger</span><span class="p">)</span>
+            
+        <span class="c1"># Print the status of the command</span>
+        <span class="k">if</span> <span class="n">code</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">nb_pass</span> <span class="o">+=</span> <span class="mi">1</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;&lt;OK&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">sat_command_name</span> <span class="o">!=</span> <span class="s2">&quot;test&quot;</span><span class="p">:</span>
+                <span class="n">res</span> <span class="o">=</span> <span class="mi">1</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;&lt;KO&gt;: </span><span class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">error</span><span class="p">)</span>
+    
+    <span class="c1"># Print the final state</span>
+    <span class="k">if</span> <span class="n">res</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">final_status</span> <span class="o">=</span> <span class="s2">&quot;OK&quot;</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">final_status</span> <span class="o">=</span> <span class="s2">&quot;KO&quot;</span>
+        
+    <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;Commands: &lt;</span><span class="si">%s</span><span class="s2">&gt; (</span><span class="si">%d</span><span class="s2">/</span><span class="si">%d</span><span class="s2">)&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">final_status</span><span class="p">,</span> <span class="n">nb_pass</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">commands</span><span class="p">))</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>   
+    <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="n">final_status</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span></div></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/jobs.html b/doc/build/html/_modules/commands/jobs.html
new file mode 100644 (file)
index 0000000..9deb005
--- /dev/null
@@ -0,0 +1,1921 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.jobs &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.jobs</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+<span class="kn">import</span> <span class="nn">os</span>
+<span class="kn">import</span> <span class="nn">sys</span>
+<span class="kn">import</span> <span class="nn">tempfile</span>
+<span class="kn">import</span> <span class="nn">traceback</span>
+<span class="kn">import</span> <span class="nn">datetime</span>
+<span class="kn">import</span> <span class="nn">time</span>
+<span class="kn">import</span> <span class="nn">csv</span>
+<span class="kn">import</span> <span class="nn">shutil</span>
+<span class="kn">import</span> <span class="nn">itertools</span>
+<span class="kn">import</span> <span class="nn">re</span>
+
+<span class="c1"># import paramiko later</span>
+  
+<span class="kn">import</span> <span class="nn">src.ElementTree</span> <span class="k">as</span> <span class="nn">etree</span>
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">import</span> <span class="nn">src.utilsSat</span> <span class="k">as</span> <span class="nn">UTS</span>
+<span class="kn">import</span> <span class="nn">src.pyconf</span> <span class="k">as</span> <span class="nn">PYCONF</span>
+<span class="kn">import</span> <span class="nn">src.xmlManager</span> <span class="k">as</span> <span class="nn">XMLMGR</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+
+<span class="n">STYLESHEET_GLOBAL</span> <span class="o">=</span> <span class="s2">&quot;jobs_global_report.xsl&quot;</span>
+<span class="n">STYLESHEET_BOARD</span> <span class="o">=</span> <span class="s2">&quot;jobs_board_report.xsl&quot;</span>
+
+<span class="n">DAYS_SEPARATOR</span> <span class="o">=</span> <span class="s2">&quot;,&quot;</span>
+<span class="n">CSV_DELIMITER</span> <span class="o">=</span> <span class="s2">&quot;;&quot;</span>
+
+<span class="n">_PARAMIKO</span> <span class="o">=</span> <span class="p">[]</span>
+
+<div class="viewcode-block" id="getParamiko"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.getParamiko">[docs]</a><span class="k">def</span> <span class="nf">getParamiko</span><span class="p">(</span><span class="n">logger</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+  <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">_PARAMIKO</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+    <span class="k">try</span><span class="p">:</span>
+      <span class="kn">import</span> <span class="nn">paramiko</span> <span class="k">as</span> <span class="nn">PARAMIKO</span>
+      <span class="n">_PARAMIKO</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">PARAMIKO</span><span class="p">)</span>
+      <span class="k">return</span> <span class="n">PARAMIKO</span>
+    <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+      <span class="k">if</span> <span class="n">logger</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">critical</span><span class="p">(</span><span class="s2">&quot;Problem import paramiko. No jobs if not &#39;pip install paramiko&#39;&quot;</span><span class="p">)</span>
+      <span class="k">return</span> <span class="kc">None</span>
+  <span class="k">else</span><span class="p">:</span>
+    <span class="k">return</span> <span class="n">_PARAMIKO</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span></div>
+    
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">  The jobs command command launches maintenances that are described in </span>
+<span class="sd">  the dedicated jobs configuration file.</span>
+
+<span class="sd">  examples:</span>
+<span class="sd">    &gt;&gt; sat jobs --name my_jobs --publish</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;jobs&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for command &#39;sat jobs &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;n&#39;</span><span class="p">,</span> <span class="s1">&#39;name&#39;</span><span class="p">,</span> <span class="s1">&#39;list2&#39;</span><span class="p">,</span> <span class="s1">&#39;jobs_cfg&#39;</span><span class="p">,</span> 
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Mandatory: The name of the config file that contains the jobs configuration. Can be a list.&#39;</span><span class="p">)</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;o&#39;</span><span class="p">,</span> <span class="s1">&#39;only_jobs&#39;</span><span class="p">,</span> <span class="s1">&#39;list2&#39;</span><span class="p">,</span> <span class="s1">&#39;only_jobs&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: the list of jobs to launch, by their name. &#39;</span><span class="p">)</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;l&#39;</span><span class="p">,</span> <span class="s1">&#39;list&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;list&#39;</span><span class="p">,</span> 
+                      <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: list all available config files.&#39;</span><span class="p">)</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;t&#39;</span><span class="p">,</span> <span class="s1">&#39;test_connection&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;test_connection&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: try to connect to the machines. Not executing the jobs.&quot;</span><span class="p">),</span>
+        <span class="kc">False</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;p&#39;</span><span class="p">,</span> <span class="s1">&#39;publish&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;publish&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: generate an xml file that can be read in a browser to display the jobs status.&quot;</span><span class="p">),</span>
+        <span class="kc">False</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;i&#39;</span><span class="p">,</span> <span class="s1">&#39;input_boards&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;input_boards&#39;</span><span class="p">,</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: &quot;</span>
+        <span class="s2">&quot;the path to csv file that contain the expected boards.&quot;</span><span class="p">),</span>
+        <span class="s2">&quot;&quot;</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;completion&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;no_label&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional (internal use): do not print labels, Works only with --list.&quot;</span><span class="p">),</span>
+        <span class="kc">False</span> <span class="p">)</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat jobs &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+       
+    <span class="n">l_cfg_dir</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">PATHS</span><span class="o">.</span><span class="n">JOBPATH</span>
+    
+    <span class="c1"># list option : display all the available config files</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">list</span><span class="p">:</span>
+        <span class="k">for</span> <span class="n">cfg_dir</span> <span class="ow">in</span> <span class="n">l_cfg_dir</span><span class="p">:</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">no_label</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;------ </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">blue</span><span class="p">(</span><span class="n">cfg_dir</span><span class="p">))</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">cfg_dir</span><span class="p">):</span>
+                <span class="k">continue</span>
+            <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">cfg_dir</span><span class="p">)):</span>
+                <span class="k">if</span> <span class="ow">not</span> <span class="n">f</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.pyconf&#39;</span><span class="p">):</span>
+                    <span class="k">continue</span>
+                <span class="n">cfilename</span> <span class="o">=</span> <span class="n">f</span><span class="p">[:</span><span class="o">-</span><span class="mi">7</span><span class="p">]</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">cfilename</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;jobs command done&quot;</span><span class="p">)</span>
+
+    <span class="c1"># Make sure the jobs_config option has been called</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">jobs_cfg</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The option --jobs_config is required</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>      
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;KO&quot;</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
+    
+    <span class="c1"># Find the file in the directories, unless it is a full path</span>
+    <span class="c1"># merge all in a config</span>
+    <span class="n">merger</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">ConfigMerger</span><span class="p">()</span>
+    <span class="n">config_jobs</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Config</span><span class="p">()</span>
+    <span class="n">l_conf_files_path</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="k">for</span> <span class="n">config_file</span> <span class="ow">in</span> <span class="n">options</span><span class="o">.</span><span class="n">jobs_cfg</span><span class="p">:</span>
+        <span class="n">found</span><span class="p">,</span> <span class="n">file_jobs_cfg</span> <span class="o">=</span> <span class="n">get_config_file_path</span><span class="p">(</span><span class="n">config_file</span><span class="p">,</span> <span class="n">l_cfg_dir</span><span class="p">)</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="n">found</span><span class="p">:</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">The file configuration </span><span class="si">%s</span><span class="s2"> was not found.</span>
+<span class="s2">Use the --list option to get the possible files.</span><span class="se">\n</span><span class="s2">&quot;&quot;&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">config_file</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+            <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;KO&quot;</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
+        <span class="n">l_conf_files_path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">file_jobs_cfg</span><span class="p">)</span>
+        <span class="c1"># Read the config that is in the file</span>
+        <span class="n">one_config_jobs</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">read_config_from_a_file</span><span class="p">(</span><span class="n">file_jobs_cfg</span><span class="p">)</span>
+        <span class="n">merger</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">config_jobs</span><span class="p">,</span> <span class="n">one_config_jobs</span><span class="p">)</span>
+    
+    <span class="n">info</span> <span class="o">=</span> <span class="p">[(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Platform&quot;</span><span class="p">),</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">dist</span><span class="p">),</span>
+            <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Files containing the jobs configuration&quot;</span><span class="p">),</span> <span class="n">l_conf_files_path</span><span class="p">)]</span>    
+    <span class="n">UTS</span><span class="o">.</span><span class="n">logger_info_tuples</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">info</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">only_jobs</span><span class="p">:</span>
+        <span class="n">l_jb</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Sequence</span><span class="p">()</span>
+        <span class="k">for</span> <span class="n">jb</span> <span class="ow">in</span> <span class="n">config_jobs</span><span class="o">.</span><span class="n">jobs</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">jb</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">options</span><span class="o">.</span><span class="n">only_jobs</span><span class="p">:</span>
+                <span class="n">l_jb</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">jb</span><span class="p">,</span>
+                <span class="s2">&quot;Job that was given in only_jobs option parameters</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">config_jobs</span><span class="o">.</span><span class="n">jobs</span> <span class="o">=</span> <span class="n">l_jb</span>
+    
+    <span class="c1"># Parse the config jobs in order to develop all the factorized jobs</span>
+    <span class="n">develop_factorized_jobs</span><span class="p">(</span><span class="n">config_jobs</span><span class="p">)</span>
+    
+    <span class="c1"># Make a unique file that contain all the jobs in order to use it </span>
+    <span class="c1"># on every machine</span>
+    <span class="n">name_pyconf</span> <span class="o">=</span> <span class="s2">&quot;_&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">path</span><span class="p">)[:</span><span class="o">-</span><span class="nb">len</span><span class="p">(</span><span class="s1">&#39;.pyconf&#39;</span><span class="p">)]</span> 
+                            <span class="k">for</span> <span class="n">path</span> <span class="ow">in</span> <span class="n">l_conf_files_path</span><span class="p">])</span> <span class="o">+</span> <span class="s2">&quot;.pyconf&quot;</span>
+    <span class="n">path_pyconf</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_tmp_filename</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">name_pyconf</span><span class="p">)</span>
+    <span class="c1">#Save config</span>
+    <span class="n">f</span> <span class="o">=</span> <span class="n">file</span><span class="p">(</span> <span class="n">path_pyconf</span> <span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span>
+    <span class="n">config_jobs</span><span class="o">.</span><span class="n">__save__</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
+    
+    <span class="c1"># log the paramiko problems</span>
+    <span class="n">log_dir</span> <span class="o">=</span> <span class="n">UTS</span><span class="o">.</span><span class="n">get_log_path</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
+    <span class="n">paramiko_log_dir_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">log_dir</span><span class="p">,</span> <span class="s2">&quot;JOBS&quot;</span><span class="p">)</span>
+    <span class="n">UTS</span><span class="o">.</span><span class="n">ensure_path_exists</span><span class="p">(</span><span class="n">paramiko_log_dir_path</span><span class="p">)</span>
+    <span class="n">paramiko</span> <span class="o">=</span> <span class="n">getParamiko</span><span class="p">(</span><span class="n">logger</span><span class="p">)</span>
+    <span class="n">paramiko</span><span class="o">.</span><span class="n">util</span><span class="o">.</span><span class="n">log_to_file</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">paramiko_log_dir_path</span><span class="p">,</span>
+                                           <span class="n">logger</span><span class="o">.</span><span class="n">txtFileName</span><span class="p">))</span>
+    
+    <span class="c1"># Initialization</span>
+    <span class="n">today_jobs</span> <span class="o">=</span> <span class="n">Jobs</span><span class="p">(</span><span class="n">runner</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">path_pyconf</span><span class="p">,</span> <span class="n">config_jobs</span><span class="p">)</span>
+    
+    <span class="c1"># SSH connection to all machines</span>
+    <span class="n">today_jobs</span><span class="o">.</span><span class="n">ssh_connection_all_machines</span><span class="p">()</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">test_connection</span><span class="p">:</span>
+        <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;jobs ssh_connection done&quot;</span><span class="p">)</span>
+    
+    <span class="n">gui</span> <span class="o">=</span> <span class="kc">None</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">publish</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Initialize the xml boards : &quot;</span><span class="p">))</span>
+
+        <span class="c1"># Copy the stylesheets in the log directory </span>
+        <span class="n">log_dir</span> <span class="o">=</span> <span class="n">log_dir</span>
+        <span class="n">xsl_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">srcDir</span><span class="p">,</span> <span class="s1">&#39;xsl&#39;</span><span class="p">)</span>
+        <span class="n">files_to_copy</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="n">files_to_copy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">xsl_dir</span><span class="p">,</span> <span class="n">STYLESHEET_GLOBAL</span><span class="p">))</span>
+        <span class="n">files_to_copy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">xsl_dir</span><span class="p">,</span> <span class="n">STYLESHEET_BOARD</span><span class="p">))</span>
+        <span class="n">files_to_copy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">xsl_dir</span><span class="p">,</span> <span class="s2">&quot;command.xsl&quot;</span><span class="p">))</span>
+        <span class="n">files_to_copy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">xsl_dir</span><span class="p">,</span> <span class="s2">&quot;running.gif&quot;</span><span class="p">))</span>
+        <span class="k">for</span> <span class="n">file_path</span> <span class="ow">in</span> <span class="n">files_to_copy</span><span class="p">:</span>
+            <span class="c1"># OP We use copy instead of copy2 to update the creation date</span>
+            <span class="c1">#    So we can clean the LOGS directories easily</span>
+            <span class="n">shutil</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">log_dir</span><span class="p">)</span>
+        
+        <span class="c1"># Instanciate the Gui in order to produce the xml files that contain all</span>
+        <span class="c1"># the boards</span>
+        <span class="n">gui</span> <span class="o">=</span> <span class="n">Gui</span><span class="p">(</span><span class="n">log_dir</span><span class="p">,</span>
+                  <span class="n">today_jobs</span><span class="o">.</span><span class="n">ljobs</span><span class="p">,</span>
+                  <span class="n">today_jobs</span><span class="o">.</span><span class="n">ljobs_not_today</span><span class="p">,</span>
+                  <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">datehour</span><span class="p">,</span>
+                  <span class="n">logger</span><span class="p">,</span>
+                  <span class="n">file_boards</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">input_boards</span><span class="p">)</span>
+        
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;&lt;OK&gt;</span><span class="se">\n\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        
+        <span class="c1"># Display the list of the xml files</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">((</span><span class="s2">&quot;List of published files:</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">gui</span><span class="o">.</span><span class="n">xml_global_file</span><span class="o">.</span><span class="n">logFile</span><span class="p">)</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+        <span class="k">for</span> <span class="n">board</span> <span class="ow">in</span> <span class="n">gui</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
+            <span class="n">file_path</span> <span class="o">=</span> <span class="n">gui</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="p">[</span><span class="n">board</span><span class="p">]</span><span class="o">.</span><span class="n">logFile</span>
+            <span class="n">file_name</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">file_path</span><span class="p">)</span>
+            <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">file_path</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">add_link</span><span class="p">(</span><span class="n">file_name</span><span class="p">,</span> <span class="s2">&quot;board&quot;</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">board</span><span class="p">)</span>
+              
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        
+    <span class="n">today_jobs</span><span class="o">.</span><span class="n">gui</span> <span class="o">=</span> <span class="n">gui</span>
+    
+    <span class="n">interruped</span> <span class="o">=</span> <span class="kc">False</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="c1"># Run all the jobs contained in config_jobs</span>
+        <span class="n">today_jobs</span><span class="o">.</span><span class="n">run_jobs</span><span class="p">()</span>
+    <span class="k">except</span> <span class="ne">KeyboardInterrupt</span><span class="p">:</span>
+        <span class="n">interruped</span> <span class="o">=</span> <span class="kc">True</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">critical</span><span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;KeyboardInterrupt forced interruption&quot;</span><span class="p">)))</span>
+    <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+         <span class="c1"># verbose debug message with traceback</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Exception raised, the jobs loop has been interrupted:</span><span class="se">\n\n</span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">critical</span><span class="p">(</span><span class="n">msg</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">yellow</span><span class="p">(</span><span class="n">traceback</span><span class="o">.</span><span class="n">format_exc</span><span class="p">()))</span>    
+    <span class="k">finally</span><span class="p">:</span>
+        <span class="c1"># make clear kill subprocess</span>
+        <span class="n">res</span> <span class="o">=</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;jobs command finally done&quot;</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">interruped</span><span class="p">:</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Killing the running jobs and trying to get the corresponding logs</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="n">msg</span><span class="p">))</span>
+            <span class="n">res</span> <span class="o">=</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;KO&quot;</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
+            
+        <span class="c1"># find the potential not finished jobs and kill them</span>
+        <span class="k">for</span> <span class="n">jb</span> <span class="ow">in</span> <span class="n">today_jobs</span><span class="o">.</span><span class="n">ljobs</span><span class="p">:</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">jb</span><span class="o">.</span><span class="n">has_finished</span><span class="p">():</span>
+                <span class="n">res</span> <span class="o">+=</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;KO&quot;</span><span class="p">,</span> <span class="s2">&quot;job </span><span class="si">%s</span><span class="s2"> has not finished&quot;</span> <span class="o">%</span> <span class="n">jb</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+                <span class="k">try</span><span class="p">:</span>
+                    <span class="n">jb</span><span class="o">.</span><span class="n">kill_remote_process</span><span class="p">()</span>
+                <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+                    <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Failed to kill job </span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="p">(</span><span class="n">jb</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span>
+                    <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="n">msg</span><span class="p">))</span>
+                    <span class="n">res</span> <span class="o">+=</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;KO&quot;</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">jb</span><span class="o">.</span><span class="n">res_job</span> <span class="o">!=</span> <span class="s2">&quot;0&quot;</span><span class="p">:</span>
+                <span class="n">res</span> <span class="o">+=</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;KO&quot;</span><span class="p">,</span> <span class="s2">&quot;job </span><span class="si">%s</span><span class="s2"> fail&quot;</span> <span class="o">%</span> <span class="n">jb</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">interruped</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">today_jobs</span><span class="o">.</span><span class="n">gui</span><span class="p">:</span>
+                <span class="n">today_jobs</span><span class="o">.</span><span class="n">gui</span><span class="o">.</span><span class="n">last_update</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Forced interruption&quot;</span><span class="p">))</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">today_jobs</span><span class="o">.</span><span class="n">gui</span><span class="p">:</span>
+                <span class="n">today_jobs</span><span class="o">.</span><span class="n">gui</span><span class="o">.</span><span class="n">last_update</span><span class="p">()</span>
+        <span class="c1"># Output the results</span>
+        <span class="n">today_jobs</span><span class="o">.</span><span class="n">write_all_results</span><span class="p">()</span>
+        <span class="c1"># Remove the temporary pyconf file</span>
+        <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">path_pyconf</span><span class="p">):</span>
+            <span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">path_pyconf</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">res</span></div></div>
+  
+
+<div class="viewcode-block" id="Machine"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Machine">[docs]</a><span class="k">class</span> <span class="nc">Machine</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Manage a ssh connection on a machine</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
+                 <span class="n">name</span><span class="p">,</span>
+                 <span class="n">host</span><span class="p">,</span>
+                 <span class="n">user</span><span class="p">,</span>
+                 <span class="n">port</span><span class="o">=</span><span class="mi">22</span><span class="p">,</span>
+                 <span class="n">passwd</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+                 <span class="n">sat_path</span><span class="o">=</span><span class="s2">&quot;salomeTools&quot;</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">host</span> <span class="o">=</span> <span class="n">host</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">port</span> <span class="o">=</span> <span class="n">port</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">distribution</span> <span class="o">=</span> <span class="kc">None</span> <span class="c1"># Will be filled after copying SAT on the machine</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">user</span> <span class="o">=</span> <span class="n">user</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">password</span> <span class="o">=</span> <span class="n">passwd</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">sat_path</span> <span class="o">=</span> <span class="n">sat_path</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">paramiko</span> <span class="o">=</span> <span class="n">getParamiko</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">ssh</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">paramiko</span><span class="o">.</span><span class="n">SSHClient</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_connection_successful</span> <span class="o">=</span> <span class="kc">None</span>
+    
+<div class="viewcode-block" id="Machine.connect"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Machine.connect">[docs]</a>    <span class="k">def</span> <span class="nf">connect</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Initiate the ssh connection to the remote machine</span>
+<span class="sd">        </span>
+<span class="sd">        :param logger: The logger instance </span>
+<span class="sd">        :return: None</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">_connection_successful</span> <span class="o">=</span> <span class="kc">False</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">ssh</span><span class="o">.</span><span class="n">load_system_host_keys</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">ssh</span><span class="o">.</span><span class="n">set_missing_host_key_policy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">paramiko</span><span class="o">.</span><span class="n">AutoAddPolicy</span><span class="p">())</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">ssh</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">host</span><span class="p">,</span>
+                             <span class="n">port</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">port</span><span class="p">,</span>
+                             <span class="n">username</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">user</span><span class="p">,</span>
+                             <span class="n">password</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">password</span><span class="p">)</span>
+        <span class="k">except</span> <span class="bp">self</span><span class="o">.</span><span class="n">paramiko</span><span class="o">.</span><span class="n">AuthenticationException</span><span class="p">:</span>
+            <span class="n">message</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">KO_STATUS</span> <span class="o">+</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Authentication failed&quot;</span><span class="p">)</span>
+        <span class="k">except</span> <span class="bp">self</span><span class="o">.</span><span class="n">paramiko</span><span class="o">.</span><span class="n">BadHostKeyException</span><span class="p">:</span>
+            <span class="n">message</span> <span class="o">=</span> <span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">KO_STATUS</span> <span class="o">+</span> 
+                       <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The server&#39;s host key could not be verified&quot;</span><span class="p">))</span>
+        <span class="k">except</span> <span class="bp">self</span><span class="o">.</span><span class="n">paramiko</span><span class="o">.</span><span class="n">SSHException</span><span class="p">:</span>
+            <span class="n">message</span> <span class="o">=</span> <span class="p">(</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;SSHException error connecting or &quot;</span>
+                          <span class="s2">&quot;establishing an SSH session&quot;</span><span class="p">))</span>            
+        <span class="k">except</span><span class="p">:</span>
+            <span class="n">message</span> <span class="o">=</span> <span class="p">(</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Error connecting or establishing an SSH session&quot;</span><span class="p">))</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_connection_successful</span> <span class="o">=</span> <span class="kc">True</span>
+            <span class="n">message</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+        <span class="k">return</span> <span class="n">message</span></div>
+    
+<div class="viewcode-block" id="Machine.successfully_connected"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Machine.successfully_connected">[docs]</a>    <span class="k">def</span> <span class="nf">successfully_connected</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Verify if the connection to the remote machine has succeed</span>
+<span class="sd">        </span>
+<span class="sd">        :param logger: The logger instance </span>
+<span class="sd">        :return: (bool) True if the connection has succeed, False if not</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_connection_successful</span> <span class="o">==</span> <span class="kc">None</span><span class="p">:</span>
+            <span class="n">message</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">Ask if the connection</span>
+<span class="s2">(name: </span><span class="si">%(1)s</span><span class="s2"> host: </span><span class="si">%(2)s</span><span class="s2">, port: </span><span class="si">%(3)s</span><span class="s2">, user: </span><span class="si">%(4)s</span><span class="s2">) is OK</span>
+<span class="s2">whereas there were no connection request&quot;&quot;&quot;</span> <span class="o">%</span> \
+   <span class="p">{</span><span class="s2">&quot;1&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="s2">&quot;2&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">host</span><span class="p">,</span> <span class="s2">&quot;3&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">port</span><span class="p">,</span> <span class="s2">&quot;4&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">user</span><span class="p">}</span> <span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">critical</span><span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="n">message</span><span class="p">))</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_connection_successful</span></div>
+
+<div class="viewcode-block" id="Machine.copy_sat"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Machine.copy_sat">[docs]</a>    <span class="k">def</span> <span class="nf">copy_sat</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sat_local_path</span><span class="p">,</span> <span class="n">job_file</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Copy salomeTools to the remote machine in self.sat_path&quot;&quot;&quot;</span>
+        <span class="n">res</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="c1"># open a sftp connection</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">sftp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ssh</span><span class="o">.</span><span class="n">open_sftp</span><span class="p">()</span>
+            <span class="c1"># Create the sat directory on remote machine if it is not existing</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">mkdir</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sat_path</span><span class="p">,</span> <span class="n">ignore_existing</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+            <span class="c1"># Put sat</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">put_dir</span><span class="p">(</span><span class="n">sat_local_path</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">sat_path</span><span class="p">,</span> <span class="n">filters</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;.git&#39;</span><span class="p">])</span>
+            <span class="c1"># put the job configuration file in order to make it reachable </span>
+            <span class="c1"># on the remote machine</span>
+            <span class="n">remote_job_file_name</span> <span class="o">=</span> <span class="s2">&quot;.</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">job_file</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">sftp</span><span class="o">.</span><span class="n">put</span><span class="p">(</span><span class="n">job_file</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sat_path</span><span class="p">,</span> <span class="n">remote_job_file_name</span><span class="p">))</span>
+        <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+            <span class="n">res</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_connection_successful</span> <span class="o">=</span> <span class="kc">False</span>
+        
+        <span class="k">return</span> <span class="n">res</span></div>
+        
+<div class="viewcode-block" id="Machine.put_dir"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Machine.put_dir">[docs]</a>    <span class="k">def</span> <span class="nf">put_dir</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source</span><span class="p">,</span> <span class="n">target</span><span class="p">,</span> <span class="n">filters</span> <span class="o">=</span> <span class="p">[]):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Uploads the contents of the source directory to the target path.</span>
+<span class="sd">        The target directory needs to exists. </span>
+<span class="sd">        All sub-directories in source are created under target.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">source</span><span class="p">):</span>
+            <span class="k">if</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">filters</span><span class="p">:</span>
+                <span class="k">continue</span>
+            <span class="n">source_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">item</span><span class="p">)</span>
+            <span class="n">destination_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="n">item</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">islink</span><span class="p">(</span><span class="n">source_path</span><span class="p">):</span>
+                <span class="n">linkto</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">readlink</span><span class="p">(</span><span class="n">source_path</span><span class="p">)</span>
+                <span class="k">try</span><span class="p">:</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">sftp</span><span class="o">.</span><span class="n">symlink</span><span class="p">(</span><span class="n">linkto</span><span class="p">,</span> <span class="n">destination_path</span><span class="p">)</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">sftp</span><span class="o">.</span><span class="n">chmod</span><span class="p">(</span><span class="n">destination_path</span><span class="p">,</span>
+                                    <span class="n">os</span><span class="o">.</span><span class="n">stat</span><span class="p">(</span><span class="n">source_path</span><span class="p">)</span><span class="o">.</span><span class="n">st_mode</span><span class="p">)</span>
+                <span class="k">except</span> <span class="ne">IOError</span><span class="p">:</span>
+                    <span class="k">pass</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">source_path</span><span class="p">):</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">sftp</span><span class="o">.</span><span class="n">put</span><span class="p">(</span><span class="n">source_path</span><span class="p">,</span> <span class="n">destination_path</span><span class="p">)</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">sftp</span><span class="o">.</span><span class="n">chmod</span><span class="p">(</span><span class="n">destination_path</span><span class="p">,</span>
+                                    <span class="n">os</span><span class="o">.</span><span class="n">stat</span><span class="p">(</span><span class="n">source_path</span><span class="p">)</span><span class="o">.</span><span class="n">st_mode</span><span class="p">)</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">mkdir</span><span class="p">(</span><span class="n">destination_path</span><span class="p">,</span> <span class="n">ignore_existing</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">put_dir</span><span class="p">(</span><span class="n">source_path</span><span class="p">,</span> <span class="n">destination_path</span><span class="p">)</span></div>
+
+<div class="viewcode-block" id="Machine.mkdir"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Machine.mkdir">[docs]</a>    <span class="k">def</span> <span class="nf">mkdir</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="mi">511</span><span class="p">,</span> <span class="n">ignore_existing</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        As mkdir by adding an option to not fail if the folder exists </span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">sftp</span><span class="o">.</span><span class="n">mkdir</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">mode</span><span class="p">)</span>
+        <span class="k">except</span> <span class="ne">IOError</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">ignore_existing</span><span class="p">:</span>
+                <span class="k">pass</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="k">raise</span>       </div>
+    
+<div class="viewcode-block" id="Machine.exec_command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Machine.exec_command">[docs]</a>    <span class="k">def</span> <span class="nf">exec_command</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">command</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Execute the command on the remote machine</span>
+<span class="sd">        </span>
+<span class="sd">        :param command: (str) The command to be run</span>
+<span class="sd">        :param logger: The logger instance </span>
+<span class="sd">        :return: (paramiko.channel.ChannelFile, etc) </span>
+<span class="sd">          the stdin, stdout, and stderr of the executing command,</span>
+<span class="sd">          as a 3-tuple</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="kn">import</span> <span class="nn">traceback</span>
+        <span class="k">try</span><span class="p">:</span>        
+            <span class="c1"># Does not wait the end of the command</span>
+            <span class="p">(</span><span class="n">stdin</span><span class="p">,</span> <span class="n">stdout</span><span class="p">,</span> <span class="n">stderr</span><span class="p">)</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ssh</span><span class="o">.</span><span class="n">exec_command</span><span class="p">(</span><span class="n">command</span><span class="p">)</span>
+        <span class="k">except</span> <span class="bp">self</span><span class="o">.</span><span class="n">paramiko</span><span class="o">.</span><span class="n">SSHException</span><span class="p">:</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&lt;KO&gt;: the paramiko server failed to execute the command</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+            <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;command: &#39;</span><span class="si">%s</span><span class="s2">&#39;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">command</span>
+            <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">yellow</span><span class="p">(</span><span class="n">traceback</span><span class="o">.</span><span class="n">format_exc</span><span class="p">())</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">critical</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+            <span class="k">return</span> <span class="p">(</span><span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+        <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&lt;KO&gt;: an exception raised on ssh.exec_command:</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+            <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;command: &#39;</span><span class="si">%s</span><span class="s2">&#39;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">command</span>
+            <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">yellow</span><span class="p">(</span><span class="n">traceback</span><span class="o">.</span><span class="n">format_exc</span><span class="p">())</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">critical</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+            <span class="k">return</span> <span class="p">(</span><span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+        <span class="k">return</span> <span class="p">(</span><span class="n">stdin</span><span class="p">,</span> <span class="n">stdout</span><span class="p">,</span> <span class="n">stderr</span><span class="p">)</span></div>
+
+<div class="viewcode-block" id="Machine.close"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Machine.close">[docs]</a>    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Close the ssh connection&quot;&quot;&quot;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">ssh</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div>
+     
+<div class="viewcode-block" id="Machine.write_info"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Machine.write_info">[docs]</a>    <span class="k">def</span> <span class="nf">write_info</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Prints the informations relative to the machine in the logger </span>
+<span class="sd">        (terminal traces and log file)</span>
+<span class="sd">        </span>
+<span class="sd">        :param logger: The logger instance</span>
+<span class="sd">        :return: None</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">successfully_connected</span><span class="p">(</span><span class="n">logger</span><span class="p">):</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;&lt;OK&gt;&quot;</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;&lt;KO&gt;&quot;</span>
+        <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;host: </span><span class="si">%s</span><span class="s2">, &quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">host</span>
+        <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;port: </span><span class="si">%s</span><span class="s2">, &quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">port</span><span class="p">)</span>
+        <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;user: </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">user</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Connection </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">msg</span> <span class="p">)</span> </div></div>
+
+
+<div class="viewcode-block" id="Job"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Job">[docs]</a><span class="k">class</span> <span class="nc">Job</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Class to manage one job</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
+                 <span class="n">name</span><span class="p">,</span>
+                 <span class="n">machine</span><span class="p">,</span>
+                 <span class="n">application</span><span class="p">,</span>
+                 <span class="n">board</span><span class="p">,</span> 
+                 <span class="n">commands</span><span class="p">,</span>
+                 <span class="n">timeout</span><span class="p">,</span>
+                 <span class="n">config</span><span class="p">,</span>
+                 <span class="n">job_file_path</span><span class="p">,</span>
+                 <span class="n">logger</span><span class="p">,</span>
+                 <span class="n">after</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+                 <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">machine</span> <span class="o">=</span> <span class="n">machine</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">after</span> <span class="o">=</span> <span class="n">after</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">timeout</span> <span class="o">=</span> <span class="n">timeout</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">application</span> <span class="o">=</span> <span class="n">application</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">board</span> <span class="o">=</span> <span class="n">board</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">config</span> <span class="o">=</span> <span class="n">config</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span> <span class="o">=</span> <span class="n">logger</span>
+        <span class="c1"># The list of log files to download from the remote machine </span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">remote_log_files</span> <span class="o">=</span> <span class="p">[]</span>
+        
+        <span class="c1"># The remote command status</span>
+        <span class="c1"># -1 means that it has not been launched, </span>
+        <span class="c1"># 0 means success and 1 means fail</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">res_job</span> <span class="o">=</span> <span class="s2">&quot;-1&quot;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">cancelled</span> <span class="o">=</span> <span class="kc">False</span>
+        
+        <span class="bp">self</span><span class="o">.</span><span class="n">_T0</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_Tf</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_has_begun</span> <span class="o">=</span> <span class="kc">False</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_has_finished</span> <span class="o">=</span> <span class="kc">False</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_has_timouted</span> <span class="o">=</span> <span class="kc">False</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_stdin</span> <span class="o">=</span> <span class="kc">None</span> <span class="c1"># Store the command inputs field</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_stdout</span> <span class="o">=</span> <span class="kc">None</span> <span class="c1"># Store the command outputs field</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_stderr</span> <span class="o">=</span> <span class="kc">None</span> <span class="c1"># Store the command errors field</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">out</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">err</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+        
+        <span class="bp">self</span><span class="o">.</span><span class="n">name_remote_jobs_pyconf</span> <span class="o">=</span> <span class="s2">&quot;.</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">job_file_path</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">commands</span> <span class="o">=</span> <span class="n">commands</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">command</span> <span class="o">=</span> <span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">sat_path</span><span class="p">,</span> <span class="s2">&quot;sat&quot;</span><span class="p">)</span> <span class="o">+</span>
+                        <span class="s2">&quot; -l &quot;</span> <span class="o">+</span>
+                        <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">sat_path</span><span class="p">,</span>
+                                     <span class="s2">&quot;list_log_files.txt&quot;</span><span class="p">)</span> <span class="o">+</span>
+                        <span class="s2">&quot; job --jobs_config &quot;</span> <span class="o">+</span> 
+                        <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">sat_path</span><span class="p">,</span>
+                                     <span class="bp">self</span><span class="o">.</span><span class="n">name_remote_jobs_pyconf</span><span class="p">)</span> <span class="o">+</span>
+                        <span class="s2">&quot; --name &quot;</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">command</span> <span class="o">=</span> <span class="n">prefix</span> <span class="o">+</span> <span class="s1">&#39; &quot;&#39;</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">command</span> <span class="o">+</span><span class="s1">&#39;&quot;&#39;</span>
+    
+<div class="viewcode-block" id="Job.get_pids"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Job.get_pids">[docs]</a>    <span class="k">def</span> <span class="nf">get_pids</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Get the pid(s) corresponding to the command that have been launched</span>
+<span class="sd">        On the remote machine</span>
+<span class="sd">        </span>
+<span class="sd">        :return: (list) The list of integers corresponding to the found pids</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">pids</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="n">cmd_pid</span> <span class="o">=</span> <span class="s1">&#39;ps aux | grep &quot;&#39;</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">command</span> <span class="o">+</span> <span class="s1">&#39;&quot; | awk </span><span class="se">\&#39;</span><span class="s1">{print $2}</span><span class="se">\&#39;</span><span class="s1">&#39;</span>
+        <span class="p">(</span><span class="n">_</span><span class="p">,</span> <span class="n">out_pid</span><span class="p">,</span> <span class="n">_</span><span class="p">)</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">exec_command</span><span class="p">(</span><span class="n">cmd_pid</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>
+        <span class="n">pids_cmd</span> <span class="o">=</span> <span class="n">out_pid</span><span class="o">.</span><span class="n">readlines</span><span class="p">()</span>
+        <span class="n">pids_cmd</span> <span class="o">=</span> <span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">only_numbers</span><span class="p">(</span><span class="n">pid</span><span class="p">))</span> <span class="k">for</span> <span class="n">pid</span> <span class="ow">in</span> <span class="n">pids_cmd</span><span class="p">]</span>
+        <span class="n">pids</span><span class="o">+=</span><span class="n">pids_cmd</span>
+        <span class="k">return</span> <span class="n">pids</span></div>
+    
+<div class="viewcode-block" id="Job.kill_remote_process"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Job.kill_remote_process">[docs]</a>    <span class="k">def</span> <span class="nf">kill_remote_process</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wait</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Kills the process on the remote machine.</span>
+<span class="sd">        </span>
+<span class="sd">        :return: (str, str) the output of the kill, the error of the kill</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">pids</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_pids</span><span class="p">()</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">return</span> <span class="p">(</span><span class="s2">&quot;Unable to get the pid of the command.&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
+            
+        <span class="n">cmd_kill</span> <span class="o">=</span> <span class="s2">&quot; ; &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([(</span><span class="s2">&quot;kill -2 &quot;</span> <span class="o">+</span> <span class="n">pid</span><span class="p">)</span> <span class="k">for</span> <span class="n">pid</span> <span class="ow">in</span> <span class="n">pids</span><span class="p">])</span>
+        <span class="p">(</span><span class="n">_</span><span class="p">,</span> <span class="n">out_kill</span><span class="p">,</span> <span class="n">err_kill</span><span class="p">)</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">exec_command</span><span class="p">(</span><span class="n">cmd_kill</span><span class="p">,</span> 
+                                                            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>
+        <span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">wait</span><span class="p">)</span>
+        <span class="k">return</span> <span class="p">(</span><span class="n">out_kill</span><span class="o">.</span><span class="n">read</span><span class="p">()</span><span class="o">.</span><span class="n">decode</span><span class="p">(),</span> <span class="n">err_kill</span><span class="o">.</span><span class="n">read</span><span class="p">()</span><span class="o">.</span><span class="n">decode</span><span class="p">())</span></div>
+            
+<div class="viewcode-block" id="Job.has_begun"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Job.has_begun">[docs]</a>    <span class="k">def</span> <span class="nf">has_begun</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Returns True if the job has already begun</span>
+<span class="sd">        </span>
+<span class="sd">        :return: (bool) True if the job has already begun</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_has_begun</span></div>
+    
+<div class="viewcode-block" id="Job.has_finished"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Job.has_finished">[docs]</a>    <span class="k">def</span> <span class="nf">has_finished</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Returns True if the job has already finished </span>
+<span class="sd">        (i.e. all the commands have been executed)</span>
+<span class="sd">        If it is finished, the outputs are stored in the fields out and err.</span>
+<span class="sd">        </span>
+<span class="sd">        :return: (bool) True if the job has already finished</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        
+        <span class="c1"># If the method has already been called and returned True</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_has_finished</span><span class="p">:</span>
+            <span class="k">return</span> <span class="kc">True</span>
+        
+        <span class="c1"># If the job has not begun yet</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_begun</span><span class="p">():</span>
+            <span class="k">return</span> <span class="kc">False</span>
+        
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_stdout</span><span class="o">.</span><span class="n">channel</span><span class="o">.</span><span class="n">closed</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_has_finished</span> <span class="o">=</span> <span class="kc">True</span>
+            <span class="c1"># Store the result outputs</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">out</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_stdout</span><span class="o">.</span><span class="n">read</span><span class="p">()</span><span class="o">.</span><span class="n">decode</span><span class="p">()</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">err</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_stderr</span><span class="o">.</span><span class="n">read</span><span class="p">()</span><span class="o">.</span><span class="n">decode</span><span class="p">()</span>
+            <span class="c1"># Put end time</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_Tf</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
+            <span class="c1"># And get the remote command status and log files</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">get_log_files</span><span class="p">()</span>
+            <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">err</span> <span class="o">+=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Unable to get remote log files: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">e</span>
+        
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_has_finished</span></div>
+          
+<div class="viewcode-block" id="Job.get_log_files"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Job.get_log_files">[docs]</a>    <span class="k">def</span> <span class="nf">get_log_files</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Get the log files produced by the command launched </span>
+<span class="sd">        on the remote machine, and put it in the log directory of the user,</span>
+<span class="sd">        so they can be accessible from </span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="c1"># Do not get the files if the command is not finished</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_finished</span><span class="p">():</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Trying to get log files whereas the job is not finished.&quot;</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="n">msg</span><span class="p">))</span>
+            <span class="k">return</span>
+        
+        <span class="c1"># First get the file that contains the list of log files to get</span>
+        <span class="n">tmp_file_path</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_tmp_filename</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">,</span> <span class="s2">&quot;list_log_files.txt&quot;</span><span class="p">)</span>
+        <span class="n">remote_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">sat_path</span><span class="p">,</span> <span class="s2">&quot;list_log_files.txt&quot;</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">sftp</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">remote_path</span><span class="p">,</span> <span class="n">tmp_file_path</span><span class="p">)</span>
+        
+        <span class="c1"># Read the file and get the result of the command and all the log files</span>
+        <span class="c1"># to get</span>
+        <span class="n">fstream_tmp</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">tmp_file_path</span><span class="p">,</span> <span class="s2">&quot;r&quot;</span><span class="p">)</span>
+        <span class="n">file_lines</span> <span class="o">=</span> <span class="n">fstream_tmp</span><span class="o">.</span><span class="n">readlines</span><span class="p">()</span>
+        <span class="n">file_lines</span> <span class="o">=</span> <span class="p">[</span><span class="n">line</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">file_lines</span><span class="p">]</span>
+        <span class="n">fstream_tmp</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+        <span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">tmp_file_path</span><span class="p">)</span>
+        
+        <span class="k">try</span> <span class="p">:</span>
+            <span class="c1"># The first line is the result of the command (0 success or 1 fail)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">res_job</span> <span class="o">=</span> <span class="n">file_lines</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">err</span> <span class="o">+=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Unable to get status from remote file &#39;</span><span class="si">%(1)s</span><span class="s2">&#39;: </span><span class="si">%(2)s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> \
+                        <span class="p">{</span><span class="s2">&quot;1&quot;</span><span class="p">:</span> <span class="n">remote_path</span><span class="p">,</span> <span class="s2">&quot;2&quot;</span><span class="p">:</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)}</span>
+
+        <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">job_path_remote</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">file_lines</span><span class="p">[</span><span class="mi">1</span><span class="p">:]):</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="c1"># For each command, there is two files to get :</span>
+                <span class="c1"># 1- The xml file describing the command and giving the </span>
+                <span class="c1"># internal traces.</span>
+                <span class="c1"># 2- The txt file containing the system command traces (like </span>
+                <span class="c1"># traces produced by the &quot;make&quot; command)</span>
+                <span class="c1"># 3- In case of the test command, there is another file to get :</span>
+                <span class="c1"># the xml board that contain the test results</span>
+                <span class="n">dirname</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">job_path_remote</span><span class="p">))</span>
+                <span class="k">if</span> <span class="n">dirname</span> <span class="o">!=</span> <span class="s1">&#39;OUT&#39;</span> <span class="ow">and</span> <span class="n">dirname</span> <span class="o">!=</span> <span class="s1">&#39;TEST&#39;</span><span class="p">:</span>
+                    <span class="c1"># Case 1-</span>
+                    <span class="n">local_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span>
+                                                        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">logFilePath</span><span class="p">),</span>
+                                              <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">job_path_remote</span><span class="p">))</span>
+                    <span class="k">if</span> <span class="n">i</span><span class="o">==</span><span class="mi">0</span><span class="p">:</span> <span class="c1"># The first is the job command</span>
+                        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">add_link</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">job_path_remote</span><span class="p">),</span>
+                                             <span class="s2">&quot;job&quot;</span><span class="p">,</span>
+                                             <span class="bp">self</span><span class="o">.</span><span class="n">res_job</span><span class="p">,</span>
+                                             <span class="bp">self</span><span class="o">.</span><span class="n">command</span><span class="p">)</span> 
+                <span class="k">elif</span> <span class="n">dirname</span> <span class="o">==</span> <span class="s1">&#39;OUT&#39;</span><span class="p">:</span>
+                    <span class="c1"># Case 2-</span>
+                    <span class="n">local_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span>
+                                                        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">logFilePath</span><span class="p">),</span>
+                                              <span class="s1">&#39;OUT&#39;</span><span class="p">,</span>
+                                              <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">job_path_remote</span><span class="p">))</span>
+                <span class="k">elif</span> <span class="n">dirname</span> <span class="o">==</span> <span class="s1">&#39;TEST&#39;</span><span class="p">:</span>
+                    <span class="c1"># Case 3-</span>
+                    <span class="n">local_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span>
+                                                        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">logFilePath</span><span class="p">),</span>
+                                              <span class="s1">&#39;TEST&#39;</span><span class="p">,</span>
+                                              <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">job_path_remote</span><span class="p">))</span>
+                
+                <span class="c1"># Get the file</span>
+                <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">local_path</span><span class="p">):</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">sftp</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">job_path_remote</span><span class="p">,</span> <span class="n">local_path</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">remote_log_files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">local_path</span><span class="p">)</span>
+            <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">err</span> <span class="o">+=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Unable to get </span><span class="si">%(1)s</span><span class="s2"> log file from remote: </span><span class="si">%(2)s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> \
+                            <span class="p">{</span><span class="s2">&quot;1&quot;</span><span class="p">:</span> <span class="nb">str</span><span class="p">(</span><span class="n">job_path_remote</span><span class="p">),</span> <span class="s2">&quot;2&quot;</span><span class="p">:</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)}</span></div>
+
+<div class="viewcode-block" id="Job.has_failed"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Job.has_failed">[docs]</a>    <span class="k">def</span> <span class="nf">has_failed</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Returns True if the job has failed. </span>
+<span class="sd">        A job is considered as failed if the machine could not be reached,</span>
+<span class="sd">        if the remote command failed, </span>
+<span class="sd">        or if the job finished with a time out.</span>
+<span class="sd">        </span>
+<span class="sd">        :return: (bool) True if the job has failed</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_finished</span><span class="p">():</span>
+            <span class="k">return</span> <span class="kc">False</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">successfully_connected</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">):</span>
+            <span class="k">return</span> <span class="kc">True</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_timeout</span><span class="p">():</span>
+            <span class="k">return</span> <span class="kc">True</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">res_job</span> <span class="o">==</span> <span class="s2">&quot;1&quot;</span><span class="p">:</span>
+            <span class="k">return</span> <span class="kc">True</span>
+        <span class="k">return</span> <span class="kc">False</span></div>
+    
+<div class="viewcode-block" id="Job.cancel"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Job.cancel">[docs]</a>    <span class="k">def</span> <span class="nf">cancel</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        In case of a failing job, one has to cancel every job that depend on it.</span>
+<span class="sd">        This method put the job as failed and will not be executed.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">cancelled</span><span class="p">:</span>
+            <span class="k">return</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_has_begun</span> <span class="o">=</span> <span class="kc">True</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_has_finished</span> <span class="o">=</span> <span class="kc">True</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">cancelled</span> <span class="o">=</span> <span class="kc">True</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;This job was not launched because its father has failed.&quot;</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">out</span> <span class="o">+=</span> <span class="n">msg</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">err</span> <span class="o">+=</span> <span class="n">msg</span></div>
+
+<div class="viewcode-block" id="Job.is_running"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Job.is_running">[docs]</a>    <span class="k">def</span> <span class="nf">is_running</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Returns True if the job commands are running </span>
+<span class="sd">        </span>
+<span class="sd">        :return: (bool) True if the job is running</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_begun</span><span class="p">()</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_finished</span><span class="p">()</span></div>
+
+<div class="viewcode-block" id="Job.is_timeout"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Job.is_timeout">[docs]</a>    <span class="k">def</span> <span class="nf">is_timeout</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Returns True if the job commands has finished with timeout </span>
+<span class="sd">        </span>
+<span class="sd">        :return:  (bool) True if the job has finished with timeout</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_has_timouted</span></div>
+
+<div class="viewcode-block" id="Job.time_elapsed"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Job.time_elapsed">[docs]</a>    <span class="k">def</span> <span class="nf">time_elapsed</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Get the time elapsed since the job launching</span>
+<span class="sd">        </span>
+<span class="sd">        :return: The number of seconds</span>
+<span class="sd">        :rtype: int</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_begun</span><span class="p">():</span>
+            <span class="k">return</span> <span class="o">-</span><span class="mi">1</span>
+        <span class="n">T_now</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
+        <span class="k">return</span> <span class="n">T_now</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">_T0</span></div>
+    
+<div class="viewcode-block" id="Job.check_time"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Job.check_time">[docs]</a>    <span class="k">def</span> <span class="nf">check_time</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Verify that the job has not exceeded its timeout.</span>
+<span class="sd">        If it has, kill the remote command and consider the job as finished.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_begun</span><span class="p">():</span>
+            <span class="k">return</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">time_elapsed</span><span class="p">()</span> <span class="o">&gt;</span> <span class="bp">self</span><span class="o">.</span><span class="n">timeout</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_has_finished</span> <span class="o">=</span> <span class="kc">True</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_has_timouted</span> <span class="o">=</span> <span class="kc">True</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_Tf</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
+            <span class="p">(</span><span class="n">out_kill</span><span class="p">,</span> <span class="n">__</span><span class="p">)</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">kill_remote_process</span><span class="p">()</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">out</span> <span class="o">+=</span> <span class="s2">&quot;TIMEOUT </span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">out_kill</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">err</span> <span class="o">+=</span> <span class="s2">&quot;TIMEOUT : </span><span class="si">%s</span><span class="s2"> seconds elapsed</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">timeout</span><span class="p">)</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">get_log_files</span><span class="p">()</span>
+            <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">err</span> <span class="o">+=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Unable to get remote log files!</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span></div>
+            
+<div class="viewcode-block" id="Job.total_duration"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Job.total_duration">[docs]</a>    <span class="k">def</span> <span class="nf">total_duration</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Gives the total duration of the job</span>
+<span class="sd">        </span>
+<span class="sd">        :return: (int) the total duration of the job in seconds</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_Tf</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">_T0</span></div>
+        
+<div class="viewcode-block" id="Job.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Job.run">[docs]</a>    <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Launch the job by executing the remote command.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        
+        <span class="c1"># Prevent multiple run</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_begun</span><span class="p">():</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;A job can only be launched one time&quot;</span><span class="p">)</span>
+            <span class="n">msg2</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Trying to launch the job &#39;</span><span class="si">%s</span><span class="s2">&#39; whereas it has already been launched.&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span> <span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">msg</span><span class="p">,</span><span class="n">msg2</span><span class="p">))</span> <span class="p">)</span>
+            <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;KO&quot;</span><span class="p">,</span> <span class="n">msg2</span><span class="p">)</span>
+        
+        <span class="c1"># Do not execute the command if the machine could not be reached</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">successfully_connected</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_has_finished</span> <span class="o">=</span> <span class="kc">True</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">out</span> <span class="o">=</span> <span class="s2">&quot;N\A&quot;</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">err</span> <span class="o">+=</span> <span class="p">(</span><span class="s2">&quot;Connection to machine (name : </span><span class="si">%s</span><span class="s2">, host: </span><span class="si">%s</span><span class="s2">, port:&quot;</span>
+                        <span class="s2">&quot; </span><span class="si">%s</span><span class="s2">, user: </span><span class="si">%s</span><span class="s2">) has failed</span><span class="se">\n</span><span class="s2">Use the log command &quot;</span>
+                        <span class="s2">&quot;to get more information.&quot;</span>
+                        <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
+                           <span class="bp">self</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">host</span><span class="p">,</span>
+                           <span class="bp">self</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">port</span><span class="p">,</span>
+                           <span class="bp">self</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">user</span><span class="p">))</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="c1"># Usual case : Launch the command on remote machine</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_T0</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_stdin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_stdout</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_stderr</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">exec_command</span><span class="p">(</span>
+                                                                  <span class="bp">self</span><span class="o">.</span><span class="n">command</span><span class="p">,</span>
+                                                                  <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>
+            <span class="c1"># If the results are not initialized, finish the job</span>
+            <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_stdin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_stdout</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_stderr</span><span class="p">)</span> <span class="o">==</span> <span class="p">(</span><span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">):</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_has_finished</span> <span class="o">=</span> <span class="kc">True</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_Tf</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">out</span> <span class="o">+=</span> <span class="s2">&quot;N\A&quot;</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">err</span> <span class="o">+=</span> <span class="s2">&quot;The server failed to execute the command&quot;</span>
+        
+        <span class="c1"># Put the beginning flag to true.</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_has_begun</span> <span class="o">=</span> <span class="kc">True</span></div>
+    
+<div class="viewcode-block" id="Job.write_results"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Job.write_results">[docs]</a>    <span class="k">def</span> <span class="nf">write_results</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Display on the terminal all the job&#39;s information</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;name : </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">after</span><span class="p">:</span> 
+          <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;after : </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">after</span>
+        <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;Time elapsed : </span><span class="si">%4i</span><span class="s2">min </span><span class="si">%2i</span><span class="s2">s </span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">total_duration</span><span class="p">()</span><span class="o">//</span><span class="mi">60</span> <span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">total_duration</span><span class="p">()</span><span class="o">%</span><span class="mi">60</span><span class="p">)</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_T0</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
+            <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;Begin time : </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> \
+                   <span class="n">time</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y-%m-</span><span class="si">%d</span><span class="s1"> %H:%M:%S&#39;</span><span class="p">,</span> <span class="n">time</span><span class="o">.</span><span class="n">localtime</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_T0</span><span class="p">))</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_Tf</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
+            <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;End time   : </span><span class="si">%s</span><span class="se">\n\n</span><span class="s2">&quot;</span> <span class="o">%</span> \
+                   <span class="n">time</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y-%m-</span><span class="si">%d</span><span class="s1"> %H:%M:%S&#39;</span><span class="p">,</span> <span class="n">time</span><span class="o">.</span><span class="n">localtime</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_Tf</span><span class="p">))</span>
+        
+        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        
+        <span class="n">machine_head</span> <span class="o">=</span> <span class="s2">&quot;Informations about connection :</span><span class="se">\n</span><span class="s2">&quot;</span>
+        <span class="n">underline</span> <span class="o">=</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">machine_head</span><span class="p">)</span> <span class="o">-</span> <span class="mi">2</span><span class="p">)</span> <span class="o">*</span> <span class="s2">&quot;-&quot;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">machine_head</span><span class="o">+</span><span class="n">underline</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">write_info</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>
+        
+        <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;out : </span><span class="se">\n</span><span class="s2">&quot;</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">out</span> <span class="o">==</span> <span class="s2">&quot;&quot;</span><span class="p">:</span>
+            <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;Unable to get output</span><span class="se">\n</span><span class="s2">&quot;</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">msg</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">out</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span>
+        <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;err :</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">err</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span></div>
+        
+<div class="viewcode-block" id="Job.get_status"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Job.get_status">[docs]</a>    <span class="k">def</span> <span class="nf">get_status</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Get the status of the job (used by the Gui for xml display)</span>
+<span class="sd">        </span>
+<span class="sd">        :return: (str) The current status of the job</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">successfully_connected</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">):</span>
+            <span class="k">return</span> <span class="s2">&quot;SSH connection KO&quot;</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_begun</span><span class="p">():</span>
+            <span class="k">return</span> <span class="s2">&quot;Not launched&quot;</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">cancelled</span><span class="p">:</span>
+            <span class="k">return</span> <span class="s2">&quot;Cancelled&quot;</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_running</span><span class="p">():</span>
+            <span class="k">return</span> <span class="s2">&quot;running since &quot;</span> <span class="o">+</span> <span class="n">time</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y-%m-</span><span class="si">%d</span><span class="s1"> %H:%M:%S&#39;</span><span class="p">,</span> <span class="n">time</span><span class="o">.</span><span class="n">localtime</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_T0</span><span class="p">))</span>        
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_finished</span><span class="p">():</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_timeout</span><span class="p">():</span>
+                <span class="k">return</span> <span class="s2">&quot;Timeout since &quot;</span> <span class="o">+</span> <span class="n">time</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y-%m-</span><span class="si">%d</span><span class="s1"> %H:%M:%S&#39;</span><span class="p">,</span> <span class="n">time</span><span class="o">.</span><span class="n">localtime</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_Tf</span><span class="p">))</span>
+            <span class="k">return</span> <span class="s2">&quot;Finished since &quot;</span> <span class="o">+</span> <span class="n">time</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y-%m-</span><span class="si">%d</span><span class="s1"> %H:%M:%S&#39;</span><span class="p">,</span> <span class="n">time</span><span class="o">.</span><span class="n">localtime</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_Tf</span><span class="p">))</span></div></div>
+    
+<div class="viewcode-block" id="Jobs"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Jobs">[docs]</a><span class="k">class</span> <span class="nc">Jobs</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Class to manage the jobs to be run</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
+                 <span class="n">runner</span><span class="p">,</span>
+                 <span class="n">logger</span><span class="p">,</span>
+                 <span class="n">job_file_path</span><span class="p">,</span>
+                 <span class="n">config_jobs</span><span class="p">,</span>
+                 <span class="n">lenght_columns</span> <span class="o">=</span> <span class="mi">20</span><span class="p">):</span>
+        <span class="c1"># The jobs configuration</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">cfg_jobs</span> <span class="o">=</span> <span class="n">config_jobs</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">job_file_path</span> <span class="o">=</span> <span class="n">job_file_path</span>
+        <span class="c1"># The machine that will be used today</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">lmachines</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="c1"># The list of machine (hosts, port) that will be used today </span>
+        <span class="c1"># (a same host can have several machine instances since there </span>
+        <span class="c1"># can be several ssh parameters) </span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">lhosts</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="c1"># The jobs to be launched today </span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">ljobs</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="c1"># The jobs that will not be launched today</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">ljobs_not_today</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">runner</span> <span class="o">=</span> <span class="n">runner</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span> <span class="o">=</span> <span class="n">logger</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">len_columns</span> <span class="o">=</span> <span class="n">lenght_columns</span>
+        
+        <span class="c1"># the list of jobs that have not been run yet</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_l_jobs_not_started</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="c1"># the list of jobs that have already ran </span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_l_jobs_finished</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="c1"># the list of jobs that are running </span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_l_jobs_running</span> <span class="o">=</span> <span class="p">[]</span> 
+                
+        <span class="bp">self</span><span class="o">.</span><span class="n">determine_jobs_and_machines</span><span class="p">()</span>
+    
+<div class="viewcode-block" id="Jobs.define_job"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Jobs.define_job">[docs]</a>    <span class="k">def</span> <span class="nf">define_job</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">job_def</span><span class="p">,</span> <span class="n">machine</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Takes a pyconf job definition and a machine (from class machine)</span>
+<span class="sd">        and returns the job instance corresponding to the definition.</span>
+<span class="sd">        </span>
+<span class="sd">        :param job_def: (Mapping a job definition </span>
+<span class="sd">        :param machine: (Machine) the machine on which the job will run</span>
+<span class="sd">        :return: (Job) The corresponding job in a job class instance</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">name</span> <span class="o">=</span> <span class="n">job_def</span><span class="o">.</span><span class="n">name</span>
+        <span class="n">cmmnds</span> <span class="o">=</span> <span class="n">job_def</span><span class="o">.</span><span class="n">commands</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="s2">&quot;timeout&quot;</span> <span class="ow">in</span> <span class="n">job_def</span><span class="p">:</span>
+            <span class="n">timeout</span> <span class="o">=</span> <span class="mi">4</span><span class="o">*</span><span class="mi">60</span><span class="o">*</span><span class="mi">60</span> <span class="c1"># default timeout = 4h</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">timeout</span> <span class="o">=</span> <span class="n">job_def</span><span class="o">.</span><span class="n">timeout</span>
+        <span class="n">after</span> <span class="o">=</span> <span class="kc">None</span>
+        <span class="k">if</span> <span class="s1">&#39;after&#39;</span> <span class="ow">in</span> <span class="n">job_def</span><span class="p">:</span>
+            <span class="n">after</span> <span class="o">=</span> <span class="n">job_def</span><span class="o">.</span><span class="n">after</span>
+        <span class="n">application</span> <span class="o">=</span> <span class="kc">None</span>
+        <span class="k">if</span> <span class="s1">&#39;application&#39;</span> <span class="ow">in</span> <span class="n">job_def</span><span class="p">:</span>
+            <span class="n">application</span> <span class="o">=</span> <span class="n">job_def</span><span class="o">.</span><span class="n">application</span>
+        <span class="n">board</span> <span class="o">=</span> <span class="kc">None</span>
+        <span class="k">if</span> <span class="s1">&#39;board&#39;</span> <span class="ow">in</span> <span class="n">job_def</span><span class="p">:</span>
+            <span class="n">board</span> <span class="o">=</span> <span class="n">job_def</span><span class="o">.</span><span class="n">board</span>
+        <span class="n">prefix</span> <span class="o">=</span> <span class="kc">None</span>
+        <span class="k">if</span> <span class="s2">&quot;prefix&quot;</span> <span class="ow">in</span> <span class="n">job_def</span><span class="p">:</span>
+            <span class="n">prefix</span> <span class="o">=</span> <span class="n">job_def</span><span class="o">.</span><span class="n">prefix</span>
+            
+        <span class="k">return</span> <span class="n">Job</span><span class="p">(</span><span class="n">name</span><span class="p">,</span>
+                   <span class="n">machine</span><span class="p">,</span>
+                   <span class="n">application</span><span class="p">,</span>
+                   <span class="n">board</span><span class="p">,</span>
+                   <span class="n">cmmnds</span><span class="p">,</span>
+                   <span class="n">timeout</span><span class="p">,</span>
+                   <span class="bp">self</span><span class="o">.</span><span class="n">runner</span><span class="o">.</span><span class="n">cfg</span><span class="p">,</span>
+                   <span class="bp">self</span><span class="o">.</span><span class="n">job_file_path</span><span class="p">,</span>
+                   <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">,</span>
+                   <span class="n">after</span> <span class="o">=</span> <span class="n">after</span><span class="p">,</span>
+                   <span class="n">prefix</span> <span class="o">=</span> <span class="n">prefix</span><span class="p">)</span></div>
+    
+<div class="viewcode-block" id="Jobs.determine_jobs_and_machines"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Jobs.determine_jobs_and_machines">[docs]</a>    <span class="k">def</span> <span class="nf">determine_jobs_and_machines</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Reads the pyconf jobs definition and instantiates all</span>
+<span class="sd">        the machines and jobs to be done today.</span>
+
+<span class="sd">        :return: None</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">today</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">date</span><span class="o">.</span><span class="n">weekday</span><span class="p">(</span><span class="n">datetime</span><span class="o">.</span><span class="n">date</span><span class="o">.</span><span class="n">today</span><span class="p">())</span>
+        <span class="n">host_list</span> <span class="o">=</span> <span class="p">[]</span>
+               
+        <span class="k">for</span> <span class="n">job_def</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">cfg_jobs</span><span class="o">.</span><span class="n">jobs</span> <span class="p">:</span>
+                
+            <span class="k">if</span> <span class="ow">not</span> <span class="s2">&quot;machine&quot;</span> <span class="ow">in</span> <span class="n">job_def</span><span class="p">:</span>
+                <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">The job &#39;</span><span class="si">%s</span><span class="s2">&#39; do not have the key &#39;machine&#39;.</span>
+<span class="s2">This job is ignored.</span>
+<span class="s2">&quot;&quot;&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">job_def</span><span class="o">.</span><span class="n">name</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+                <span class="k">continue</span>
+            <span class="n">name_machine</span> <span class="o">=</span> <span class="n">job_def</span><span class="o">.</span><span class="n">machine</span>
+            
+            <span class="n">a_machine</span> <span class="o">=</span> <span class="kc">None</span>
+            <span class="k">for</span> <span class="n">mach</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">lmachines</span><span class="p">:</span>
+                <span class="k">if</span> <span class="n">mach</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="n">name_machine</span><span class="p">:</span>
+                    <span class="n">a_machine</span> <span class="o">=</span> <span class="n">mach</span>
+                    <span class="k">break</span>
+            
+            <span class="k">if</span> <span class="n">a_machine</span> <span class="o">==</span> <span class="kc">None</span><span class="p">:</span>
+                <span class="k">for</span> <span class="n">machine_def</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">cfg_jobs</span><span class="o">.</span><span class="n">machines</span><span class="p">:</span>
+                    <span class="k">if</span> <span class="n">machine_def</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="n">name_machine</span><span class="p">:</span>
+                        <span class="k">if</span> <span class="s1">&#39;host&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">machine_def</span><span class="p">:</span>
+                            <span class="n">host</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">runner</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">hostname</span>
+                        <span class="k">else</span><span class="p">:</span>
+                            <span class="n">host</span> <span class="o">=</span> <span class="n">machine_def</span><span class="o">.</span><span class="n">host</span>
+
+                        <span class="k">if</span> <span class="s1">&#39;user&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">machine_def</span><span class="p">:</span>
+                            <span class="n">user</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">runner</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">user</span>
+                        <span class="k">else</span><span class="p">:</span>
+                            <span class="n">user</span> <span class="o">=</span> <span class="n">machine_def</span><span class="o">.</span><span class="n">user</span>
+
+                        <span class="k">if</span> <span class="s1">&#39;port&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">machine_def</span><span class="p">:</span>
+                            <span class="n">port</span> <span class="o">=</span> <span class="mi">22</span>
+                        <span class="k">else</span><span class="p">:</span>
+                            <span class="n">port</span> <span class="o">=</span> <span class="n">machine_def</span><span class="o">.</span><span class="n">port</span>
+            
+                        <span class="k">if</span> <span class="s1">&#39;password&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">machine_def</span><span class="p">:</span>
+                            <span class="n">passwd</span> <span class="o">=</span> <span class="kc">None</span>
+                        <span class="k">else</span><span class="p">:</span>
+                            <span class="n">passwd</span> <span class="o">=</span> <span class="n">machine_def</span><span class="o">.</span><span class="n">password</span>    
+                            
+                        <span class="k">if</span> <span class="s1">&#39;sat_path&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">machine_def</span><span class="p">:</span>
+                            <span class="n">sat_path</span> <span class="o">=</span> <span class="s2">&quot;salomeTools&quot;</span>
+                        <span class="k">else</span><span class="p">:</span>
+                            <span class="n">sat_path</span> <span class="o">=</span> <span class="n">machine_def</span><span class="o">.</span><span class="n">sat_path</span>
+                        
+                        <span class="n">a_machine</span> <span class="o">=</span> <span class="n">Machine</span><span class="p">(</span>
+                                            <span class="n">machine_def</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
+                                            <span class="n">host</span><span class="p">,</span>
+                                            <span class="n">user</span><span class="p">,</span>
+                                            <span class="n">port</span><span class="o">=</span><span class="n">port</span><span class="p">,</span>
+                                            <span class="n">passwd</span><span class="o">=</span><span class="n">passwd</span><span class="p">,</span>
+                                            <span class="n">sat_path</span><span class="o">=</span><span class="n">sat_path</span>
+                                            <span class="p">)</span>
+                        
+                        <span class="bp">self</span><span class="o">.</span><span class="n">lmachines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">a_machine</span><span class="p">)</span>
+                        <span class="k">if</span> <span class="p">(</span><span class="n">host</span><span class="p">,</span> <span class="n">port</span><span class="p">)</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">host_list</span><span class="p">:</span>
+                            <span class="n">host_list</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">host</span><span class="p">,</span> <span class="n">port</span><span class="p">))</span>
+                
+                <span class="k">if</span> <span class="n">a_machine</span> <span class="o">==</span> <span class="kc">None</span><span class="p">:</span>
+                    <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">The job &#39;</span><span class="si">%(job)s</span><span class="s2">&#39; requires the machine &#39;</span><span class="si">%(machine)s</span><span class="s2">&#39;.</span>
+<span class="s2">This machine is not defined in the configuration file.</span>
+<span class="s2">The job will not be launched.</span>
+<span class="s2">&quot;&quot;&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="p">{</span><span class="s2">&quot;job&quot;</span> <span class="p">:</span> <span class="n">job_def</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="s2">&quot;machine&quot;</span> <span class="p">:</span> <span class="n">name_machine</span><span class="p">}</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+                    <span class="k">continue</span>
+                                  
+            <span class="n">a_job</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">define_job</span><span class="p">(</span><span class="n">job_def</span><span class="p">,</span> <span class="n">a_machine</span><span class="p">)</span>
+                
+            <span class="k">if</span> <span class="n">today</span> <span class="ow">in</span> <span class="n">job_def</span><span class="o">.</span><span class="n">when</span><span class="p">:</span>    
+                <span class="bp">self</span><span class="o">.</span><span class="n">ljobs</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">a_job</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span> <span class="c1"># today in job_def.when</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">ljobs_not_today</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">a_job</span><span class="p">)</span>
+               
+        <span class="bp">self</span><span class="o">.</span><span class="n">lhosts</span> <span class="o">=</span> <span class="n">host_list</span></div>
+        
+<div class="viewcode-block" id="Jobs.ssh_connection_all_machines"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Jobs.ssh_connection_all_machines">[docs]</a>    <span class="k">def</span> <span class="nf">ssh_connection_all_machines</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pad</span><span class="o">=</span><span class="mi">50</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Do the ssh connection to every machine to be used today.</span>
+
+<span class="sd">        :return: None</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span> <span class="s2">&quot;Establishing connection with all the machines :</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="k">for</span> <span class="n">machine</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">lmachines</span><span class="p">:</span>
+            <span class="c1"># little algorithm in order to display traces</span>
+            <span class="n">begin_line</span> <span class="o">=</span> <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Connection to </span><span class="si">%s</span><span class="s2">: &quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">machine</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">pad</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">begin_line</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">:</span>
+                <span class="n">endline</span> <span class="o">=</span> <span class="s2">&quot; &quot;</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">endline</span> <span class="o">=</span> <span class="p">(</span><span class="n">pad</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">begin_line</span><span class="p">))</span> <span class="o">*</span> <span class="s2">&quot;.&quot;</span> <span class="o">+</span> <span class="s2">&quot; &quot;</span>
+            
+            <span class="n">step</span> <span class="o">=</span> <span class="s2">&quot;SSH connection&quot;</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span> <span class="n">begin_line</span> <span class="o">+</span> <span class="n">endline</span> <span class="o">+</span> <span class="n">step</span><span class="p">)</span>
+            <span class="c1"># the call to the method that initiate the ssh connection</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="n">machine</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>
+            
+            <span class="c1"># Copy salomeTools to the remote machine</span>
+            <span class="k">if</span> <span class="n">machine</span><span class="o">.</span><span class="n">successfully_connected</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">):</span>
+                <span class="n">step</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Remove SAT&quot;</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\r</span><span class="si">%s%s%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">begin_line</span><span class="p">,</span> <span class="n">endline</span><span class="p">,</span> <span class="mi">20</span> <span class="o">*</span> <span class="s2">&quot; &quot;</span><span class="p">))</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\r</span><span class="si">%s%s%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">begin_line</span><span class="p">,</span> <span class="n">endline</span><span class="p">,</span> <span class="n">step</span><span class="p">))</span>
+                <span class="p">(</span><span class="n">__</span><span class="p">,</span> <span class="n">out_dist</span><span class="p">,</span> <span class="n">__</span><span class="p">)</span> <span class="o">=</span> <span class="n">machine</span><span class="o">.</span><span class="n">exec_command</span><span class="p">(</span>
+                            <span class="s2">&quot;rm -rf </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">machine</span><span class="o">.</span><span class="n">sat_path</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>
+                <span class="n">out_dist</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
+                
+                <span class="n">step</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Copy SAT&quot;</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\r</span><span class="si">%s%s%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">begin_line</span><span class="p">,</span> <span class="n">endline</span><span class="p">,</span> <span class="mi">20</span> <span class="o">*</span> <span class="s2">&quot; &quot;</span><span class="p">))</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\r</span><span class="si">%s%s%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">begin_line</span><span class="p">,</span> <span class="n">endline</span><span class="p">,</span> <span class="n">step</span><span class="p">))</span>
+
+                <span class="n">res_copy</span> <span class="o">=</span> <span class="n">machine</span><span class="o">.</span><span class="n">copy_sat</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">runner</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">salometoolsway</span><span class="p">,</span>
+                                            <span class="bp">self</span><span class="o">.</span><span class="n">job_file_path</span><span class="p">)</span>
+
+                <span class="c1"># set the local settings of sat on the remote machine using</span>
+                <span class="c1"># the init command</span>
+                <span class="p">(</span><span class="n">__</span><span class="p">,</span> <span class="n">out_dist</span><span class="p">,</span> <span class="n">__</span><span class="p">)</span> <span class="o">=</span> <span class="n">machine</span><span class="o">.</span><span class="n">exec_command</span><span class="p">(</span>
+                                <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">machine</span><span class="o">.</span><span class="n">sat_path</span><span class="p">,</span>
+                                    <span class="s2">&quot;sat init --base default --workdir&quot;</span>
+                                    <span class="s2">&quot; default --log_dir default&quot;</span><span class="p">),</span>
+                                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>
+                <span class="n">out_dist</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>    
+                
+                <span class="c1"># get the remote machine distribution using a sat command</span>
+                <span class="p">(</span><span class="n">__</span><span class="p">,</span> <span class="n">out_dist</span><span class="p">,</span> <span class="n">__</span><span class="p">)</span> <span class="o">=</span> <span class="n">machine</span><span class="o">.</span><span class="n">exec_command</span><span class="p">(</span>
+                                <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">machine</span><span class="o">.</span><span class="n">sat_path</span><span class="p">,</span>
+                                    <span class="s2">&quot;sat config --value VARS.dist --no_label&quot;</span><span class="p">),</span>
+                                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>
+                <span class="n">machine</span><span class="o">.</span><span class="n">distribution</span> <span class="o">=</span> <span class="n">out_dist</span><span class="o">.</span><span class="n">read</span><span class="p">()</span><span class="o">.</span><span class="n">decode</span><span class="p">()</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span>
+                                                                        <span class="s2">&quot;&quot;</span><span class="p">)</span>
+                
+                <span class="c1"># Print the status of the copy</span>
+                <span class="k">if</span> <span class="n">res_copy</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\r</span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> \
+                                <span class="p">((</span><span class="nb">len</span><span class="p">(</span><span class="n">begin_line</span><span class="p">)</span><span class="o">+</span><span class="nb">len</span><span class="p">(</span><span class="n">endline</span><span class="p">)</span><span class="o">+</span><span class="mi">20</span><span class="p">)</span> <span class="o">*</span> <span class="s2">&quot; &quot;</span><span class="p">))</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\r</span><span class="si">%s%s%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">begin_line</span><span class="p">,</span> <span class="n">endline</span><span class="p">,</span> <span class="s2">&quot;&lt;OK&gt;&quot;</span><span class="p">))</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\r</span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> \
+                            <span class="p">((</span><span class="nb">len</span><span class="p">(</span><span class="n">begin_line</span><span class="p">)</span><span class="o">+</span><span class="nb">len</span><span class="p">(</span><span class="n">endline</span><span class="p">)</span><span class="o">+</span><span class="mi">20</span><span class="p">)</span> <span class="o">*</span> <span class="s2">&quot; &quot;</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\r</span><span class="si">%s%s%s</span><span class="s1"> </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> \
+                        <span class="p">(</span><span class="n">begin_line</span><span class="p">,</span> <span class="n">endline</span><span class="p">,</span> <span class="s2">&quot;&lt;KO&gt;&quot;</span><span class="p">,</span>
+                         <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Copy of SAT failed: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">res_copy</span><span class="p">))</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\r</span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> 
+                                  <span class="p">((</span><span class="nb">len</span><span class="p">(</span><span class="n">begin_line</span><span class="p">)</span><span class="o">+</span><span class="nb">len</span><span class="p">(</span><span class="n">endline</span><span class="p">)</span><span class="o">+</span><span class="mi">20</span><span class="p">)</span> <span class="o">*</span> <span class="s2">&quot; &quot;</span><span class="p">))</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\r</span><span class="si">%s%s%s</span><span class="s1"> </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">begin_line</span><span class="p">,</span> <span class="n">endline</span><span class="p">,</span> <span class="s2">&quot;&lt;KO&gt;&quot;</span><span class="p">,</span> <span class="n">msg</span><span class="p">))</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+                
+        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span></div>
+        
+
+<div class="viewcode-block" id="Jobs.is_occupied"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Jobs.is_occupied">[docs]</a>    <span class="k">def</span> <span class="nf">is_occupied</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">hostname</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Returns True if a job is running on </span>
+<span class="sd">        the machine defined by its host and its port.</span>
+<span class="sd">        </span>
+<span class="sd">        :param hostname: (str, int) the pair (host, port)</span>
+<span class="sd">        :return: (Job or bool) </span>
+<span class="sd">          the job that is running on the host, </span>
+<span class="sd">          or false if there is no job running on the host. </span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">host</span> <span class="o">=</span> <span class="n">hostname</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="n">port</span> <span class="o">=</span> <span class="n">hostname</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+        <span class="k">for</span> <span class="n">jb</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">ljobs</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">jb</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">host</span> <span class="o">==</span> <span class="n">host</span> <span class="ow">and</span> <span class="n">jb</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">port</span> <span class="o">==</span> <span class="n">port</span><span class="p">:</span>
+                <span class="k">if</span> <span class="n">jb</span><span class="o">.</span><span class="n">is_running</span><span class="p">():</span>
+                    <span class="k">return</span> <span class="n">jb</span>
+        <span class="k">return</span> <span class="kc">False</span></div>
+    
+<div class="viewcode-block" id="Jobs.update_jobs_states_list"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Jobs.update_jobs_states_list">[docs]</a>    <span class="k">def</span> <span class="nf">update_jobs_states_list</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Updates the lists that store the currently</span>
+<span class="sd">        running jobs and the jobs that have already finished.</span>
+<span class="sd">        </span>
+<span class="sd">        :return: None</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">jobs_finished_list</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="n">jobs_running_list</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="k">for</span> <span class="n">jb</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">ljobs</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">jb</span><span class="o">.</span><span class="n">is_running</span><span class="p">():</span>
+                <span class="n">jobs_running_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">jb</span><span class="p">)</span>
+                <span class="n">jb</span><span class="o">.</span><span class="n">check_time</span><span class="p">()</span>
+            <span class="k">if</span> <span class="n">jb</span><span class="o">.</span><span class="n">has_finished</span><span class="p">():</span>
+                <span class="n">jobs_finished_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">jb</span><span class="p">)</span>
+        
+        <span class="n">nb_job_finished_before</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_l_jobs_finished</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_l_jobs_finished</span> <span class="o">=</span> <span class="n">jobs_finished_list</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_l_jobs_running</span> <span class="o">=</span> <span class="n">jobs_running_list</span>
+        
+        <span class="n">nb_job_finished_now</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_l_jobs_finished</span><span class="p">)</span>
+        
+        <span class="k">return</span> <span class="n">nb_job_finished_now</span> <span class="o">&gt;</span> <span class="n">nb_job_finished_before</span></div>
+    
+<div class="viewcode-block" id="Jobs.cancel_dependencies_of_failing_jobs"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Jobs.cancel_dependencies_of_failing_jobs">[docs]</a>    <span class="k">def</span> <span class="nf">cancel_dependencies_of_failing_jobs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Cancels all the jobs that depend on a failing one.</span>
+<span class="sd">        </span>
+<span class="sd">        :return: None</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        
+        <span class="k">for</span> <span class="n">job</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">ljobs</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">job</span><span class="o">.</span><span class="n">after</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+                <span class="k">continue</span>
+            <span class="n">father_job</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">find_job_that_has_name</span><span class="p">(</span><span class="n">job</span><span class="o">.</span><span class="n">after</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">father_job</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">father_job</span><span class="o">.</span><span class="n">has_failed</span><span class="p">():</span>
+                <span class="n">job</span><span class="o">.</span><span class="n">cancel</span><span class="p">()</span></div>
+    
+<div class="viewcode-block" id="Jobs.find_job_that_has_name"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Jobs.find_job_that_has_name">[docs]</a>    <span class="k">def</span> <span class="nf">find_job_that_has_name</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Returns the job by its name.</span>
+<span class="sd">        </span>
+<span class="sd">        :param name: (str) a job name</span>
+<span class="sd">        :return: (Job) the job that has the name. </span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">for</span> <span class="n">jb</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">ljobs</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">jb</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="n">name</span><span class="p">:</span>
+                <span class="k">return</span> <span class="n">jb</span>
+        <span class="c1"># the following is executed only if the job was not found</span>
+        <span class="k">return</span> <span class="kc">None</span></div>
+    
+<div class="viewcode-block" id="Jobs.str_of_length"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Jobs.str_of_length">[docs]</a>    <span class="k">def</span> <span class="nf">str_of_length</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">length</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Takes a string text of any length and returns </span>
+<span class="sd">        the most close string of length &quot;length&quot;.</span>
+<span class="sd">        </span>
+<span class="sd">        :param text: (str) any string</span>
+<span class="sd">        :param length: (int) a length for the returned string</span>
+<span class="sd">        :return: (str) the most close string of length &quot;length&quot;</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">text</span><span class="p">)</span> <span class="o">&gt;</span> <span class="n">length</span><span class="p">:</span>
+            <span class="n">text_out</span> <span class="o">=</span> <span class="n">text</span><span class="p">[:</span><span class="n">length</span><span class="o">-</span><span class="mi">3</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;...&#39;</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">diff</span> <span class="o">=</span> <span class="n">length</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
+            <span class="n">before</span> <span class="o">=</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="p">(</span><span class="n">diff</span><span class="o">//</span><span class="mi">2</span><span class="p">)</span>
+            <span class="n">after</span> <span class="o">=</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="p">(</span><span class="n">diff</span><span class="o">//</span><span class="mi">2</span> <span class="o">+</span> <span class="n">diff</span><span class="o">%</span><span class="mi">2</span><span class="p">)</span>
+            <span class="n">text_out</span> <span class="o">=</span> <span class="n">before</span> <span class="o">+</span> <span class="n">text</span> <span class="o">+</span> <span class="n">after</span>
+            
+        <span class="k">return</span> <span class="n">text_out</span></div>
+    
+<div class="viewcode-block" id="Jobs.display_status"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Jobs.display_status">[docs]</a>    <span class="k">def</span> <span class="nf">display_status</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">len_col</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Takes a lenght and construct the display of the current status </span>
+<span class="sd">        of the jobs in an array that has a column for each host.</span>
+<span class="sd">        It displays the job that is currently running on the host of the column.</span>
+<span class="sd">        </span>
+<span class="sd">        :param len_col: (int) the size of the column </span>
+<span class="sd">        :return: None</span>
+<span class="sd">        &quot;&quot;&quot;</span>  
+        <span class="n">display_line</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+        <span class="k">for</span> <span class="n">host_port</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">lhosts</span><span class="p">:</span>
+            <span class="n">jb</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_occupied</span><span class="p">(</span><span class="n">host_port</span><span class="p">)</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">jb</span><span class="p">:</span> <span class="c1"># nothing running on the host</span>
+                <span class="n">empty</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">str_of_length</span><span class="p">(</span><span class="s2">&quot;empty&quot;</span><span class="p">,</span> <span class="n">len_col</span><span class="p">)</span>
+                <span class="n">display_line</span> <span class="o">+=</span> <span class="s2">&quot;|&quot;</span> <span class="o">+</span> <span class="n">empty</span> 
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">display_line</span> <span class="o">+=</span> <span class="s2">&quot;|&quot;</span> <span class="o">+</span> <span class="n">UTS</span><span class="o">.</span><span class="n">info</span><span class="p">(</span>
+                                        <span class="bp">self</span><span class="o">.</span><span class="n">str_of_length</span><span class="p">(</span><span class="n">jb</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">len_col</span><span class="p">))</span>
+        
+        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">display_line</span> <span class="o">+</span> <span class="s2">&quot;|&quot;</span><span class="p">)</span></div>
+    
+
+<div class="viewcode-block" id="Jobs.run_jobs"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Jobs.run_jobs">[docs]</a>    <span class="k">def</span> <span class="nf">run_jobs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        The main method. Runs all the jobs on every host. </span>
+<span class="sd">        For each host, at a given time, only one job can be running.</span>
+<span class="sd">        The jobs that have the field after (that contain the job that has</span>
+<span class="sd">        to be run before it) are run after the previous job.</span>
+<span class="sd">        This method stops when all the jobs are finished.</span>
+<span class="sd">        </span>
+<span class="sd">        :return: None</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="c1"># Print header</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Executing the jobs :</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">))</span>
+        <span class="n">text_line</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+        <span class="k">for</span> <span class="n">host_port</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">lhosts</span><span class="p">:</span>
+            <span class="n">host</span> <span class="o">=</span> <span class="n">host_port</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+            <span class="n">port</span> <span class="o">=</span> <span class="n">host_port</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+            <span class="k">if</span> <span class="n">port</span> <span class="o">==</span> <span class="mi">22</span><span class="p">:</span> <span class="c1"># default value</span>
+                <span class="n">text_line</span> <span class="o">+=</span> <span class="s2">&quot;|&quot;</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">str_of_length</span><span class="p">(</span><span class="n">host</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">len_columns</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">text_line</span> <span class="o">+=</span> <span class="s2">&quot;|&quot;</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">str_of_length</span><span class="p">(</span>
+                                <span class="s2">&quot;(&quot;</span><span class="o">+</span><span class="n">host</span><span class="o">+</span><span class="s2">&quot;, &quot;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">port</span><span class="p">)</span><span class="o">+</span><span class="s2">&quot;)&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">len_columns</span><span class="p">)</span>
+        
+        <span class="n">tiret_line</span> <span class="o">=</span> <span class="s2">&quot; &quot;</span> <span class="o">+</span> <span class="s2">&quot;-&quot;</span><span class="o">*</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">text_line</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">tiret_line</span> <span class="o">+</span> <span class="n">text_line</span> <span class="o">+</span> <span class="s2">&quot;|</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">tiret_line</span><span class="p">)</span>
+        
+        <span class="c1"># The infinite loop that runs the jobs</span>
+        <span class="n">l_jobs_not_started</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">deepcopy_list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ljobs</span><span class="p">)</span>
+        <span class="k">while</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_l_jobs_finished</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ljobs</span><span class="p">):</span>
+            <span class="n">new_job_start</span> <span class="o">=</span> <span class="kc">False</span>
+            <span class="k">for</span> <span class="n">host_port</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">lhosts</span><span class="p">:</span>
+                
+                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_occupied</span><span class="p">(</span><span class="n">host_port</span><span class="p">):</span>
+                    <span class="k">continue</span>
+             
+                <span class="k">for</span> <span class="n">jb</span> <span class="ow">in</span> <span class="n">l_jobs_not_started</span><span class="p">:</span>
+                    <span class="k">if</span> <span class="p">(</span><span class="n">jb</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">host</span><span class="p">,</span> <span class="n">jb</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">port</span><span class="p">)</span> <span class="o">!=</span> <span class="n">host_port</span><span class="p">:</span>
+                        <span class="k">continue</span> 
+                    <span class="k">if</span> <span class="n">jb</span><span class="o">.</span><span class="n">after</span> <span class="o">==</span> <span class="kc">None</span><span class="p">:</span>
+                        <span class="n">jb</span><span class="o">.</span><span class="n">run</span><span class="p">()</span>
+                        <span class="n">l_jobs_not_started</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">jb</span><span class="p">)</span>
+                        <span class="n">new_job_start</span> <span class="o">=</span> <span class="kc">True</span>
+                        <span class="k">break</span>
+                    <span class="k">else</span><span class="p">:</span>
+                        <span class="n">jb_before</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">find_job_that_has_name</span><span class="p">(</span><span class="n">jb</span><span class="o">.</span><span class="n">after</span><span class="p">)</span>
+                        <span class="k">if</span> <span class="n">jb_before</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+                            <span class="n">jb</span><span class="o">.</span><span class="n">cancel</span><span class="p">()</span>
+                            <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;This job was not launched because its &quot;</span>
+                                    <span class="s2">&quot;father is not in the jobs list.&quot;</span><span class="p">)</span>
+                            <span class="n">jb</span><span class="o">.</span><span class="n">out</span> <span class="o">=</span> <span class="n">msg</span>
+                            <span class="n">jb</span><span class="o">.</span><span class="n">err</span> <span class="o">=</span> <span class="n">msg</span>
+                            <span class="k">break</span>
+                        <span class="k">if</span> <span class="n">jb_before</span><span class="o">.</span><span class="n">has_finished</span><span class="p">():</span>
+                            <span class="n">jb</span><span class="o">.</span><span class="n">run</span><span class="p">()</span>
+                            <span class="n">l_jobs_not_started</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">jb</span><span class="p">)</span>
+                            <span class="n">new_job_start</span> <span class="o">=</span> <span class="kc">True</span>
+                            <span class="k">break</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">cancel_dependencies_of_failing_jobs</span><span class="p">()</span>
+            <span class="n">new_job_finished</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">update_jobs_states_list</span><span class="p">()</span>
+            
+            <span class="k">if</span> <span class="n">new_job_start</span> <span class="ow">or</span> <span class="n">new_job_finished</span><span class="p">:</span>
+                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">gui</span><span class="p">:</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">gui</span><span class="o">.</span><span class="n">update_xml_files</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ljobs</span><span class="p">)</span>            
+                <span class="c1"># Display the current status     </span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">display_status</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">len_columns</span><span class="p">)</span>
+            
+            <span class="c1"># Make sure that the proc is not entirely busy</span>
+            <span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mf">0.001</span><span class="p">)</span>
+        
+        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">tiret_line</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">gui</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">gui</span><span class="o">.</span><span class="n">update_xml_files</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ljobs</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">gui</span><span class="o">.</span><span class="n">last_update</span><span class="p">()</span></div>
+
+<div class="viewcode-block" id="Jobs.write_all_results"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Jobs.write_all_results">[docs]</a>    <span class="k">def</span> <span class="nf">write_all_results</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Display all the jobs outputs.</span>
+<span class="sd">        </span>
+<span class="sd">        :return: None</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">for</span> <span class="n">jb</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">ljobs</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;#------- Results for job </span><span class="si">%s</span><span class="s2"> -------#</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">jb</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+            <span class="n">jb</span><span class="o">.</span><span class="n">write_results</span><span class="p">()</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">&quot;</span><span class="p">)</span></div></div>
+
+<div class="viewcode-block" id="Gui"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Gui">[docs]</a><span class="k">class</span> <span class="nc">Gui</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Class to manage the the xml data that can be displayed in a browser </span>
+<span class="sd">    to see the jobs states</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
+                 <span class="n">xml_dir_path</span><span class="p">,</span>
+                 <span class="n">l_jobs</span><span class="p">,</span>
+                 <span class="n">l_jobs_not_today</span><span class="p">,</span>
+                 <span class="n">prefix</span><span class="p">,</span>
+                 <span class="n">logger</span><span class="p">,</span>
+                 <span class="n">file_boards</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Initialization</span>
+<span class="sd">        </span>
+<span class="sd">        :param xml_dir_path: (str) </span>
+<span class="sd">          The path to the directory where to put the xml resulting files</span>
+<span class="sd">        :param l_jobs: (list) the list of jobs that run today</span>
+<span class="sd">        :param l_jobs_not_today: (list) </span>
+<span class="sd">          the list of jobs that do not run today</span>
+<span class="sd">        :param file_boards: (str) </span>
+<span class="sd">          the file path from which to read the expected boards</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="c1"># The logging instance</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span> <span class="o">=</span> <span class="n">logger</span>
+        
+        <span class="c1"># The prefix to add to the xml files : date_hour</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">prefix</span> <span class="o">=</span> <span class="n">prefix</span>
+        
+        <span class="c1"># The path of the csv files to read to fill the expected boards</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">file_boards</span> <span class="o">=</span> <span class="n">file_boards</span>
+        
+        <span class="k">if</span> <span class="n">file_boards</span> <span class="o">!=</span> <span class="s2">&quot;&quot;</span><span class="p">:</span>
+            <span class="n">today</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">date</span><span class="o">.</span><span class="n">weekday</span><span class="p">(</span><span class="n">datetime</span><span class="o">.</span><span class="n">date</span><span class="o">.</span><span class="n">today</span><span class="p">())</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">parse_csv_boards</span><span class="p">(</span><span class="n">today</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">d_input_boards</span> <span class="o">=</span> <span class="p">{}</span>
+        
+        <span class="c1"># The path of the global xml file</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">xml_dir_path</span> <span class="o">=</span> <span class="n">xml_dir_path</span>
+        <span class="c1"># Initialize the xml files</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">global_name</span> <span class="o">=</span> <span class="s2">&quot;global_report&quot;</span>
+        <span class="n">xml_global_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xml_dir_path</span><span class="p">,</span>
+                                       <span class="bp">self</span><span class="o">.</span><span class="n">global_name</span> <span class="o">+</span> <span class="s2">&quot;.xml&quot;</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">xml_global_file</span> <span class="o">=</span> <span class="n">XMLMGR</span><span class="o">.</span><span class="n">XmlLogFile</span><span class="p">(</span><span class="n">xml_global_path</span><span class="p">,</span> <span class="s2">&quot;JobsReport&quot;</span><span class="p">)</span>
+
+        <span class="c1"># Find history for each job</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">history</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">find_history</span><span class="p">(</span><span class="n">l_jobs</span><span class="p">,</span> <span class="n">l_jobs_not_today</span><span class="p">)</span>
+
+        <span class="c1"># The xml files that corresponds to the boards.</span>
+        <span class="c1"># {name_board : xml_object}}</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">d_xml_board_files</span> <span class="o">=</span> <span class="p">{}</span>
+
+        <span class="c1"># Create the lines and columns</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">initialize_boards</span><span class="p">(</span><span class="n">l_jobs</span><span class="p">,</span> <span class="n">l_jobs_not_today</span><span class="p">)</span>
+
+        <span class="c1"># Write the xml file</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">update_xml_files</span><span class="p">(</span><span class="n">l_jobs</span><span class="p">)</span>
+    
+<div class="viewcode-block" id="Gui.add_xml_board"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Gui.add_xml_board">[docs]</a>    <span class="k">def</span> <span class="nf">add_xml_board</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Add a board to the board list</span>
+<span class="sd">        </span>
+<span class="sd">        :param name: (str) the board name</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">xml_board_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xml_dir_path</span><span class="p">,</span> <span class="n">name</span> <span class="o">+</span> <span class="s2">&quot;.xml&quot;</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span>  <span class="n">XMLMGR</span><span class="o">.</span><span class="n">XmlLogFile</span><span class="p">(</span><span class="n">xml_board_path</span><span class="p">,</span><span class="s2">&quot;JobsReport&quot;</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">add_simple_node</span><span class="p">(</span><span class="s2">&quot;distributions&quot;</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">add_simple_node</span><span class="p">(</span><span class="s2">&quot;applications&quot;</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">add_simple_node</span><span class="p">(</span><span class="s2">&quot;board&quot;</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="n">name</span><span class="p">)</span></div>
+           
+<div class="viewcode-block" id="Gui.initialize_boards"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Gui.initialize_boards">[docs]</a>    <span class="k">def</span> <span class="nf">initialize_boards</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l_jobs</span><span class="p">,</span> <span class="n">l_jobs_not_today</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Get all the first information needed for each file and write the </span>
+<span class="sd">        first version of the files </span>
+<span class="sd">        </span>
+<span class="sd">        :param l_jobs: (list) the list of jobs that run today</span>
+<span class="sd">        :param l_jobs_not_today: (list) the list of jobs that do not run today</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="c1"># Get the boards to fill and put it in a dictionary</span>
+        <span class="c1"># {board_name : xml instance corresponding to the board}</span>
+        <span class="k">for</span> <span class="n">job</span> <span class="ow">in</span> <span class="n">l_jobs</span> <span class="o">+</span> <span class="n">l_jobs_not_today</span><span class="p">:</span>
+            <span class="n">board</span> <span class="o">=</span> <span class="n">job</span><span class="o">.</span><span class="n">board</span>
+            <span class="k">if</span> <span class="p">(</span><span class="n">board</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> 
+                                <span class="n">board</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="o">.</span><span class="n">keys</span><span class="p">()):</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">add_xml_board</span><span class="p">(</span><span class="n">board</span><span class="p">)</span>
+        
+        <span class="c1"># Verify that the boards given as input are done</span>
+        <span class="k">for</span> <span class="n">board</span> <span class="ow">in</span> <span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">d_input_boards</span><span class="o">.</span><span class="n">keys</span><span class="p">()):</span>
+            <span class="k">if</span> <span class="n">board</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">add_xml_board</span><span class="p">(</span><span class="n">board</span><span class="p">)</span>
+            <span class="n">root_node</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="p">[</span><span class="n">board</span><span class="p">]</span><span class="o">.</span><span class="n">xmlroot</span>
+            <span class="n">XMLMGR</span><span class="o">.</span><span class="n">append_node_attrib</span><span class="p">(</span><span class="n">root_node</span><span class="p">,</span> <span class="p">{</span><span class="s2">&quot;input_file&quot;</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">file_boards</span><span class="p">})</span>
+        
+        <span class="c1"># Loop over all jobs in order to get the lines and columns for each </span>
+        <span class="c1"># xml file</span>
+        <span class="n">d_dist</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="n">d_application</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="k">for</span> <span class="n">board</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="p">:</span>
+            <span class="n">d_dist</span><span class="p">[</span><span class="n">board</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+            <span class="n">d_application</span><span class="p">[</span><span class="n">board</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+            
+        <span class="n">l_hosts_ports</span> <span class="o">=</span> <span class="p">[]</span>
+        
+        <span class="n">ASNODE</span> <span class="o">=</span> <span class="n">XMLMGR</span><span class="o">.</span><span class="n">add_simple_node</span> <span class="c1"># shortcut</span>
+            
+        <span class="k">for</span> <span class="n">job</span> <span class="ow">in</span> <span class="n">l_jobs</span> <span class="o">+</span> <span class="n">l_jobs_not_today</span><span class="p">:</span>
+            
+            <span class="k">if</span> <span class="p">(</span><span class="n">job</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">host</span><span class="p">,</span> <span class="n">job</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">port</span><span class="p">)</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">l_hosts_ports</span><span class="p">:</span>
+                <span class="n">l_hosts_ports</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">job</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">host</span><span class="p">,</span> <span class="n">job</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">port</span><span class="p">))</span>
+                
+            <span class="n">distrib</span> <span class="o">=</span> <span class="n">job</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">distribution</span>
+            <span class="n">application</span> <span class="o">=</span> <span class="n">job</span><span class="o">.</span><span class="n">application</span>
+            
+            <span class="n">board_job</span> <span class="o">=</span> <span class="n">job</span><span class="o">.</span><span class="n">board</span>
+            <span class="k">if</span> <span class="n">board</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+                <span class="k">continue</span>
+            <span class="k">for</span> <span class="n">board</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="p">:</span>
+                <span class="k">if</span> <span class="n">board_job</span> <span class="o">==</span> <span class="n">board</span><span class="p">:</span>
+                    <span class="k">if</span> <span class="p">(</span><span class="n">distrib</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="kc">None</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">]</span> <span class="ow">and</span> 
+                                            <span class="n">distrib</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">d_dist</span><span class="p">[</span><span class="n">board</span><span class="p">]):</span>
+                        <span class="n">d_dist</span><span class="p">[</span><span class="n">board</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">distrib</span><span class="p">)</span>
+                        <span class="n">ASNODE</span><span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="p">[</span><span class="n">board</span><span class="p">]</span><span class="o">.</span><span class="n">xmlroot</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;distributions&#39;</span><span class="p">),</span>
+                                <span class="s2">&quot;dist&quot;</span><span class="p">,</span>  <span class="n">attrib</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;name&quot;</span> <span class="p">:</span> <span class="n">distrib</span><span class="p">}</span> <span class="p">)</span>
+                    
+                <span class="k">if</span> <span class="n">board_job</span> <span class="o">==</span> <span class="n">board</span><span class="p">:</span>
+                    <span class="k">if</span> <span class="p">(</span><span class="n">application</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="kc">None</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">]</span> <span class="ow">and</span> 
+                                    <span class="n">application</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">d_application</span><span class="p">[</span><span class="n">board</span><span class="p">]):</span>
+                        <span class="n">d_application</span><span class="p">[</span><span class="n">board</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">application</span><span class="p">)</span>
+                        <span class="n">ASNODE</span><span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="p">[</span><span class="n">board</span><span class="p">]</span><span class="o">.</span><span class="n">xmlroot</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;applications&#39;</span><span class="p">),</span>
+                                <span class="s2">&quot;application&quot;</span><span class="p">,</span> <span class="n">attrib</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;name&quot;</span> <span class="p">:</span> <span class="n">application</span><span class="p">}</span> <span class="p">)</span>
+        
+        <span class="c1"># Verify that there are no missing application or distribution in the</span>
+        <span class="c1"># xml board files (regarding the input boards)</span>
+        <span class="k">for</span> <span class="n">board</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="p">:</span>
+            <span class="n">l_dist</span> <span class="o">=</span> <span class="n">d_dist</span><span class="p">[</span><span class="n">board</span><span class="p">]</span>
+            <span class="k">if</span> <span class="n">board</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_input_boards</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
+                <span class="k">continue</span>
+            <span class="k">for</span> <span class="n">dist</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_input_boards</span><span class="p">[</span><span class="n">board</span><span class="p">][</span><span class="s2">&quot;rows&quot;</span><span class="p">]:</span>
+                <span class="k">if</span> <span class="n">dist</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">l_dist</span><span class="p">:</span>
+                    <span class="n">ASNODE</span><span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="p">[</span><span class="n">board</span><span class="p">]</span><span class="o">.</span><span class="n">xmlroot</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;distributions&#39;</span><span class="p">),</span>
+                            <span class="s2">&quot;dist&quot;</span><span class="p">,</span> <span class="n">attrib</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;name&quot;</span> <span class="p">:</span> <span class="n">dist</span><span class="p">}</span> <span class="p">)</span>
+            <span class="n">l_appli</span> <span class="o">=</span> <span class="n">d_application</span><span class="p">[</span><span class="n">board</span><span class="p">]</span>
+            <span class="k">for</span> <span class="n">appli</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_input_boards</span><span class="p">[</span><span class="n">board</span><span class="p">][</span><span class="s2">&quot;columns&quot;</span><span class="p">]:</span>
+                <span class="k">if</span> <span class="n">appli</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">l_appli</span><span class="p">:</span>
+                    <span class="n">ASNODE</span><span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="p">[</span><span class="n">board</span><span class="p">]</span><span class="o">.</span><span class="n">xmlroot</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;applications&#39;</span><span class="p">),</span>
+                            <span class="s2">&quot;application&quot;</span><span class="p">,</span> <span class="n">attrib</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;name&quot;</span> <span class="p">:</span> <span class="n">appli</span><span class="p">}</span> <span class="p">)</span>
+                
+        <span class="c1"># Initialize the hosts_ports node for the global file</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">xmlhosts_ports</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">xml_global_file</span><span class="o">.</span><span class="n">add_simple_node</span><span class="p">(</span> <span class="s2">&quot;hosts_ports&quot;</span><span class="p">)</span>
+        <span class="k">for</span> <span class="n">host</span><span class="p">,</span> <span class="n">port</span> <span class="ow">in</span> <span class="n">l_hosts_ports</span><span class="p">:</span>
+            <span class="n">host_port</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">:</span><span class="si">%i</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">host</span><span class="p">,</span> <span class="n">port</span><span class="p">)</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xmlhosts_ports</span><span class="p">,</span> <span class="s2">&quot;host_port&quot;</span><span class="p">,</span> <span class="n">attrib</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;name&quot;</span> <span class="p">:</span> <span class="n">host_port</span><span class="p">})</span>
+        
+        <span class="c1"># Initialize the jobs node in all files</span>
+        <span class="k">for</span> <span class="n">xml_file</span> <span class="ow">in</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">xml_global_file</span><span class="p">]</span> <span class="o">+</span> <span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="o">.</span><span class="n">values</span><span class="p">()):</span>
+            <span class="n">xml_jobs</span> <span class="o">=</span> <span class="n">xml_file</span><span class="o">.</span><span class="n">add_simple_node</span><span class="p">(</span><span class="s2">&quot;jobs&quot;</span><span class="p">)</span>      
+            <span class="c1"># Get the jobs present in the config file but </span>
+            <span class="c1"># that will not be launched today</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">put_jobs_not_today</span><span class="p">(</span><span class="n">l_jobs_not_today</span><span class="p">,</span> <span class="n">xml_jobs</span><span class="p">)</span>
+            
+            <span class="c1"># add also the infos node</span>
+            <span class="n">xml_file</span><span class="o">.</span><span class="n">add_simple_node</span><span class="p">(</span> 
+                <span class="s2">&quot;infos&quot;</span><span class="p">,</span> <span class="n">attrib</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;name&quot;</span> <span class="p">:</span> <span class="s2">&quot;last update&quot;</span><span class="p">,</span> <span class="s2">&quot;JobsCommandStatus&quot;</span> <span class="p">:</span> <span class="s2">&quot;running&quot;</span><span class="p">}</span> <span class="p">)</span>
+            
+            <span class="c1"># and put the history node</span>
+            <span class="n">history_node</span> <span class="o">=</span> <span class="n">xml_file</span><span class="o">.</span><span class="n">add_simple_node</span><span class="p">(</span><span class="s2">&quot;history&quot;</span><span class="p">)</span>
+            <span class="n">name_board</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">xml_file</span><span class="o">.</span><span class="n">logFile</span><span class="p">)[:</span><span class="o">-</span><span class="nb">len</span><span class="p">(</span><span class="s2">&quot;.xml&quot;</span><span class="p">)]</span>
+            <span class="c1"># serach for board files</span>
+            <span class="n">expression</span> <span class="o">=</span> <span class="s2">&quot;^[0-9]</span><span class="si">{8}</span><span class="s2">_+[0-9]</span><span class="si">{6}</span><span class="s2">_&quot;</span> <span class="o">+</span> <span class="n">name_board</span> <span class="o">+</span> <span class="s2">&quot;.xml$&quot;</span>
+            <span class="n">oExpr</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
+            <span class="c1"># Get the list of xml borad files that are in the log directory</span>
+            <span class="k">for</span> <span class="n">file_name</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xml_dir_path</span><span class="p">):</span>
+                <span class="k">if</span> <span class="n">oExpr</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">file_name</span><span class="p">):</span>
+                    <span class="n">date</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">file_name</span><span class="p">)</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;_&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+                    <span class="n">file_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xml_dir_path</span><span class="p">,</span> <span class="n">file_name</span><span class="p">)</span>
+                    <span class="n">ASNODE</span><span class="p">(</span><span class="n">history_node</span><span class="p">,</span> <span class="s2">&quot;link&quot;</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="n">file_path</span><span class="p">,</span> <span class="n">attrib</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;date&quot;</span> <span class="p">:</span> <span class="n">date</span><span class="p">})</span>      
+            
+                
+        <span class="c1"># Find in each board the squares that needs to be filled regarding the</span>
+        <span class="c1"># input csv files but that are not covered by a today job</span>
+        <span class="k">for</span> <span class="n">board</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_input_boards</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
+            <span class="n">xml_root_board</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="p">[</span><span class="n">board</span><span class="p">]</span><span class="o">.</span><span class="n">xmlroot</span>
+            <span class="c1"># Find the missing jobs for today</span>
+            <span class="n">xml_missing</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">xml_root_board</span><span class="p">,</span> <span class="s2">&quot;missing_jobs&quot;</span><span class="p">)</span>
+            <span class="k">for</span> <span class="n">row</span><span class="p">,</span> <span class="n">column</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_input_boards</span><span class="p">[</span><span class="n">board</span><span class="p">][</span><span class="s2">&quot;jobs&quot;</span><span class="p">]:</span>
+                <span class="n">found</span> <span class="o">=</span> <span class="kc">False</span>
+                <span class="k">for</span> <span class="n">job</span> <span class="ow">in</span> <span class="n">l_jobs</span><span class="p">:</span>
+                    <span class="k">if</span> <span class="p">(</span><span class="n">job</span><span class="o">.</span><span class="n">application</span> <span class="o">==</span> <span class="n">column</span> <span class="ow">and</span> 
+                        <span class="n">job</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">distribution</span> <span class="o">==</span> <span class="n">row</span><span class="p">):</span>
+                        <span class="n">found</span> <span class="o">=</span> <span class="kc">True</span>
+                        <span class="k">break</span>
+                <span class="k">if</span> <span class="ow">not</span> <span class="n">found</span><span class="p">:</span>
+                    <span class="n">ASNODE</span><span class="p">(</span><span class="n">xml_missing</span><span class="p">,</span> <span class="s2">&quot;job&quot;</span><span class="p">,</span> <span class="n">attrib</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;distribution&quot;</span> <span class="p">:</span> <span class="n">row</span><span class="p">,</span> <span class="s2">&quot;application&quot;</span> <span class="p">:</span> <span class="n">column</span> <span class="p">})</span>
+            <span class="c1"># Find the missing jobs not today</span>
+            <span class="n">xml_missing_not_today</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span> <span class="n">xml_root_board</span><span class="p">,</span> <span class="s2">&quot;missing_jobs_not_today&quot;</span><span class="p">)</span>
+            <span class="k">for</span> <span class="n">row</span><span class="p">,</span> <span class="n">column</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_input_boards</span><span class="p">[</span><span class="n">board</span><span class="p">][</span><span class="s2">&quot;jobs_not_today&quot;</span><span class="p">]:</span>
+                <span class="n">found</span> <span class="o">=</span> <span class="kc">False</span>
+                <span class="k">for</span> <span class="n">job</span> <span class="ow">in</span> <span class="n">l_jobs_not_today</span><span class="p">:</span>
+                    <span class="k">if</span> <span class="p">(</span><span class="n">job</span><span class="o">.</span><span class="n">application</span> <span class="o">==</span> <span class="n">column</span> <span class="ow">and</span> 
+                        <span class="n">job</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">distribution</span> <span class="o">==</span> <span class="n">row</span><span class="p">):</span>
+                        <span class="n">found</span> <span class="o">=</span> <span class="kc">True</span>
+                        <span class="k">break</span>
+                <span class="k">if</span> <span class="ow">not</span> <span class="n">found</span><span class="p">:</span>
+                    <span class="n">ASNODE</span><span class="p">(</span> <span class="n">xml_missing_not_today</span><span class="p">,</span> <span class="s2">&quot;job&quot;</span><span class="p">,</span>
+                            <span class="n">attrib</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;distribution&quot;</span> <span class="p">:</span> <span class="n">row</span><span class="p">,</span> <span class="s2">&quot;application&quot;</span> <span class="p">:</span> <span class="n">column</span> <span class="p">}</span> <span class="p">)</span></div>
+
+<div class="viewcode-block" id="Gui.find_history"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Gui.find_history">[docs]</a>    <span class="k">def</span> <span class="nf">find_history</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l_jobs</span><span class="p">,</span> <span class="n">l_jobs_not_today</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        find, for each job, in the existent xml boards the results for the job.</span>
+<span class="sd">        Store the results in the dictionary </span>
+<span class="sd">        self.history = {name_job : list of (date, status, list links)}</span>
+<span class="sd">        </span>
+<span class="sd">        :param l_jobs: (list) </span>
+<span class="sd">          the list of jobs to run today   </span>
+<span class="sd">        :param l_jobs_not_today: (list) </span>
+<span class="sd">          the list of jobs that do not run today</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="c1"># load the all the history</span>
+        <span class="n">expression</span> <span class="o">=</span> <span class="s2">&quot;^[0-9]</span><span class="si">{8}</span><span class="s2">_+[0-9]</span><span class="si">{6}</span><span class="s2">_&quot;</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">global_name</span> <span class="o">+</span> <span class="s2">&quot;.xml$&quot;</span>
+        <span class="n">oExpr</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
+        <span class="c1"># Get the list of global xml that are in the log directory</span>
+        <span class="n">l_globalxml</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="k">for</span> <span class="n">file_name</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xml_dir_path</span><span class="p">):</span>
+            <span class="k">if</span> <span class="n">oExpr</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">file_name</span><span class="p">):</span>
+                <span class="n">file_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xml_dir_path</span><span class="p">,</span> <span class="n">file_name</span><span class="p">)</span>
+                <span class="k">try</span><span class="p">:</span>
+                    <span class="n">global_xml</span> <span class="o">=</span> <span class="n">XMLMGR</span><span class="o">.</span><span class="n">ReadXmlFile</span><span class="p">(</span><span class="n">file_path</span><span class="p">)</span>
+                    <span class="n">l_globalxml</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">global_xml</span><span class="p">)</span>
+                <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+                    <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The file &#39;</span><span class="si">%s</span><span class="s2">&#39; can not be read, it will be ignored</span><span class="se">\n</span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> \
+                           <span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">msg</span><span class="p">)</span>
+                    
+        <span class="c1"># Construct the dictionnary self.history </span>
+        <span class="k">for</span> <span class="n">job</span> <span class="ow">in</span> <span class="n">l_jobs</span> <span class="o">+</span> <span class="n">l_jobs_not_today</span><span class="p">:</span>
+            <span class="n">l_links</span> <span class="o">=</span> <span class="p">[]</span>
+            <span class="k">for</span> <span class="n">global_xml</span> <span class="ow">in</span> <span class="n">l_globalxml</span><span class="p">:</span>
+                <span class="n">date</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">global_xml</span><span class="o">.</span><span class="n">filePath</span><span class="p">)</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;_&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+                <span class="n">global_root_node</span> <span class="o">=</span> <span class="n">global_xml</span><span class="o">.</span><span class="n">xmlroot</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">&quot;jobs&quot;</span><span class="p">)</span>
+                <span class="n">job_node</span> <span class="o">=</span> <span class="n">XMLMGR</span><span class="o">.</span><span class="n">find_node_by_attrib</span><span class="p">(</span>
+                  <span class="n">global_root_node</span><span class="p">,</span> <span class="s2">&quot;job&quot;</span><span class="p">,</span> <span class="s2">&quot;name&quot;</span><span class="p">,</span> <span class="n">job</span><span class="o">.</span><span class="n">name</span> <span class="p">)</span>
+                <span class="k">if</span> <span class="n">job_node</span><span class="p">:</span>
+                    <span class="k">if</span> <span class="n">job_node</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">&quot;remote_log_file_path&quot;</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+                        <span class="n">link</span> <span class="o">=</span> <span class="n">job_node</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">&quot;remote_log_file_path&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">text</span>
+                        <span class="n">res_job</span> <span class="o">=</span> <span class="n">job_node</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">&quot;res&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">text</span>
+                        <span class="k">if</span> <span class="n">link</span> <span class="o">!=</span> <span class="s2">&quot;nothing&quot;</span><span class="p">:</span>
+                            <span class="n">l_links</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">date</span><span class="p">,</span> <span class="n">res_job</span><span class="p">,</span> <span class="n">link</span><span class="p">))</span>
+            <span class="n">l_links</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">l_links</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">history</span><span class="p">[</span><span class="n">job</span><span class="o">.</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">l_links</span></div>
+  
+<div class="viewcode-block" id="Gui.put_jobs_not_today"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Gui.put_jobs_not_today">[docs]</a>    <span class="k">def</span> <span class="nf">put_jobs_not_today</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l_jobs_not_today</span><span class="p">,</span> <span class="n">xml_node_jobs</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Get all the first information needed for each file and write the </span>
+<span class="sd">        first version of the files   </span>
+
+<span class="sd">        :param xml_node_jobs: (etree.Element) </span>
+<span class="sd">          the node corresponding to a job</span>
+<span class="sd">        :param l_jobs_not_today: (list) </span>
+<span class="sd">          the list of jobs that do not run today</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        
+        <span class="n">ASNODE</span> <span class="o">=</span> <span class="n">XMLMGR</span><span class="o">.</span><span class="n">add_simple_node</span> <span class="c1"># shortcut</span>
+        
+        <span class="k">for</span> <span class="n">job</span> <span class="ow">in</span> <span class="n">l_jobs_not_today</span><span class="p">:</span>
+            <span class="n">xmlj</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">xml_node_jobs</span><span class="p">,</span> <span class="s2">&quot;job&quot;</span><span class="p">,</span> <span class="n">attrib</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;name&quot;</span> <span class="p">:</span> <span class="n">job</span><span class="o">.</span><span class="n">name</span><span class="p">})</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;application&quot;</span><span class="p">,</span> <span class="n">job</span><span class="o">.</span><span class="n">application</span><span class="p">)</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;distribution&quot;</span><span class="p">,</span> <span class="n">job</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">distribution</span><span class="p">)</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;board&quot;</span><span class="p">,</span> <span class="n">job</span><span class="o">.</span><span class="n">board</span><span class="p">)</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;commands&quot;</span><span class="p">,</span> <span class="s2">&quot; ; &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">job</span><span class="o">.</span><span class="n">commands</span><span class="p">))</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;state&quot;</span><span class="p">,</span> <span class="s2">&quot;Not today&quot;</span><span class="p">)</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;machine&quot;</span><span class="p">,</span> <span class="n">job</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;host&quot;</span><span class="p">,</span> <span class="n">job</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">host</span><span class="p">)</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;port&quot;</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">job</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">port</span><span class="p">))</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;user&quot;</span><span class="p">,</span> <span class="n">job</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">user</span><span class="p">)</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;sat_path&quot;</span><span class="p">,</span> <span class="n">job</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">sat_path</span><span class="p">)</span>
+            <span class="n">xml_history</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;history&quot;</span><span class="p">)</span>
+            <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="p">(</span><span class="n">date</span><span class="p">,</span> <span class="n">res_job</span><span class="p">,</span> <span class="n">link</span><span class="p">)</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">history</span><span class="p">[</span><span class="n">job</span><span class="o">.</span><span class="n">name</span><span class="p">]):</span>
+                <span class="k">if</span> <span class="n">i</span><span class="o">==</span><span class="mi">0</span><span class="p">:</span>
+                    <span class="c1"># tag the first one (the last one)</span>
+                    <span class="n">ASNODE</span><span class="p">(</span> <span class="n">xml_history</span><span class="p">,</span> <span class="s2">&quot;link&quot;</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="n">link</span><span class="p">,</span>
+                            <span class="n">attrib</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;date&quot;</span> <span class="p">:</span> <span class="n">date</span><span class="p">,</span> <span class="s2">&quot;res&quot;</span> <span class="p">:</span> <span class="n">res_job</span><span class="p">,</span> <span class="s2">&quot;last&quot;</span> <span class="p">:</span> <span class="s2">&quot;yes&quot;</span><span class="p">}</span> <span class="p">)</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="n">ASNODE</span><span class="p">(</span> <span class="n">xml_history</span><span class="p">,</span> <span class="s2">&quot;link&quot;</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="n">link</span><span class="p">,</span>
+                            <span class="n">attrib</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;date&quot;</span> <span class="p">:</span> <span class="n">date</span><span class="p">,</span> <span class="s2">&quot;res&quot;</span> <span class="p">:</span> <span class="n">res_job</span><span class="p">,</span> <span class="s2">&quot;last&quot;</span> <span class="p">:</span> <span class="s2">&quot;no&quot;</span><span class="p">}</span> <span class="p">)</span></div>
+
+<div class="viewcode-block" id="Gui.parse_csv_boards"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Gui.parse_csv_boards">[docs]</a>    <span class="k">def</span> <span class="nf">parse_csv_boards</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">today</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot; </span>
+<span class="sd">        Parse the csv file that describes the boards to produce and fill </span>
+<span class="sd">        the dict d_input_boards that contain the csv file contain</span>
+<span class="sd">        </span>
+<span class="sd">        :param today: (int) the current day of the week </span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="c1"># open the csv file and read its content</span>
+        <span class="n">l_read</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">file_boards</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
+            <span class="n">reader</span> <span class="o">=</span> <span class="n">csv</span><span class="o">.</span><span class="n">reader</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="n">delimiter</span><span class="o">=</span><span class="n">CSV_DELIMITER</span><span class="p">)</span>
+            <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">reader</span><span class="p">:</span>
+                <span class="n">l_read</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">row</span><span class="p">)</span>
+        <span class="c1"># get the delimiter for the boards (empty line)</span>
+        <span class="n">boards_delimiter</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;&#39;</span><span class="p">]</span> <span class="o">*</span> <span class="nb">len</span><span class="p">(</span><span class="n">l_read</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
+        <span class="c1"># Make the list of boards, by splitting with the delimiter</span>
+        <span class="n">l_boards</span> <span class="o">=</span> <span class="p">[</span><span class="nb">list</span><span class="p">(</span><span class="n">y</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="n">l_read</span><span class="p">,</span>
+                                    <span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">z</span> <span class="o">==</span> <span class="n">boards_delimiter</span><span class="p">)</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">x</span><span class="p">]</span>
+           
+        <span class="c1"># loop over the csv lists of lines and get the rows, columns and jobs</span>
+        <span class="n">d_boards</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="k">for</span> <span class="n">input_board</span> <span class="ow">in</span> <span class="n">l_boards</span><span class="p">:</span>
+            <span class="c1"># get board name</span>
+            <span class="n">board_name</span> <span class="o">=</span> <span class="n">input_board</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
+            
+            <span class="c1"># Get columns list</span>
+            <span class="n">columns</span> <span class="o">=</span> <span class="n">input_board</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">:]</span>
+            
+            <span class="n">rows</span> <span class="o">=</span> <span class="p">[]</span>
+            <span class="n">jobs</span> <span class="o">=</span> <span class="p">[]</span>
+            <span class="n">jobs_not_today</span> <span class="o">=</span> <span class="p">[]</span>
+            <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">input_board</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
+                <span class="n">row</span> <span class="o">=</span> <span class="n">line</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+                <span class="n">rows</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">row</span><span class="p">)</span>
+                <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">square</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">line</span><span class="p">[</span><span class="mi">1</span><span class="p">:]):</span>
+                    <span class="k">if</span> <span class="n">square</span><span class="o">==</span><span class="s1">&#39;&#39;</span><span class="p">:</span>
+                        <span class="k">continue</span>
+                    <span class="n">days</span> <span class="o">=</span> <span class="n">square</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">DAYS_SEPARATOR</span><span class="p">)</span>
+                    <span class="n">days</span> <span class="o">=</span> <span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="n">day</span><span class="p">)</span> <span class="k">for</span> <span class="n">day</span> <span class="ow">in</span> <span class="n">days</span><span class="p">]</span>
+                    <span class="n">job</span> <span class="o">=</span> <span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">columns</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
+                    <span class="k">if</span> <span class="n">today</span> <span class="ow">in</span> <span class="n">days</span><span class="p">:</span>                           
+                        <span class="n">jobs</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">job</span><span class="p">)</span>
+                    <span class="k">else</span><span class="p">:</span>
+                        <span class="n">jobs_not_today</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">job</span><span class="p">)</span>
+
+            <span class="n">d_boards</span><span class="p">[</span><span class="n">board_name</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;rows&quot;</span> <span class="p">:</span> <span class="n">rows</span><span class="p">,</span>
+                                    <span class="s2">&quot;columns&quot;</span> <span class="p">:</span> <span class="n">columns</span><span class="p">,</span>
+                                    <span class="s2">&quot;jobs&quot;</span> <span class="p">:</span> <span class="n">jobs</span><span class="p">,</span>
+                                    <span class="s2">&quot;jobs_not_today&quot;</span> <span class="p">:</span> <span class="n">jobs_not_today</span><span class="p">}</span>
+        
+        <span class="bp">self</span><span class="o">.</span><span class="n">d_input_boards</span> <span class="o">=</span> <span class="n">d_boards</span></div>
+
+<div class="viewcode-block" id="Gui.update_xml_files"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Gui.update_xml_files">[docs]</a>    <span class="k">def</span> <span class="nf">update_xml_files</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l_jobs</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Write all the xml files with updated information about the jobs   </span>
+
+<span class="sd">        :param l_jobs: (list) the list of jobs that run today</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">for</span> <span class="n">xml_file</span> <span class="ow">in</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">xml_global_file</span><span class="p">]</span> <span class="o">+</span> <span class="nb">list</span><span class="p">(</span>
+                                            <span class="bp">self</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="o">.</span><span class="n">values</span><span class="p">()):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">update_xml_file</span><span class="p">(</span><span class="n">l_jobs</span><span class="p">,</span> <span class="n">xml_file</span><span class="p">)</span>
+            
+        <span class="c1"># Write the file</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">write_xml_files</span><span class="p">()</span></div>
+            
+<div class="viewcode-block" id="Gui.update_xml_file"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Gui.update_xml_file">[docs]</a>    <span class="k">def</span> <span class="nf">update_xml_file</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l_jobs</span><span class="p">,</span> <span class="n">xml_file</span><span class="p">):</span>      
+        <span class="sd">&quot;&quot;&quot;update information about the jobs for the file xml_file   </span>
+
+<span class="sd">        :param l_jobs: (list) the list of jobs that run today</span>
+<span class="sd">        :param xml_file: (xmlManager.XmlLogFile) </span>
+<span class="sd">          the xml instance to update</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        
+        <span class="n">xml_node_jobs</span> <span class="o">=</span> <span class="n">xml_file</span><span class="o">.</span><span class="n">xmlroot</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;jobs&#39;</span><span class="p">)</span>
+        <span class="c1"># Update the job names and status node</span>
+        <span class="k">for</span> <span class="n">job</span> <span class="ow">in</span> <span class="n">l_jobs</span><span class="p">:</span>
+            <span class="c1"># Find the node corresponding to the job and delete it</span>
+            <span class="c1"># in order to recreate it</span>
+            <span class="k">for</span> <span class="n">xmljob</span> <span class="ow">in</span> <span class="n">xml_node_jobs</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s1">&#39;job&#39;</span><span class="p">):</span>
+                <span class="k">if</span> <span class="n">xmljob</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="n">job</span><span class="o">.</span><span class="n">name</span><span class="p">:</span>
+                    <span class="n">xml_node_jobs</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">xmljob</span><span class="p">)</span>
+            
+            <span class="n">T0</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">job</span><span class="o">.</span><span class="n">_T0</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">T0</span> <span class="o">!=</span> <span class="s2">&quot;-1&quot;</span><span class="p">:</span>
+                <span class="n">T0</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y-%m-</span><span class="si">%d</span><span class="s1"> %H:%M:%S&#39;</span><span class="p">,</span> 
+                                       <span class="n">time</span><span class="o">.</span><span class="n">localtime</span><span class="p">(</span><span class="n">job</span><span class="o">.</span><span class="n">_T0</span><span class="p">))</span>
+            <span class="n">Tf</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">job</span><span class="o">.</span><span class="n">_Tf</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">Tf</span> <span class="o">!=</span> <span class="s2">&quot;-1&quot;</span><span class="p">:</span>
+                <span class="n">Tf</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y-%m-</span><span class="si">%d</span><span class="s1"> %H:%M:%S&#39;</span><span class="p">,</span> 
+                                       <span class="n">time</span><span class="o">.</span><span class="n">localtime</span><span class="p">(</span><span class="n">job</span><span class="o">.</span><span class="n">_Tf</span><span class="p">))</span>
+            
+            <span class="c1"># recreate the job node</span>
+            <span class="n">xmlj</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">xml_node_jobs</span><span class="p">,</span> <span class="s2">&quot;job&quot;</span><span class="p">,</span> <span class="n">attrib</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;name&quot;</span> <span class="p">:</span> <span class="n">job</span><span class="o">.</span><span class="n">name</span><span class="p">})</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;machine&quot;</span><span class="p">,</span> <span class="n">job</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;host&quot;</span><span class="p">,</span> <span class="n">job</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">host</span><span class="p">)</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;port&quot;</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">job</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">port</span><span class="p">))</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;user&quot;</span><span class="p">,</span> <span class="n">job</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">user</span><span class="p">)</span>
+            <span class="n">xml_history</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;history&quot;</span><span class="p">)</span>
+            <span class="k">for</span> <span class="n">date</span><span class="p">,</span> <span class="n">res_job</span><span class="p">,</span> <span class="n">link</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">history</span><span class="p">[</span><span class="n">job</span><span class="o">.</span><span class="n">name</span><span class="p">]:</span>
+                <span class="n">ASNODE</span><span class="p">(</span> <span class="n">xml_history</span><span class="p">,</span> <span class="s2">&quot;link&quot;</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="n">link</span><span class="p">,</span>
+                        <span class="n">attrib</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;date&quot;</span> <span class="p">:</span> <span class="n">date</span><span class="p">,</span> <span class="s2">&quot;res&quot;</span> <span class="p">:</span> <span class="n">res_job</span><span class="p">}</span> <span class="p">)</span>
+
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;sat_path&quot;</span><span class="p">,</span> <span class="n">job</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">sat_path</span><span class="p">)</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;application&quot;</span><span class="p">,</span> <span class="n">job</span><span class="o">.</span><span class="n">application</span><span class="p">)</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;distribution&quot;</span><span class="p">,</span> <span class="n">job</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">distribution</span><span class="p">)</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;board&quot;</span><span class="p">,</span> <span class="n">job</span><span class="o">.</span><span class="n">board</span><span class="p">)</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;timeout&quot;</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">job</span><span class="o">.</span><span class="n">timeout</span><span class="p">))</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;commands&quot;</span><span class="p">,</span> <span class="s2">&quot; ; &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">job</span><span class="o">.</span><span class="n">commands</span><span class="p">))</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;state&quot;</span><span class="p">,</span> <span class="n">job</span><span class="o">.</span><span class="n">get_status</span><span class="p">())</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;begin&quot;</span><span class="p">,</span> <span class="n">T0</span><span class="p">)</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;end&quot;</span><span class="p">,</span> <span class="n">Tf</span><span class="p">)</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;out&quot;</span><span class="p">,</span> <span class="n">UTS</span><span class="o">.</span><span class="n">cleancolor</span><span class="p">(</span><span class="n">job</span><span class="o">.</span><span class="n">out</span><span class="p">))</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;err&quot;</span><span class="p">,</span> <span class="n">UTS</span><span class="o">.</span><span class="n">cleancolor</span><span class="p">(</span><span class="n">job</span><span class="o">.</span><span class="n">err</span><span class="p">))</span>
+            <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;res&quot;</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">job</span><span class="o">.</span><span class="n">res_job</span><span class="p">))</span>
+            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">job</span><span class="o">.</span><span class="n">remote_log_files</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+                <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;remote_log_file_path&quot;</span><span class="p">,</span> <span class="n">job</span><span class="o">.</span><span class="n">remote_log_files</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;remote_log_file_path&quot;</span><span class="p">,</span> <span class="s2">&quot;nothing&quot;</span><span class="p">)</span>           
+            <span class="c1"># Search for the test log if there is any</span>
+            <span class="n">l_test_log_files</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">find_test_log</span><span class="p">(</span><span class="n">job</span><span class="o">.</span><span class="n">remote_log_files</span><span class="p">)</span>
+            <span class="n">xml_test</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;test_log_file_path&quot;</span><span class="p">)</span>
+            <span class="k">for</span> <span class="n">test_log_path</span><span class="p">,</span> <span class="n">res_test</span><span class="p">,</span> <span class="n">nb_fails</span> <span class="ow">in</span> <span class="n">l_test_log_files</span><span class="p">:</span>
+                <span class="n">test_path_node</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">xml_test</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">,</span> <span class="n">test_log_path</span><span class="p">)</span>
+                <span class="n">test_path_node</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s2">&quot;res&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">res_test</span>
+                <span class="n">test_path_node</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s2">&quot;nb_fails&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">nb_fails</span>
+            
+            <span class="n">xmlafter</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;after&quot;</span><span class="p">,</span> <span class="n">job</span><span class="o">.</span><span class="n">after</span><span class="p">)</span>
+            <span class="c1"># get the job father</span>
+            <span class="k">if</span> <span class="n">job</span><span class="o">.</span><span class="n">after</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+                <span class="n">job_father</span> <span class="o">=</span> <span class="kc">None</span>
+                <span class="k">for</span> <span class="n">jb</span> <span class="ow">in</span> <span class="n">l_jobs</span><span class="p">:</span>
+                    <span class="k">if</span> <span class="n">jb</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="n">job</span><span class="o">.</span><span class="n">after</span><span class="p">:</span>
+                        <span class="n">job_father</span> <span class="o">=</span> <span class="n">jb</span>
+                
+                <span class="k">if</span> <span class="p">(</span><span class="n">job_father</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> 
+                        <span class="nb">len</span><span class="p">(</span><span class="n">job_father</span><span class="o">.</span><span class="n">remote_log_files</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">):</span>
+                    <span class="n">link</span> <span class="o">=</span> <span class="n">job_father</span><span class="o">.</span><span class="n">remote_log_files</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="n">link</span> <span class="o">=</span> <span class="s2">&quot;nothing&quot;</span>
+                <span class="n">XMLMGR</span><span class="o">.</span><span class="n">append_node_attrib</span><span class="p">(</span><span class="n">xmlafter</span><span class="p">,</span> <span class="p">{</span><span class="s2">&quot;link&quot;</span> <span class="p">:</span> <span class="n">link</span><span class="p">})</span>
+            
+            <span class="c1"># Verify that the job is to be done today regarding the input csv</span>
+            <span class="c1"># files</span>
+            <span class="k">if</span> <span class="n">job</span><span class="o">.</span><span class="n">board</span> <span class="ow">and</span> <span class="n">job</span><span class="o">.</span><span class="n">board</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_input_boards</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
+                <span class="n">found</span> <span class="o">=</span> <span class="kc">False</span>
+                <span class="k">for</span> <span class="n">dist</span><span class="p">,</span> <span class="n">appli</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_input_boards</span><span class="p">[</span><span class="n">job</span><span class="o">.</span><span class="n">board</span><span class="p">][</span><span class="s2">&quot;jobs&quot;</span><span class="p">]:</span>
+                    <span class="k">if</span> <span class="p">(</span><span class="n">job</span><span class="o">.</span><span class="n">machine</span><span class="o">.</span><span class="n">distribution</span> <span class="o">==</span> <span class="n">dist</span> 
+                        <span class="ow">and</span> <span class="n">job</span><span class="o">.</span><span class="n">application</span> <span class="o">==</span> <span class="n">appli</span><span class="p">):</span>
+                        <span class="n">found</span> <span class="o">=</span> <span class="kc">True</span>
+                        <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;extra_job&quot;</span><span class="p">,</span> <span class="s2">&quot;no&quot;</span><span class="p">)</span>
+                        <span class="k">break</span>
+                <span class="k">if</span> <span class="ow">not</span> <span class="n">found</span><span class="p">:</span>
+                    <span class="n">ASNODE</span><span class="p">(</span><span class="n">xmlj</span><span class="p">,</span> <span class="s2">&quot;extra_job&quot;</span><span class="p">,</span> <span class="s2">&quot;yes&quot;</span><span class="p">)</span>
+            
+        
+        <span class="c1"># Update the date</span>
+        <span class="n">xml_node_infos</span> <span class="o">=</span> <span class="n">xml_file</span><span class="o">.</span><span class="n">xmlroot</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;infos&#39;</span><span class="p">)</span>
+        <span class="n">XMLMGR</span><span class="o">.</span><span class="n">append_node_attrib</span><span class="p">(</span> <span class="n">xml_node_infos</span><span class="p">,</span>
+           <span class="n">attrib</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;value&quot;</span> <span class="p">:</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">()</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">&quot;%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S&quot;</span><span class="p">)}</span> <span class="p">)</span></div>
+               
+
+<div class="viewcode-block" id="Gui.find_test_log"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Gui.find_test_log">[docs]</a>    <span class="k">def</span> <span class="nf">find_test_log</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l_remote_log_files</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Find if there is a test log (board) in the remote log files and </span>
+<span class="sd">        the path to it. There can be several test command, </span>
+<span class="sd">        so the result is a list.</span>
+
+<span class="sd">        :param l_remote_log_files: (list) the list of all remote log files</span>
+<span class="sd">        :return: (list) </span>
+<span class="sd">          the list of tuples (test log files path, res of the command)</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">res</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="k">for</span> <span class="n">file_path</span> <span class="ow">in</span> <span class="n">l_remote_log_files</span><span class="p">:</span>
+            <span class="n">dirname</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">file_path</span><span class="p">))</span>
+            <span class="n">file_name</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">file_path</span><span class="p">)</span>
+            <span class="n">regex</span> <span class="o">=</span> <span class="n">UTS</span><span class="o">.</span><span class="n">_log_all_command_file_expression</span>
+            <span class="n">oExpr</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="n">regex</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">dirname</span> <span class="o">==</span> <span class="s2">&quot;TEST&quot;</span> <span class="ow">and</span> <span class="n">oExpr</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">file_name</span><span class="p">):</span>
+                <span class="c1"># find the res of the command</span>
+                <span class="n">prod_node</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">file_path</span><span class="p">)</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">&quot;product&quot;</span><span class="p">)</span>
+                <span class="n">res_test</span> <span class="o">=</span> <span class="n">prod_node</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s2">&quot;global_res&quot;</span><span class="p">]</span>
+                <span class="c1"># find the number of fails</span>
+                <span class="n">testbase_node</span> <span class="o">=</span> <span class="n">prod_node</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">&quot;tests&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">&quot;testbase&quot;</span><span class="p">)</span>
+                <span class="n">nb_fails</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">testbase_node</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s2">&quot;failed&quot;</span><span class="p">])</span>
+                <span class="c1"># put the file path, the res of the test command and the number </span>
+                <span class="c1"># of fails in the output</span>
+                <span class="n">res</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">file_path</span><span class="p">,</span> <span class="n">res_test</span><span class="p">,</span> <span class="n">nb_fails</span><span class="p">))</span>
+                
+        <span class="k">return</span> <span class="n">res</span></div>
+    
+<div class="viewcode-block" id="Gui.last_update"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Gui.last_update">[docs]</a>    <span class="k">def</span> <span class="nf">last_update</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">finish_status</span> <span class="o">=</span> <span class="s2">&quot;finished&quot;</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;update information about the jobs for the file xml_file   </span>
+
+<span class="sd">        :param l_jobs: (list) the list of jobs that run today</span>
+<span class="sd">        :param xml_file: (xmlManager.XmlLogFile) the xml instance to update</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">for</span> <span class="n">xml_file</span> <span class="ow">in</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">xml_global_file</span><span class="p">]</span> <span class="o">+</span> <span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="o">.</span><span class="n">values</span><span class="p">()):</span>
+            <span class="n">xml_node_infos</span> <span class="o">=</span> <span class="n">xml_file</span><span class="o">.</span><span class="n">xmlroot</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;infos&#39;</span><span class="p">)</span>
+            <span class="n">XMLMGR</span><span class="o">.</span><span class="n">append_node_attrib</span><span class="p">(</span><span class="n">xml_node_infos</span><span class="p">,</span>
+                        <span class="n">attrib</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;JobsCommandStatus&quot;</span> <span class="p">:</span> <span class="n">finish_status</span><span class="p">})</span>
+        <span class="c1"># Write the file</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">write_xml_files</span><span class="p">()</span></div>
+
+<div class="viewcode-block" id="Gui.write_xml_file"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Gui.write_xml_file">[docs]</a>    <span class="k">def</span> <span class="nf">write_xml_file</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">xml_file</span><span class="p">,</span> <span class="n">stylesheet</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Write one xml file and the same file with prefix</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">xml_file</span><span class="o">.</span><span class="n">write_tree</span><span class="p">(</span><span class="n">stylesheet</span><span class="p">)</span>
+        <span class="n">file_path</span> <span class="o">=</span> <span class="n">xml_file</span><span class="o">.</span><span class="n">logFile</span>
+        <span class="n">file_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">file_path</span><span class="p">)</span>
+        <span class="n">file_name</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">file_path</span><span class="p">)</span>
+        <span class="n">file_name_with_prefix</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">prefix</span> <span class="o">+</span> <span class="s2">&quot;_&quot;</span> <span class="o">+</span> <span class="n">file_name</span>
+        <span class="n">xml_file</span><span class="o">.</span><span class="n">write_tree</span><span class="p">(</span><span class="n">stylesheet</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">file_dir</span><span class="p">,</span>
+                                                     <span class="n">file_name_with_prefix</span><span class="p">))</span></div>
+        
+<div class="viewcode-block" id="Gui.write_xml_files"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.Gui.write_xml_files">[docs]</a>    <span class="k">def</span> <span class="nf">write_xml_files</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Write the xml files   </span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">write_xml_file</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xml_global_file</span><span class="p">,</span> <span class="n">STYLESHEET_GLOBAL</span><span class="p">)</span>
+        <span class="k">for</span> <span class="n">xml_file</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_xml_board_files</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">write_xml_file</span><span class="p">(</span><span class="n">xml_file</span><span class="p">,</span> <span class="n">STYLESHEET_BOARD</span><span class="p">)</span></div></div>
+
+<div class="viewcode-block" id="get_config_file_path"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.get_config_file_path">[docs]</a><span class="k">def</span> <span class="nf">get_config_file_path</span><span class="p">(</span><span class="n">job_config_name</span><span class="p">,</span> <span class="n">l_cfg_dir</span><span class="p">):</span>
+    <span class="n">found</span> <span class="o">=</span> <span class="kc">False</span>
+    <span class="n">file_jobs_cfg</span> <span class="o">=</span> <span class="kc">None</span>
+    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">job_config_name</span><span class="p">)</span> <span class="ow">and</span> <span class="n">job_config_name</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s2">&quot;.pyconf&quot;</span><span class="p">):</span>
+        <span class="n">found</span> <span class="o">=</span> <span class="kc">True</span>
+        <span class="n">file_jobs_cfg</span> <span class="o">=</span> <span class="n">job_config_name</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="k">for</span> <span class="n">cfg_dir</span> <span class="ow">in</span> <span class="n">l_cfg_dir</span><span class="p">:</span>
+            <span class="n">file_jobs_cfg</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">cfg_dir</span><span class="p">,</span> <span class="n">job_config_name</span><span class="p">)</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">file_jobs_cfg</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.pyconf&#39;</span><span class="p">):</span>
+                <span class="n">file_jobs_cfg</span> <span class="o">+=</span> <span class="s1">&#39;.pyconf&#39;</span>
+            
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">file_jobs_cfg</span><span class="p">):</span>
+                <span class="k">continue</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">found</span> <span class="o">=</span> <span class="kc">True</span>
+                <span class="k">break</span>
+    <span class="k">return</span> <span class="n">found</span><span class="p">,</span> <span class="n">file_jobs_cfg</span></div>
+
+<div class="viewcode-block" id="develop_factorized_jobs"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.jobs.develop_factorized_jobs">[docs]</a><span class="k">def</span> <span class="nf">develop_factorized_jobs</span><span class="p">(</span><span class="n">config_jobs</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;update information about the jobs for the file xml_file   </span>
+<span class="sd">    </span>
+<span class="sd">    :param config_jobs: (Config) </span>
+<span class="sd">      the config corresponding to the jos description</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">developed_jobs_list</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="k">for</span> <span class="n">jb</span> <span class="ow">in</span> <span class="n">config_jobs</span><span class="o">.</span><span class="n">jobs</span><span class="p">:</span>
+        <span class="c1"># case where the jobs are not developed</span>
+        <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">jb</span><span class="o">.</span><span class="n">machine</span><span class="p">)</span> <span class="o">==</span> <span class="nb">type</span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
+            <span class="n">developed_jobs_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">jb</span><span class="p">)</span>
+            <span class="k">continue</span>
+        <span class="c1"># Case where the jobs must be developed</span>
+        <span class="c1"># Example:</span>
+        <span class="c1"># machine : [&quot;CO7.2 physique&quot;, [&quot;CO6.4 physique&quot;, $MONDAY, $TUESDAY ], &quot;FD22&quot;]</span>
+        <span class="n">name_job</span> <span class="o">=</span> <span class="n">jb</span><span class="o">.</span><span class="n">name</span>
+        <span class="k">for</span> <span class="n">machine</span> <span class="ow">in</span> <span class="n">jb</span><span class="o">.</span><span class="n">machine</span><span class="p">:</span>
+            <span class="n">new_job</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">deepCopyMapping</span><span class="p">(</span><span class="n">jb</span><span class="p">)</span>
+            <span class="c1"># case where there is a jobs on the machine corresponding to all</span>
+            <span class="c1"># days in when variable. </span>
+            <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">machine</span><span class="p">)</span> <span class="o">==</span> <span class="nb">type</span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
+                <span class="n">new_job</span><span class="o">.</span><span class="n">machine</span> <span class="o">=</span> <span class="n">machine</span>
+                <span class="n">new_job</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name_job</span> <span class="o">+</span> <span class="s2">&quot; / &quot;</span> <span class="o">+</span> <span class="n">machine</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="c1"># case the days are re defined</span>
+                <span class="n">new_job</span><span class="o">.</span><span class="n">machine</span> <span class="o">=</span> <span class="n">machine</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+                <span class="n">new_job</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name_job</span> <span class="o">+</span> <span class="s2">&quot; / &quot;</span> <span class="o">+</span> <span class="n">machine</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+                <span class="n">new_job</span><span class="o">.</span><span class="n">when</span> <span class="o">=</span> <span class="n">machine</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>
+            <span class="n">developed_jobs_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_job</span><span class="p">)</span>
+    
+    <span class="n">config_jobs</span><span class="o">.</span><span class="n">jobs</span> <span class="o">=</span> <span class="n">developed_jobs_list</span></div>
+            
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/launcher.html b/doc/build/html/_modules/commands/launcher.html
new file mode 100644 (file)
index 0000000..6d6ad7d
--- /dev/null
@@ -0,0 +1,365 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.launcher &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.launcher</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+<span class="kn">import</span> <span class="nn">platform</span>
+<span class="kn">import</span> <span class="nn">shutil</span>
+<span class="kn">import</span> <span class="nn">getpass</span>
+<span class="kn">import</span> <span class="nn">subprocess</span>
+<span class="kn">import</span> <span class="nn">stat</span>
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.launcher.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">  The launcher command generates a SALOME launcher.</span>
+<span class="sd">  </span>
+<span class="sd">  examples:</span>
+<span class="sd">  &gt;&gt; sat launcher SALOME </span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;launcher&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.launcher.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all possible options for command &#39;sat launcher &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.launcher.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat launcher &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+
+    <span class="c1"># Verify that the command was called with an application</span>
+    <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span> <span class="n">config</span> <span class="p">)</span>
+    
+    <span class="c1"># Determine the launcher name (from option, profile section or by default &quot;salome&quot;)</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">name</span><span class="p">:</span>
+        <span class="n">launcher_name</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">name</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">launcher_name</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_launcher_name</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
+
+    <span class="c1"># set the launcher path</span>
+    <span class="n">launcher_path</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span>
+
+    <span class="c1"># Copy a catalog if the option is called</span>
+    <span class="n">additional_environ</span> <span class="o">=</span> <span class="p">{}</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">catalog</span><span class="p">:</span>
+        <span class="n">additional_environ</span> <span class="o">=</span> <span class="n">copy_catalog</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">options</span><span class="o">.</span><span class="n">catalog</span><span class="p">)</span>
+
+    <span class="c1"># Generate a catalog of resources if the corresponding option was called</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">gencat</span><span class="p">:</span>
+        <span class="n">catalog_path</span> <span class="o">=</span> <span class="n">generate_catalog</span><span class="p">(</span><span class="n">options</span><span class="o">.</span><span class="n">gencat</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;,&quot;</span><span class="p">),</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+        <span class="n">additional_environ</span> <span class="o">=</span> <span class="n">copy_catalog</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">catalog_path</span><span class="p">)</span>
+
+    <span class="c1"># Generate the launcher</span>
+    <span class="n">launcherPath</span> <span class="o">=</span> <span class="n">generate_launch_file</span><span class="p">(</span> <span class="n">config</span><span class="p">,</span>
+                                         <span class="n">logger</span><span class="p">,</span>
+                                         <span class="n">launcher_name</span><span class="p">,</span>
+                                         <span class="n">launcher_path</span><span class="p">,</span>
+                                         <span class="n">additional_env</span> <span class="o">=</span> <span class="n">additional_environ</span> <span class="p">)</span>
+
+    <span class="k">return</span> <span class="mi">0</span></div></div>
+
+
+<div class="viewcode-block" id="generate_launch_file"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.launcher.generate_launch_file">[docs]</a><span class="k">def</span> <span class="nf">generate_launch_file</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                         <span class="n">logger</span><span class="p">,</span>
+                         <span class="n">launcher_name</span><span class="p">,</span>
+                         <span class="n">pathlauncher</span><span class="p">,</span>
+                         <span class="n">display</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+                         <span class="n">additional_env</span><span class="o">=</span><span class="p">{}):</span>
+    <span class="sd">&quot;&quot;&quot;Generates the launcher file.</span>
+<span class="sd">    </span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :param launcher_name: (str) The name of the launcher to generate</span>
+<span class="sd">    :param pathlauncher: (str) The path to the launcher to generate</span>
+<span class="sd">    :param display: (bool) If False, do not print anything in the terminal</span>
+<span class="sd">    :param additional_env: (dict) </span>
+<span class="sd">      The dict giving additional environment variables</span>
+<span class="sd">    :return: (str) The launcher file path.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    
+    <span class="c1"># Compute the default launcher path if it is not provided in pathlauncher</span>
+    <span class="c1"># parameter</span>
+    <span class="n">filepath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">pathlauncher</span><span class="p">,</span> <span class="n">launcher_name</span><span class="p">)</span>
+
+    <span class="c1"># Remove the file if it exists in order to replace it</span>
+    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">filepath</span><span class="p">):</span>
+        <span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">filepath</span><span class="p">)</span>
+
+    <span class="c1"># Add the APPLI variable</span>
+    <span class="n">additional_env</span><span class="p">[</span><span class="s1">&#39;APPLI&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">filepath</span>
+
+
+    <span class="c1"># get KERNEL bin installation path </span>
+    <span class="c1"># (in order for the launcher to get python salomeContext API)</span>
+    <span class="n">kernel_cfg</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="s2">&quot;KERNEL&quot;</span><span class="p">)</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">check_installation</span><span class="p">(</span><span class="n">kernel_cfg</span><span class="p">):</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;KERNEL is not installed&quot;</span><span class="p">))</span>
+    <span class="n">kernel_root_dir</span> <span class="o">=</span> <span class="n">kernel_cfg</span><span class="o">.</span><span class="n">install_dir</span>
+
+    <span class="c1"># set kernel bin dir (considering fhs property)</span>
+    <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">get_property_in_product_cfg</span><span class="p">(</span><span class="n">kernel_cfg</span><span class="p">,</span> <span class="s2">&quot;fhs&quot;</span><span class="p">):</span>
+        <span class="n">bin_kernel_install_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">kernel_root_dir</span><span class="p">,</span><span class="s2">&quot;bin&quot;</span><span class="p">)</span> 
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">bin_kernel_install_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">kernel_root_dir</span><span class="p">,</span><span class="s2">&quot;bin&quot;</span><span class="p">,</span><span class="s2">&quot;salome&quot;</span><span class="p">)</span> 
+
+    <span class="c1"># Get the launcher template</span>
+    <span class="n">withProfile</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">fileEnviron</span><span class="o">.</span><span class="n">withProfile</span>\
+                     <span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;BIN_KERNEL_INSTALL_DIR&quot;</span><span class="p">,</span> <span class="n">bin_kernel_install_dir</span><span class="p">)</span>\
+                     <span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;KERNEL_INSTALL_DIR&quot;</span><span class="p">,</span> <span class="n">kernel_root_dir</span><span class="p">)</span>
+
+    <span class="n">before</span><span class="p">,</span> <span class="n">after</span> <span class="o">=</span> <span class="n">withProfile</span><span class="o">.</span><span class="n">split</span><span class="p">(</span>
+                                <span class="s2">&quot;# here your local standalone environment</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+    <span class="c1"># create an environment file writer</span>
+    <span class="n">writer</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">environment</span><span class="o">.</span><span class="n">FileEnvWriter</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                                           <span class="n">logger</span><span class="p">,</span>
+                                           <span class="n">pathlauncher</span><span class="p">,</span>
+                                           <span class="n">src_root</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+                                           <span class="n">env_info</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span>
+
+    <span class="c1"># Display some information</span>
+    <span class="k">if</span> <span class="n">display</span><span class="p">:</span>
+        <span class="c1"># Write the launcher file</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Generating launcher for </span><span class="si">%s</span><span class="s2"> :</span><span class="se">\n</span><span class="s2">  </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> \
+              <span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">),</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">filepath</span><span class="p">))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+    
+    <span class="c1"># open the file and write into it</span>
+    <span class="n">launch_file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span> <span class="s2">&quot;w&quot;</span><span class="p">)</span>
+    <span class="n">launch_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">before</span><span class="p">)</span>
+    <span class="c1"># Write</span>
+    <span class="n">writer</span><span class="o">.</span><span class="n">write_cfgForPy_file</span><span class="p">(</span><span class="n">launch_file</span><span class="p">,</span> <span class="n">additional_env</span><span class="o">=</span><span class="n">additional_env</span><span class="p">)</span>
+    <span class="n">launch_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">after</span><span class="p">)</span>
+    <span class="n">launch_file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+    
+    <span class="c1"># change the rights in order to make the file executable for everybody</span>
+    <span class="n">os</span><span class="o">.</span><span class="n">chmod</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span>
+             <span class="n">stat</span><span class="o">.</span><span class="n">S_IRUSR</span> <span class="o">|</span>
+             <span class="n">stat</span><span class="o">.</span><span class="n">S_IRGRP</span> <span class="o">|</span>
+             <span class="n">stat</span><span class="o">.</span><span class="n">S_IROTH</span> <span class="o">|</span>
+             <span class="n">stat</span><span class="o">.</span><span class="n">S_IWUSR</span> <span class="o">|</span>
+             <span class="n">stat</span><span class="o">.</span><span class="n">S_IXUSR</span> <span class="o">|</span>
+             <span class="n">stat</span><span class="o">.</span><span class="n">S_IXGRP</span> <span class="o">|</span>
+             <span class="n">stat</span><span class="o">.</span><span class="n">S_IXOTH</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">filepath</span></div>
+
+
+<div class="viewcode-block" id="generate_catalog"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.launcher.generate_catalog">[docs]</a><span class="k">def</span> <span class="nf">generate_catalog</span><span class="p">(</span><span class="n">machines</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Generates an xml catalog file from a list of machines.</span>
+<span class="sd">    </span>
+<span class="sd">    :param machines: (list) The list of machines to add in the catalog   </span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :return: (str) The catalog file path.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c1"># remove empty machines</span>
+    <span class="n">machines</span> <span class="o">=</span> <span class="nb">map</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="n">l</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="n">machines</span><span class="p">)</span>
+    <span class="n">machines</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="nb">len</span><span class="p">(</span><span class="n">l</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">,</span> <span class="n">machines</span><span class="p">)</span>
+    
+    <span class="c1"># log something</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;  </span><span class="si">%s</span><span class="s2"> = </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> \
+                 <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Generate Resources Catalog&quot;</span><span class="p">),</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">machines</span><span class="p">))</span> <span class="p">)</span>
+    
+    <span class="c1"># The command to execute on each machine in order to get some information</span>
+    <span class="n">cmd</span> <span class="o">=</span> <span class="s1">&#39;&quot;cat /proc/cpuinfo | grep MHz ; cat /proc/meminfo | grep MemTotal&quot;&#39;</span>
+    <span class="n">user</span> <span class="o">=</span> <span class="n">getpass</span><span class="o">.</span><span class="n">getuser</span><span class="p">()</span>
+
+    <span class="c1"># Create the catalog path</span>
+    <span class="n">catfile</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_tmp_filename</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="s2">&quot;CatalogResources.xml&quot;</span><span class="p">)</span>
+    <span class="n">catalog</span> <span class="o">=</span> <span class="n">file</span><span class="p">(</span><span class="n">catfile</span><span class="p">,</span> <span class="s2">&quot;w&quot;</span><span class="p">)</span>
+    
+    <span class="c1"># Write into it</span>
+    <span class="n">catalog</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;&lt;!DOCTYPE ResourcesCatalog&gt;</span><span class="se">\n</span><span class="s2">&lt;resources&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+    <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">machines</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;    ssh </span><span class="si">%s</span><span class="s2"> &quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">k</span> <span class="o">+</span> <span class="s2">&quot; &quot;</span><span class="p">)</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="s1">&#39;.&#39;</span><span class="p">))</span>
+
+        <span class="c1"># Verify that the machine is accessible</span>
+        <span class="n">ssh_cmd</span> <span class="o">=</span> <span class="s1">&#39;ssh -o &quot;StrictHostKeyChecking no&quot; </span><span class="si">%s</span><span class="s1"> </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">cmd</span><span class="p">)</span>
+        <span class="n">p</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">ssh_cmd</span><span class="p">,</span> <span class="n">shell</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+                <span class="n">stdin</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span>
+                <span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span>
+                <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span>
+        <span class="n">p</span><span class="o">.</span><span class="n">wait</span><span class="p">()</span>
+
+        <span class="k">if</span> <span class="n">p</span><span class="o">.</span><span class="n">returncode</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span> <span class="c1"># The machine is not accessible</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">&quot;&lt;KO&gt;: The machine </span><span class="si">%s</span><span class="s2"> is not accessible:</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">k</span> <span class="o">+</span> 
+                         <span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="n">p</span><span class="o">.</span><span class="n">stderr</span><span class="o">.</span><span class="n">read</span><span class="p">()))</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="c1"># The machine is accessible, write the corresponding section on</span>
+            <span class="c1"># the xml file</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;&lt;OK&gt;: The machine </span><span class="si">%s</span><span class="s2"> is accessible:</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">k</span><span class="p">)</span>
+            <span class="n">lines</span> <span class="o">=</span> <span class="n">p</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">readlines</span><span class="p">()</span>
+            <span class="n">freq</span> <span class="o">=</span> <span class="n">lines</span><span class="p">[</span><span class="mi">0</span><span class="p">][:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;:&#39;</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+            <span class="n">nb_proc</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">lines</span><span class="p">)</span> <span class="o">-</span><span class="mi">1</span>
+            <span class="n">memory</span> <span class="o">=</span> <span class="n">lines</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;:&#39;</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+            <span class="n">memory</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">memory</span><span class="p">)</span> <span class="o">/</span> <span class="mi">1000</span>
+
+            <span class="n">catalog</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;    &lt;machine</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+            <span class="n">catalog</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;        protocol=</span><span class="se">\&quot;</span><span class="s2">ssh</span><span class="se">\&quot;\n</span><span class="s2">&quot;</span><span class="p">)</span>
+            <span class="n">catalog</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;        nbOfNodes=</span><span class="se">\&quot;</span><span class="s2">1</span><span class="se">\&quot;\n</span><span class="s2">&quot;</span><span class="p">)</span>
+            <span class="n">catalog</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;        mode=</span><span class="se">\&quot;</span><span class="s2">interactif</span><span class="se">\&quot;\n</span><span class="s2">&quot;</span><span class="p">)</span>
+            <span class="n">catalog</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;        OS=</span><span class="se">\&quot;</span><span class="s2">LINUX</span><span class="se">\&quot;\n</span><span class="s2">&quot;</span><span class="p">)</span>
+            <span class="n">catalog</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;        CPUFreqMHz=</span><span class="se">\&quot;</span><span class="si">%s</span><span class="se">\&quot;\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">freq</span><span class="p">)</span>
+            <span class="n">catalog</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;        nbOfProcPerNode=</span><span class="se">\&quot;</span><span class="si">%s</span><span class="se">\&quot;\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">nb_proc</span><span class="p">)</span>
+            <span class="n">catalog</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;        memInMB=</span><span class="se">\&quot;</span><span class="si">%s</span><span class="se">\&quot;\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">memory</span><span class="p">)</span>
+            <span class="n">catalog</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;        userName=</span><span class="se">\&quot;</span><span class="si">%s</span><span class="se">\&quot;\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">user</span><span class="p">)</span>
+            <span class="n">catalog</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;        name=</span><span class="se">\&quot;</span><span class="si">%s</span><span class="se">\&quot;\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">k</span><span class="p">)</span>
+            <span class="n">catalog</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;        hostname=</span><span class="se">\&quot;</span><span class="si">%s</span><span class="se">\&quot;\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">k</span><span class="p">)</span>
+            <span class="n">catalog</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;    &gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+            <span class="n">catalog</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;    &lt;/machine&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+    <span class="n">catalog</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;&lt;/resources&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+    <span class="n">catalog</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+    <span class="k">return</span> <span class="n">catfile</span></div>
+
+<div class="viewcode-block" id="copy_catalog"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.launcher.copy_catalog">[docs]</a><span class="k">def</span> <span class="nf">copy_catalog</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">catalog_path</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Copy the xml catalog file into the right location</span>
+<span class="sd">    </span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param catalog_path: (str) the catalog file path</span>
+<span class="sd">    :return: (dict) </span>
+<span class="sd">      The environment dictionary corresponding to the file path.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c1"># Verify the existence of the file</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">catalog_path</span><span class="p">):</span>
+        <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Catalog not found: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">catalog_path</span><span class="p">)</span>
+    <span class="c1"># Get the application directory and copy catalog inside</span>
+    <span class="n">out_dir</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span>
+    <span class="n">new_catalog_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">out_dir</span><span class="p">,</span> <span class="s2">&quot;CatalogResources.xml&quot;</span><span class="p">)</span>
+    <span class="c1"># Do the copy</span>
+    <span class="n">shutil</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">catalog_path</span><span class="p">,</span> <span class="n">new_catalog_path</span><span class="p">)</span>
+    <span class="n">additional_environ</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;USER_CATALOG_RESOURCES_FILE&#39;</span> <span class="p">:</span> <span class="n">new_catalog_path</span><span class="p">}</span>
+    <span class="k">return</span> <span class="n">additional_environ</span></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/log.html b/doc/build/html/_modules/commands/log.html
new file mode 100644 (file)
index 0000000..e658aff
--- /dev/null
@@ -0,0 +1,483 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.log &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.log</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+
+<span class="kn">import</span> <span class="nn">os</span>
+<span class="kn">import</span> <span class="nn">shutil</span>
+<span class="kn">import</span> <span class="nn">re</span>
+<span class="kn">import</span> <span class="nn">glob</span>
+<span class="kn">import</span> <span class="nn">datetime</span>
+<span class="kn">import</span> <span class="nn">stat</span>
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">import</span> <span class="nn">src.utilsSat</span> <span class="k">as</span> <span class="nn">UTS</span>
+<span class="kn">import</span> <span class="nn">src.xmlManager</span> <span class="k">as</span> <span class="nn">XMLMGR</span>
+<span class="kn">import</span> <span class="nn">src.system</span> <span class="k">as</span> <span class="nn">SYSS</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+
+<span class="c1"># Compatibility python 2/3 for input function</span>
+<span class="c1"># input stays input for python 3 and input = raw_input for python 2</span>
+<span class="k">try</span><span class="p">:</span> 
+    <span class="nb">input</span> <span class="o">=</span> <span class="n">raw_input</span>
+<span class="k">except</span> <span class="ne">NameError</span><span class="p">:</span> 
+    <span class="k">pass</span>
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.log.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">  The log command gives access to the logs produced by the salomeTools commands.</span>
+
+<span class="sd">  examples:</span>
+<span class="sd">  &gt;&gt; sat log</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;log&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.log.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for command &#39;sat log &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+      <span class="s1">&#39;t&#39;</span><span class="p">,</span> <span class="s1">&#39;terminal&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;terminal&#39;</span><span class="p">,</span> 
+      <span class="s2">&quot;Optional: Show sat instances logs, no browser.&quot;</span><span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+      <span class="s1">&#39;l&#39;</span><span class="p">,</span> <span class="s1">&#39;last&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;last&#39;</span><span class="p">,</span> 
+      <span class="s2">&quot;Show the log of the last launched command.&quot;</span><span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+      <span class="s1">&#39;x&#39;</span><span class="p">,</span> <span class="s1">&#39;last_terminal&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;last_terminal&#39;</span><span class="p">,</span> 
+      <span class="sd">&quot;&quot;&quot;Optional: Show compile log of products, no browser.&quot;&quot;&quot;</span><span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+      <span class="s1">&#39;f&#39;</span><span class="p">,</span> <span class="s1">&#39;full&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;full&#39;</span><span class="p">,</span> 
+      <span class="s2">&quot;Optional: Show the logs of ALL the launched commands.&quot;</span><span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+      <span class="s1">&#39;c&#39;</span><span class="p">,</span> <span class="s1">&#39;clean&#39;</span><span class="p">,</span> <span class="s1">&#39;int&#39;</span><span class="p">,</span> <span class="s1">&#39;clean&#39;</span><span class="p">,</span> 
+      <span class="s2">&quot;Optional: Erase the n most ancient log files.&quot;</span><span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+      <span class="s1">&#39;n&#39;</span><span class="p">,</span> <span class="s1">&#39;no_browser&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;no_browser&#39;</span><span class="p">,</span> 
+      <span class="s2">&quot;Optional: Do not launch the browser at the end of the command. Only update the hat file.&quot;</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.log.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat log &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+      
+
+    <span class="c1"># get the log directory. </span>
+    <span class="n">logDir</span> <span class="o">=</span> <span class="n">UTS</span><span class="o">.</span><span class="n">get_log_path</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
+    
+    <span class="c1"># Print a header</span>
+    <span class="n">nb_files_log_dir</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">glob</span><span class="o">.</span><span class="n">glob</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">logDir</span><span class="p">,</span> <span class="s2">&quot;*&quot;</span><span class="p">)))</span>
+    <span class="n">info</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">&quot;log directory&quot;</span><span class="p">,</span> <span class="n">logDir</span><span class="p">),</span> 
+            <span class="p">(</span><span class="s2">&quot;number of log files&quot;</span><span class="p">,</span> <span class="n">nb_files_log_dir</span><span class="p">)]</span>
+    <span class="n">UTS</span><span class="o">.</span><span class="n">logger_info_tuples</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">info</span><span class="p">)</span>
+    
+    <span class="c1"># If the clean options is invoked, </span>
+    <span class="c1"># do nothing but deleting the concerned files.</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">clean</span><span class="p">:</span>
+        <span class="n">nbClean</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">clean</span>
+        <span class="c1"># get the list of files to remove</span>
+        <span class="n">lLogs</span> <span class="o">=</span> <span class="n">UTS</span><span class="o">.</span><span class="n">list_log_file</span><span class="p">(</span><span class="n">logDir</span><span class="p">,</span> <span class="n">UTS</span><span class="o">.</span><span class="n">_log_all_command_file_expression</span><span class="p">)</span>
+        <span class="n">nbLogFiles</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">lLogs</span><span class="p">)</span>
+        <span class="c1"># Delete all if the invoked number is bigger than the number of log files</span>
+        <span class="k">if</span> <span class="n">nbClean</span> <span class="o">&gt;</span> <span class="n">nbLogFiles</span><span class="p">:</span>
+            <span class="n">nbClean</span> <span class="o">=</span> <span class="n">nbLogFiles</span>
+        <span class="c1"># Get the list to delete and do the removing</span>
+        <span class="n">lLogsToDelete</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">lLogs</span><span class="p">)[:</span><span class="n">nbClean</span><span class="p">]</span>
+        <span class="k">for</span> <span class="n">filePath</span><span class="p">,</span> <span class="n">__</span><span class="p">,</span> <span class="n">__</span><span class="p">,</span> <span class="n">__</span><span class="p">,</span> <span class="n">__</span><span class="p">,</span> <span class="n">__</span><span class="p">,</span> <span class="n">__</span> <span class="ow">in</span> <span class="n">lLogsToDelete</span><span class="p">:</span>
+            <span class="c1"># remove the xml log file</span>
+            <span class="n">remove_log_file</span><span class="p">(</span><span class="n">filePath</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+            <span class="c1"># remove also the corresponding txt file in OUT directory</span>
+            <span class="n">txtFilePath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">filePath</span><span class="p">),</span> 
+                            <span class="s1">&#39;OUT&#39;</span><span class="p">,</span> 
+                            <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">filePath</span><span class="p">)[:</span><span class="o">-</span><span class="nb">len</span><span class="p">(</span><span class="s1">&#39;.xml&#39;</span><span class="p">)]</span> <span class="o">+</span> <span class="s1">&#39;.txt&#39;</span><span class="p">)</span>
+            <span class="n">remove_log_file</span><span class="p">(</span><span class="n">txtFilePath</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+            <span class="c1"># remove also the corresponding pyconf (do not exist 2016-06) </span>
+            <span class="c1"># file in OUT directory</span>
+            <span class="n">pyconfFilePath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">filePath</span><span class="p">),</span> 
+                            <span class="s1">&#39;OUT&#39;</span><span class="p">,</span> 
+                            <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">filePath</span><span class="p">)[:</span><span class="o">-</span><span class="nb">len</span><span class="p">(</span><span class="s1">&#39;.xml&#39;</span><span class="p">)]</span> <span class="o">+</span> <span class="s1">&#39;.pyconf&#39;</span><span class="p">)</span>
+            <span class="n">remove_log_file</span><span class="p">(</span><span class="n">pyconfFilePath</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+
+        <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%i</span><span class="s2"> logs deleted&quot;</span> <span class="o">%</span> <span class="n">nbClean</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;&lt;OK&gt;</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">msg</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
+
+    <span class="c1"># determine the commands to show in the hat log</span>
+    <span class="n">notShownCommands</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">INTERNAL</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">not_shown_commands</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">full</span><span class="p">:</span>
+        <span class="n">notShownCommands</span> <span class="o">=</span> <span class="p">[]</span>
+
+    <span class="c1"># Find the stylesheets Directory and files</span>
+    <span class="n">xslDir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">srcDir</span><span class="p">,</span> <span class="s1">&#39;xsl&#39;</span><span class="p">)</span>
+    <span class="n">xslCommand</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">xslDir</span><span class="p">,</span> <span class="s2">&quot;command.xsl&quot;</span><span class="p">)</span>
+    <span class="n">xslHat</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">xslDir</span><span class="p">,</span> <span class="s2">&quot;hat.xsl&quot;</span><span class="p">)</span>
+    <span class="n">xsltest</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">xslDir</span><span class="p">,</span> <span class="s2">&quot;test.xsl&quot;</span><span class="p">)</span>
+    <span class="n">imgLogo</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">xslDir</span><span class="p">,</span> <span class="s2">&quot;LOGO-SAT.png&quot;</span><span class="p">)</span>
+    
+    <span class="c1"># copy the stylesheets in the log directory</span>
+    <span class="c1"># OP We use copy instead of copy2 to update the creation date</span>
+    <span class="c1">#    So we can clean the LOGS directories easily</span>
+    <span class="n">shutil</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">xslCommand</span><span class="p">,</span> <span class="n">logDir</span><span class="p">)</span>
+    <span class="n">shutil</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">xslHat</span><span class="p">,</span> <span class="n">logDir</span><span class="p">)</span>
+    <span class="n">UTS</span><span class="o">.</span><span class="n">ensure_path_exists</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">logDir</span><span class="p">,</span> <span class="s2">&quot;TEST&quot;</span><span class="p">))</span>
+    <span class="n">shutil</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">xsltest</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">logDir</span><span class="p">,</span> <span class="s2">&quot;TEST&quot;</span><span class="p">))</span>
+    <span class="n">shutil</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">imgLogo</span><span class="p">,</span> <span class="n">logDir</span><span class="p">)</span>
+
+    <span class="c1"># If the last option is invoked, just, show the last log file</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">last_terminal</span><span class="p">:</span>
+        <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
+        <span class="n">rootLogDir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span> <span class="s1">&#39;LOGS&#39;</span><span class="p">)</span>
+        <span class="n">UTS</span><span class="o">.</span><span class="n">ensure_path_exists</span><span class="p">(</span><span class="n">rootLogDir</span><span class="p">)</span>
+        <span class="n">log_dirs</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">rootLogDir</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">log_dirs</span> <span class="o">==</span> <span class="p">[]:</span>
+          <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;log directory empty&quot;</span><span class="p">)</span>
+        <span class="n">log_dirs</span><span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">log_dirs</span><span class="p">)</span>
+        <span class="n">res</span> <span class="o">=</span> <span class="n">show_last_logs</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">log_dirs</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">res</span>
+
+    <span class="c1"># If the last option is invoked, just, show the last log file</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">last</span><span class="p">:</span>
+        <span class="n">lastLogFilePath</span> <span class="o">=</span> <span class="n">get_last_log_file</span><span class="p">(</span>
+            <span class="n">logDir</span><span class="p">,</span> <span class="n">notShownCommands</span> <span class="o">+</span> <span class="p">[</span><span class="s2">&quot;config&quot;</span><span class="p">])</span>
+        <span class="k">if</span> <span class="n">lastLogFilePath</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;last log file not found in &#39;</span><span class="si">%s</span><span class="s2">&#39;&quot;</span> <span class="o">%</span> <span class="n">logDir</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">terminal</span><span class="p">:</span>
+            <span class="c1"># Show the log corresponding to the selected command call</span>
+            <span class="n">res</span> <span class="o">=</span> <span class="n">print_log_command_in_terminal</span><span class="p">(</span><span class="n">lastLogFilePath</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="c1"># open the log xml file in the user editor</span>
+            <span class="n">res</span> <span class="o">=</span> <span class="n">SYSS</span><span class="o">.</span><span class="n">show_in_editor</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">USER</span><span class="o">.</span><span class="n">browser</span><span class="p">,</span> 
+                                      <span class="n">lastLogFilePath</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">res</span>
+
+    <span class="c1"># If the user asks for a terminal display</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">terminal</span><span class="p">:</span>
+        <span class="c1"># Parse the log directory in order to find </span>
+        <span class="c1"># all the files corresponding to the commands</span>
+        <span class="n">lLogs</span> <span class="o">=</span> <span class="n">UTS</span><span class="o">.</span><span class="n">list_log_file</span><span class="p">(</span><span class="n">logDir</span><span class="p">,</span> <span class="n">UTS</span><span class="o">.</span><span class="n">_log_macro_command_file_expression</span><span class="p">)</span>
+        <span class="n">lLogsFiltered</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="k">for</span> <span class="n">filePath</span><span class="p">,</span> <span class="n">__</span><span class="p">,</span> <span class="n">date</span><span class="p">,</span> <span class="n">__</span><span class="p">,</span> <span class="n">hour</span><span class="p">,</span> <span class="n">cmd</span><span class="p">,</span> <span class="n">__</span> <span class="ow">in</span> <span class="n">lLogs</span><span class="p">:</span>
+            <span class="n">showLog</span> <span class="o">=</span> <span class="n">UTS</span><span class="o">.</span><span class="n">show_command_log</span><span class="p">(</span><span class="n">filePath</span><span class="p">,</span> <span class="n">cmd</span><span class="p">,</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">,</span> <span class="n">notShownCommands</span><span class="p">)</span>
+            <span class="c1"># showLog, cmdAppli, __ = UTS.show_command_log(filePath, cmd, </span>
+            <span class="c1">#                     config.VARS.application, notShownCommands)</span>
+            <span class="n">cmdAppli</span> <span class="o">=</span> <span class="n">showLog</span><span class="o">.</span><span class="n">getValue</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
+            <span class="k">if</span> <span class="n">showLog</span><span class="o">.</span><span class="n">isOk</span><span class="p">():</span>
+                <span class="n">lLogsFiltered</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">filePath</span><span class="p">,</span> <span class="n">date</span><span class="p">,</span> <span class="n">hour</span><span class="p">,</span> <span class="n">cmd</span><span class="p">,</span> <span class="n">cmdAppli</span><span class="p">))</span>
+            
+        <span class="n">lLogsFiltered</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">lLogsFiltered</span><span class="p">)</span>
+        <span class="n">nb_logs</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">lLogsFiltered</span><span class="p">)</span>
+        <span class="n">index</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="c1"># loop on all files and print it with date, time and command name </span>
+        <span class="k">for</span> <span class="n">__</span><span class="p">,</span> <span class="n">date</span><span class="p">,</span> <span class="n">hour</span><span class="p">,</span> <span class="n">cmd</span><span class="p">,</span> <span class="n">cmdAppli</span> <span class="ow">in</span> <span class="n">lLogsFiltered</span><span class="p">:</span>          
+            <span class="n">num</span> <span class="o">=</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%2d</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">nb_logs</span> <span class="o">-</span> <span class="n">index</span><span class="p">))</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2">: </span><span class="si">%13s</span><span class="s2"> </span><span class="si">%s</span><span class="s2"> </span><span class="si">%s</span><span class="s2"> </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">num</span><span class="p">,</span> <span class="n">cmd</span><span class="p">,</span> <span class="n">date</span><span class="p">,</span> <span class="n">hour</span><span class="p">,</span> <span class="n">cmdAppli</span><span class="p">))</span>
+            <span class="n">index</span> <span class="o">+=</span> <span class="mi">1</span>
+        
+        <span class="c1"># ask the user what for what command he wants to be displayed</span>
+        <span class="n">x</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
+        <span class="k">while</span> <span class="p">(</span><span class="n">x</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">):</span>
+            <span class="n">x</span> <span class="o">=</span> <span class="n">ask_value</span><span class="p">(</span><span class="n">nb_logs</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">x</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+                <span class="n">index</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">lLogsFiltered</span><span class="p">)</span> <span class="o">-</span> <span class="nb">int</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
+                <span class="c1"># Show the log corresponding to the selected command call</span>
+                <span class="n">print_log_command_in_terminal</span><span class="p">(</span><span class="n">lLogsFiltered</span><span class="p">[</span><span class="n">index</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">logger</span><span class="p">)</span>                
+                <span class="n">x</span> <span class="o">=</span> <span class="mi">0</span>
+        
+        <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;end from user&quot;</span><span class="p">)</span>
+                    
+    <span class="c1"># Create or update the hat xml that gives access to all the commands log files</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Generating the hat log file (can be long) ... &quot;</span><span class="p">))</span>
+    <span class="n">xmlHatFilePath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">logDir</span><span class="p">,</span> <span class="s1">&#39;hat.xml&#39;</span><span class="p">)</span>
+    <span class="n">UTS</span><span class="o">.</span><span class="n">update_hat_xml</span><span class="p">(</span><span class="n">logDir</span><span class="p">,</span> 
+                       <span class="n">application</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">,</span> 
+                       <span class="n">notShownCommands</span> <span class="o">=</span> <span class="n">notShownCommands</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;&lt;OK&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+    
+    <span class="c1"># open the hat xml in the user editor</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">no_browser</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Opening the log file&quot;</span><span class="p">))</span>
+        <span class="n">res</span> <span class="o">=</span>  <span class="n">SYSS</span><span class="o">.</span><span class="n">show_in_editor</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">USER</span><span class="o">.</span><span class="n">browser</span><span class="p">,</span> <span class="n">xmlHatFilePath</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">res</span>
+    
+    <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;option no browser&quot;</span><span class="p">)</span></div></div>
+<div class="viewcode-block" id="get_last_log_file"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.log.get_last_log_file">[docs]</a><span class="k">def</span> <span class="nf">get_last_log_file</span><span class="p">(</span><span class="n">logDir</span><span class="p">,</span> <span class="n">notShownCommands</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Used in case of last option. </span>
+<span class="sd">    Get the last log command file path.</span>
+<span class="sd">    </span>
+<span class="sd">    :param logDir: (str) The directory where to search the log files</span>
+<span class="sd">    :param notShownCommands: (list) the list of commands to ignore</span>
+<span class="sd">    :return: (str) the path to the last log file</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">last</span> <span class="o">=</span> <span class="p">(</span><span class="n">_</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
+    <span class="k">for</span> <span class="n">fileName</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">logDir</span><span class="p">):</span>
+        <span class="c1"># YYYYMMDD_HHMMSS_namecmd.xml</span>
+        <span class="n">sExpr</span> <span class="o">=</span> <span class="n">UTS</span><span class="o">.</span><span class="n">_log_macro_command_file_expression</span>
+        <span class="n">oExpr</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="n">sExpr</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">oExpr</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">fileName</span><span class="p">):</span>
+            <span class="c1"># get date and hour and format it</span>
+            <span class="n">date_hour_cmd</span> <span class="o">=</span> <span class="n">fileName</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;_&#39;</span><span class="p">)</span>
+            <span class="n">datehour</span> <span class="o">=</span> <span class="n">date_hour_cmd</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">date_hour_cmd</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+            <span class="n">cmd</span> <span class="o">=</span> <span class="n">date_hour_cmd</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
+            <span class="k">if</span> <span class="n">cmd</span> <span class="ow">in</span> <span class="n">notShownCommands</span><span class="p">:</span>
+                <span class="k">continue</span>
+            <span class="k">if</span> <span class="nb">int</span><span class="p">(</span><span class="n">datehour</span><span class="p">)</span> <span class="o">&gt;</span> <span class="n">last</span><span class="p">[</span><span class="mi">1</span><span class="p">]:</span>
+                <span class="n">last</span> <span class="o">=</span> <span class="p">(</span><span class="n">fileName</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">datehour</span><span class="p">))</span>
+    <span class="k">if</span> <span class="n">last</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="n">res</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">logDir</span><span class="p">,</span> <span class="n">last</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
+    <span class="k">else</span><span class="p">:</span>
+      <span class="n">res</span> <span class="o">=</span> <span class="kc">None</span> <span class="c1">#no log file</span>
+    <span class="k">return</span> <span class="n">res</span></div>
+
+<div class="viewcode-block" id="remove_log_file"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.log.remove_log_file">[docs]</a><span class="k">def</span> <span class="nf">remove_log_file</span><span class="p">(</span><span class="n">filePath</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;if it exists, print a warning and remove the input file</span>
+<span class="sd">    </span>
+<span class="sd">    :param filePath: the path of the file to delete</span>
+<span class="sd">    :param logger: (Logger) the logger instance to use for the print </span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">filePath</span><span class="p">):</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="s2">&quot;Removing </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">filePath</span><span class="p">))</span>
+        <span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">filePath</span><span class="p">)</span></div>
+
+<div class="viewcode-block" id="print_log_command_in_terminal"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.log.print_log_command_in_terminal">[docs]</a><span class="k">def</span> <span class="nf">print_log_command_in_terminal</span><span class="p">(</span><span class="n">filePath</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Print the contain of filePath. It contains a command log in xml format.</span>
+<span class="sd">    </span>
+<span class="sd">    :param filePath: </span>
+<span class="sd">      The command xml file from which extract the commands context and traces</span>
+<span class="sd">    :param logger: (Logger) the logging instance to use in order to print.  </span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Reading </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">filePath</span><span class="p">)</span>
+    <span class="c1"># Instantiate the ReadXmlFile class that reads xml files</span>
+    <span class="n">xmlRead</span> <span class="o">=</span> <span class="n">XMLMGR</span><span class="o">.</span><span class="n">ReadXmlFile</span><span class="p">(</span><span class="n">filePath</span><span class="p">)</span>
+    <span class="c1"># Get the attributes containing the context (user, OS, time, etc..)</span>
+    <span class="n">dAttrText</span> <span class="o">=</span> <span class="n">xmlRead</span><span class="o">.</span><span class="n">get_attrib</span><span class="p">(</span><span class="s1">&#39;Site&#39;</span><span class="p">)</span>
+    <span class="c1"># format dAttrText and print the context</span>
+    <span class="n">lAttrText</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="k">for</span> <span class="n">attrib</span> <span class="ow">in</span> <span class="n">dAttrText</span><span class="p">:</span>
+        <span class="n">lAttrText</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">attrib</span><span class="p">,</span> <span class="n">dAttrText</span><span class="p">[</span><span class="n">attrib</span><span class="p">]))</span>
+    
+    <span class="n">UTS</span><span class="o">.</span><span class="n">logger_info_tuples</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">lAttrText</span><span class="p">)</span>
+    <span class="c1"># Get the traces</span>
+    <span class="n">command_traces</span> <span class="o">=</span> <span class="n">xmlRead</span><span class="o">.</span><span class="n">get_node_text</span><span class="p">(</span><span class="s1">&#39;Log&#39;</span><span class="p">)</span>
+    <span class="c1"># Print it if there is any</span>
+    <span class="k">if</span> <span class="n">command_traces</span><span class="p">:</span>
+      <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Here are the command traces :</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">command_traces</span>
+      <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span></div>
+        
+<div class="viewcode-block" id="getMaxFormat"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.log.getMaxFormat">[docs]</a><span class="k">def</span> <span class="nf">getMaxFormat</span><span class="p">(</span><span class="n">aListOfStr</span><span class="p">,</span> <span class="n">offset</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;returns format for columns width as &#39;%-30s&quot;&#39; for example&quot;&quot;&quot;</span>
+    <span class="n">maxLen</span> <span class="o">=</span> <span class="nb">max</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">aListOfStr</span><span class="p">])</span> <span class="o">+</span> <span class="n">offset</span>
+    <span class="n">fmt</span> <span class="o">=</span>  <span class="s2">&quot;%-&quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">maxLen</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;s&quot;</span> <span class="c1"># &quot;%-30s&quot; for example  </span>
+    <span class="k">return</span> <span class="n">fmt</span><span class="p">,</span> <span class="n">maxLen</span></div>
+
+<div class="viewcode-block" id="show_last_logs"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.log.show_last_logs">[docs]</a><span class="k">def</span> <span class="nf">show_last_logs</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">log_dirs</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Show last compilation logs&quot;&quot;&quot;</span>
+    <span class="n">log_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span> <span class="s1">&#39;LOGS&#39;</span><span class="p">)</span>
+    <span class="c1"># list the logs</span>
+    <span class="n">nb</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">log_dirs</span><span class="p">)</span>
+    <span class="n">fmt1</span><span class="p">,</span> <span class="n">maxLen</span> <span class="o">=</span> <span class="n">getMaxFormat</span><span class="p">(</span><span class="n">log_dirs</span><span class="p">,</span> <span class="n">offset</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+    <span class="n">fmt2</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">: &quot;</span> <span class="o">+</span> <span class="n">fmt1</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span>  <span class="c1"># &quot;%s: %-30s\n&quot; for example</span>
+    <span class="n">nb_cols</span> <span class="o">=</span> <span class="mi">5</span>
+    <span class="c1"># line ~ no more 100 chars</span>
+    <span class="k">if</span> <span class="n">maxLen</span> <span class="o">&gt;</span> <span class="mi">20</span><span class="p">:</span> <span class="n">nb_cols</span> <span class="o">=</span> <span class="mi">4</span>
+    <span class="k">if</span> <span class="n">maxLen</span> <span class="o">&gt;</span> <span class="mi">25</span><span class="p">:</span> <span class="n">nb_cols</span> <span class="o">=</span> <span class="mi">3</span>
+    <span class="k">if</span> <span class="n">maxLen</span> <span class="o">&gt;</span> <span class="mi">33</span><span class="p">:</span> <span class="n">nb_cols</span> <span class="o">=</span> <span class="mi">2</span>
+    <span class="k">if</span> <span class="n">maxLen</span> <span class="o">&gt;</span> <span class="mi">50</span><span class="p">:</span> <span class="n">nb_cols</span> <span class="o">=</span> <span class="mi">1</span>
+    <span class="n">col_size</span> <span class="o">=</span> <span class="p">(</span><span class="n">nb</span> <span class="o">/</span> <span class="n">nb_cols</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>
+    <span class="k">for</span> <span class="n">index</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">col_size</span><span class="p">):</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">nb_cols</span><span class="p">):</span>
+            <span class="n">k</span> <span class="o">=</span> <span class="n">index</span> <span class="o">+</span> <span class="n">i</span> <span class="o">*</span> <span class="n">col_size</span>
+            <span class="k">if</span> <span class="n">k</span> <span class="o">&lt;</span> <span class="n">nb</span><span class="p">:</span>
+                <span class="n">l</span> <span class="o">=</span> <span class="n">log_dirs</span><span class="p">[</span><span class="n">k</span><span class="p">]</span>
+                <span class="n">str_indice</span> <span class="o">=</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%2d</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">k</span><span class="o">+</span><span class="mi">1</span><span class="p">))</span>
+                <span class="n">log_name</span> <span class="o">=</span> <span class="n">l</span>
+                <span class="n">msg</span> <span class="o">+=</span> <span class="n">fmt2</span> <span class="o">%</span> <span class="p">(</span><span class="n">str_indice</span><span class="p">,</span> <span class="n">log_name</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+    <span class="c1"># loop till exit</span>
+    <span class="n">x</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
+    <span class="k">while</span> <span class="p">(</span><span class="n">x</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">):</span>
+        <span class="n">x</span> <span class="o">=</span> <span class="n">ask_value</span><span class="p">(</span><span class="n">nb</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">x</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">product_log_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">log_dir</span><span class="p">,</span> <span class="n">log_dirs</span><span class="p">[</span><span class="n">x</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
+            <span class="n">show_product_last_logs</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">product_log_dir</span><span class="p">)</span></div>
+
+<div class="viewcode-block" id="show_product_last_logs"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.log.show_product_last_logs">[docs]</a><span class="k">def</span> <span class="nf">show_product_last_logs</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">product_log_dir</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Show last compilation logs of a product&quot;&quot;&quot;</span>
+    <span class="c1"># sort the files chronologically</span>
+    <span class="n">l_time_file</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="k">for</span> <span class="n">file_n</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">product_log_dir</span><span class="p">):</span>
+        <span class="n">my_stat</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">stat</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">product_log_dir</span><span class="p">,</span> <span class="n">file_n</span><span class="p">))</span>
+        <span class="n">l_time_file</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
+              <span class="p">(</span><span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">fromtimestamp</span><span class="p">(</span><span class="n">my_stat</span><span class="p">[</span><span class="n">stat</span><span class="o">.</span><span class="n">ST_MTIME</span><span class="p">]),</span> <span class="n">file_n</span><span class="p">))</span>
+    
+    <span class="c1"># display the available logs</span>
+    <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="p">(</span><span class="n">__</span><span class="p">,</span> <span class="n">file_name</span><span class="p">)</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="nb">sorted</span><span class="p">(</span><span class="n">l_time_file</span><span class="p">)):</span>
+        <span class="n">str_indice</span> <span class="o">=</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%2d</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">))</span>
+        <span class="n">opt</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="n">my_stat</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">stat</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">product_log_dir</span><span class="p">,</span> <span class="n">file_name</span><span class="p">))</span>
+        <span class="n">opt</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">fromtimestamp</span><span class="p">(</span><span class="n">my_stat</span><span class="p">[</span><span class="n">stat</span><span class="o">.</span><span class="n">ST_MTIME</span><span class="p">])))</span>
+        
+        <span class="n">opt</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;(</span><span class="si">%8.2f</span><span class="s2">)&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">my_stat</span><span class="p">[</span><span class="n">stat</span><span class="o">.</span><span class="n">ST_SIZE</span><span class="p">]</span> <span class="o">/</span> <span class="mf">1024.0</span><span class="p">))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot; </span><span class="si">%-35s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="s2">&quot; &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">opt</span><span class="p">))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2">: </span><span class="si">%-30s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">str_indice</span><span class="p">,</span> <span class="n">file_name</span><span class="p">))</span>
+        
+    <span class="c1"># loop till exit</span>
+    <span class="n">x</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
+    <span class="k">while</span> <span class="p">(</span><span class="n">x</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">):</span>
+        <span class="n">x</span> <span class="o">=</span> <span class="n">ask_value</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">l_time_file</span><span class="p">))</span>
+        <span class="k">if</span> <span class="n">x</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="p">(</span><span class="n">__</span><span class="p">,</span> <span class="n">file_name</span><span class="p">)</span> <span class="o">=</span>  <span class="nb">sorted</span><span class="p">(</span><span class="n">l_time_file</span><span class="p">)[</span><span class="n">x</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
+            <span class="n">log_file_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">product_log_dir</span><span class="p">,</span> <span class="n">file_name</span><span class="p">)</span>
+            <span class="n">SYSS</span><span class="o">.</span><span class="n">show_in_editor</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">USER</span><span class="o">.</span><span class="n">editor</span><span class="p">,</span> <span class="n">log_file_path</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span></div>
+        
+<div class="viewcode-block" id="ask_value"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.log.ask_value">[docs]</a><span class="k">def</span> <span class="nf">ask_value</span><span class="p">(</span><span class="n">nb</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Ask for an int n. 0&lt;n&lt;nb</span>
+<span class="sd">    </span>
+<span class="sd">    :param nb: (int) The maximum value of the value to be returned by the user.</span>
+<span class="sd">    :return: (int) </span>
+<span class="sd">      the value entered by the user. Return -1 if it is not as expected</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="c1"># ask for a value</span>
+        <span class="n">rep</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Which one (enter or 0 to quit)? &quot;</span><span class="p">))</span>
+        <span class="c1"># Verify it is on the right range</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">rep</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">x</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">x</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">rep</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">x</span> <span class="o">&gt;</span> <span class="n">nb</span><span class="p">:</span>
+                <span class="n">x</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
+    <span class="k">except</span><span class="p">:</span>
+        <span class="n">x</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
+    
+    <span class="k">return</span> <span class="n">x</span></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/make.html b/doc/build/html/_modules/commands/make.html
new file mode 100644 (file)
index 0000000..3134317
--- /dev/null
@@ -0,0 +1,351 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.make &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.make</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+<span class="kn">import</span> <span class="nn">os</span>
+<span class="kn">import</span> <span class="nn">re</span>
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">import</span> <span class="nn">src.utilsSat</span> <span class="k">as</span> <span class="nn">UTS</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.make.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">  The make command executes the &#39;make&#39; command in the build directory.</span>
+
+<span class="sd">  examples:</span>
+<span class="sd">  &gt;&gt; sat make SALOME --products Python,KERNEL,GUI</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;make&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.make.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for the command &#39;sat make &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;p&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span> <span class="s1">&#39;list2&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: products to configure. This option can be&#39;</span>
+          <span class="s1">&#39; passed several time to configure several products.&#39;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;o&#39;</span><span class="p">,</span> <span class="s1">&#39;option&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;option&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: Option to add to the make command.&#39;</span><span class="p">),</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>   
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.make.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat make &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+
+    <span class="c1"># check that the command has been called with an application</span>
+    <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span> <span class="n">config</span> <span class="p">)</span>
+
+    <span class="c1"># Get the list of products to treat</span>
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="n">get_products_list</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+    
+    <span class="c1"># Print some informations</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Executing the make command in the build directories of the application </span><span class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span> <span class="o">%</span> \
+        <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">))</span>
+    
+    <span class="n">info</span> <span class="o">=</span> <span class="p">[(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;BUILD directory&quot;</span><span class="p">),</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span> <span class="s1">&#39;BUILD&#39;</span><span class="p">))]</span>
+    <span class="n">UTS</span><span class="o">.</span><span class="n">logger_info_tuples</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">info</span><span class="p">)</span>
+    
+    <span class="c1"># Call the function that will loop over all the products and execute</span>
+    <span class="c1"># the right command(s)</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">option</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="n">options</span><span class="o">.</span><span class="n">option</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="n">make_all_products</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">products_infos</span><span class="p">,</span> <span class="n">options</span><span class="o">.</span><span class="n">option</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+    
+    <span class="c1"># Print the final state</span>
+    <span class="n">nb_products</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">products_infos</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">res</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">final_status</span> <span class="o">=</span> <span class="s2">&quot;OK&quot;</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">final_status</span> <span class="o">=</span> <span class="s2">&quot;KO&quot;</span>
+   
+    <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">Make: &lt;</span><span class="si">%s</span><span class="s2">&gt; (</span><span class="si">%d</span><span class="s2">/</span><span class="si">%d</span><span class="s2">)</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="p">(</span><span class="n">final_status</span><span class="p">,</span> <span class="n">nb_products</span> <span class="o">-</span> <span class="n">res</span><span class="p">,</span> <span class="n">nb_products</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>    
+    
+    <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="n">final_status</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span> </div></div>
+
+
+<div class="viewcode-block" id="get_products_list"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.make.get_products_list">[docs]</a><span class="k">def</span> <span class="nf">get_products_list</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">cfg</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    method that gives the product list with their informations from </span>
+<span class="sd">    configuration regarding the passed options.</span>
+<span class="sd">    </span>
+<span class="sd">    :param options: (Options) </span>
+<span class="sd">      The Options instance that stores the commands arguments</span>
+<span class="sd">    :param cfg: (Config) The global configuration</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :return: (list) The list of tuples (product name, product_informations).</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c1"># Get the products to be prepared, regarding the options</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">products</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="c1"># No options, get all products sources</span>
+        <span class="n">products</span> <span class="o">=</span> <span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="c1"># if option --products, check that all products of the command line</span>
+        <span class="c1"># are present in the application.</span>
+        <span class="n">products</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">products</span>
+        <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">products</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">p</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Product </span><span class="si">%(product)s</span><span class="s2"> &quot;</span>
+                            <span class="s2">&quot;not defined in application </span><span class="si">%(application)s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span>
+                        <span class="p">{</span> <span class="s1">&#39;product&#39;</span><span class="p">:</span> <span class="n">p</span><span class="p">,</span> <span class="s1">&#39;application&#39;</span><span class="p">:</span> <span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">}</span> <span class="p">)</span>
+    
+    <span class="c1"># Construct the list of tuple containing </span>
+    <span class="c1"># the products name and their definition</span>
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_products_infos</span><span class="p">(</span><span class="n">products</span><span class="p">,</span> <span class="n">cfg</span><span class="p">)</span>
+    
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="p">[</span><span class="n">pi</span> <span class="k">for</span> <span class="n">pi</span> <span class="ow">in</span> <span class="n">products_infos</span> <span class="k">if</span> <span class="ow">not</span><span class="p">(</span>
+                                     <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_native</span><span class="p">(</span><span class="n">pi</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="ow">or</span> 
+                                     <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_fixed</span><span class="p">(</span><span class="n">pi</span><span class="p">[</span><span class="mi">1</span><span class="p">]))]</span>
+    
+    <span class="k">return</span> <span class="n">products_infos</span></div>
+
+<div class="viewcode-block" id="log_step"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.make.log_step">[docs]</a><span class="k">def</span> <span class="nf">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="n">step</span><span class="p">):</span>
+    <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="mi">20</span><span class="p">)</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="n">step</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">==== </span><span class="si">%s</span><span class="s2"> </span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">step</span><span class="p">))</span></div>
+
+<div class="viewcode-block" id="log_res_step"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.make.log_res_step">[docs]</a><span class="k">def</span> <span class="nf">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res</span><span class="p">):</span>
+    <span class="k">if</span> <span class="n">res</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;&lt;OK&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;&lt;KO&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span></div>
+
+
+<div class="viewcode-block" id="make_all_products"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.make.make_all_products">[docs]</a><span class="k">def</span> <span class="nf">make_all_products</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">products_infos</span><span class="p">,</span> <span class="n">make_option</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Execute the proper configuration commands </span>
+<span class="sd">    in each product build directory.</span>
+
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param products_info: (list) </span>
+<span class="sd">      List of (str, Config) =&gt; (product_name, product_info)</span>
+<span class="sd">    :param make_option: (str) The options to add to the command</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :return: (int) the number of failing commands.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="k">for</span> <span class="n">p_name_info</span> <span class="ow">in</span> <span class="n">products_infos</span><span class="p">:</span>
+        <span class="n">res_prod</span> <span class="o">=</span> <span class="n">make_product</span><span class="p">(</span><span class="n">p_name_info</span><span class="p">,</span> <span class="n">make_option</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">res_prod</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">res</span> <span class="o">+=</span> <span class="mi">1</span> 
+    <span class="k">return</span> <span class="n">res</span></div>
+
+<div class="viewcode-block" id="make_product"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.make.make_product">[docs]</a><span class="k">def</span> <span class="nf">make_product</span><span class="p">(</span><span class="n">p_name_info</span><span class="p">,</span> <span class="n">make_option</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Execute the proper configuration command(s) </span>
+<span class="sd">    in the product build directory.</span>
+<span class="sd">    </span>
+<span class="sd">    :param p_name_info: (tuple) (str, Config) =&gt; (product_name, product_info)</span>
+<span class="sd">    :param make_option: (str) The options to add to the command</span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :return: (int) 1 if it fails, else 0.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    
+    <span class="n">p_name</span><span class="p">,</span> <span class="n">p_info</span> <span class="o">=</span> <span class="n">p_name_info</span>
+    
+    <span class="c1"># Logging</span>
+    <span class="n">header</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Make of </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">p_name</span><span class="p">)</span>
+    <span class="n">header</span> <span class="o">+=</span> <span class="s2">&quot; </span><span class="si">%s</span><span class="s2"> &quot;</span> <span class="o">%</span> <span class="p">(</span><span class="s2">&quot;.&quot;</span> <span class="o">*</span> <span class="p">(</span><span class="mi">20</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">p_name</span><span class="p">)))</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">header</span><span class="p">)</span>
+
+    <span class="c1"># Do nothing if he product is not compilable</span>
+    <span class="k">if</span> <span class="p">(</span><span class="s2">&quot;properties&quot;</span> <span class="ow">in</span> <span class="n">p_info</span> <span class="ow">and</span> \
+        <span class="s2">&quot;compilation&quot;</span> <span class="ow">in</span> <span class="n">p_info</span><span class="o">.</span><span class="n">properties</span> <span class="ow">and</span> \
+        <span class="n">p_info</span><span class="o">.</span><span class="n">properties</span><span class="o">.</span><span class="n">compilation</span> <span class="o">==</span> <span class="s2">&quot;no&quot;</span><span class="p">):</span>
+        <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;ignored&quot;</span><span class="p">)</span>
+        <span class="k">return</span> <span class="mi">0</span>
+
+    <span class="c1"># Instantiate the class that manages all the construction commands</span>
+    <span class="c1"># like cmake, make, make install, make test, environment management, etc...</span>
+    <span class="n">builder</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">compilation</span><span class="o">.</span><span class="n">Builder</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">p_info</span><span class="p">)</span>
+    
+    <span class="c1"># Prepare the environment</span>
+    <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;PREPARE ENV&quot;</span><span class="p">)</span>
+    <span class="n">res_prepare</span> <span class="o">=</span> <span class="n">builder</span><span class="o">.</span><span class="n">prepare</span><span class="p">()</span>
+    <span class="n">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res_prepare</span><span class="p">)</span>
+    
+    <span class="c1"># Execute buildconfigure, configure if the product is autotools</span>
+    <span class="c1"># Execute cmake if the product is cmake</span>
+    <span class="n">len_end_line</span> <span class="o">=</span> <span class="mi">20</span>
+
+    <span class="n">nb_proc</span><span class="p">,</span> <span class="n">make_opt_without_j</span> <span class="o">=</span> <span class="n">get_nb_proc</span><span class="p">(</span><span class="n">p_info</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">make_option</span><span class="p">)</span>
+    <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;MAKE -j&quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">nb_proc</span><span class="p">))</span>
+    <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">architecture</span><span class="o">.</span><span class="n">is_windows</span><span class="p">():</span>
+        <span class="n">res</span> <span class="o">=</span> <span class="n">builder</span><span class="o">.</span><span class="n">wmake</span><span class="p">(</span><span class="n">nb_proc</span><span class="p">,</span> <span class="n">make_opt_without_j</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">res</span> <span class="o">=</span> <span class="n">builder</span><span class="o">.</span><span class="n">make</span><span class="p">(</span><span class="n">nb_proc</span><span class="p">,</span> <span class="n">make_opt_without_j</span><span class="p">)</span>
+    <span class="n">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res</span><span class="p">)</span>
+    
+    <span class="c1"># Log the result</span>
+    <span class="k">if</span> <span class="n">res</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="n">len_end_line</span><span class="p">))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">header</span> <span class="o">+</span> <span class="s2">&quot;&lt;KO&gt;&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;==== &lt;KO&gt; in make of </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">p_name</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="n">len_end_line</span><span class="p">))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">header</span> <span class="o">+</span> <span class="s2">&quot;&lt;OK&gt;&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;==== &lt;OK&gt; in make of </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">p_name</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">res</span></div>
+
+<div class="viewcode-block" id="get_nb_proc"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.make.get_nb_proc">[docs]</a><span class="k">def</span> <span class="nf">get_nb_proc</span><span class="p">(</span><span class="n">product_info</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">make_option</span><span class="p">):</span>
+    
+    <span class="n">opt_nb_proc</span> <span class="o">=</span> <span class="kc">None</span>
+    <span class="n">new_make_option</span> <span class="o">=</span> <span class="n">make_option</span>
+    <span class="k">if</span> <span class="s2">&quot;-j&quot;</span> <span class="ow">in</span> <span class="n">make_option</span><span class="p">:</span>
+        <span class="n">oExpr</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s2">&quot;-j[0-9]+&quot;</span><span class="p">)</span>
+        <span class="n">found</span> <span class="o">=</span> <span class="n">oExpr</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">make_option</span><span class="p">)</span>
+        <span class="n">opt_nb_proc</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">re</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s1">&#39;\d+&#39;</span><span class="p">,</span> <span class="n">found</span><span class="o">.</span><span class="n">group</span><span class="p">())[</span><span class="mi">0</span><span class="p">])</span>
+        <span class="n">new_make_option</span> <span class="o">=</span> <span class="n">make_option</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">found</span><span class="o">.</span><span class="n">group</span><span class="p">(),</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
+    
+    <span class="n">nbproc</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
+    <span class="k">if</span> <span class="s2">&quot;nb_proc&quot;</span> <span class="ow">in</span> <span class="n">product_info</span><span class="p">:</span>
+        <span class="c1"># nb proc is specified in module definition</span>
+        <span class="n">nbproc</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">nb_proc</span>
+        <span class="k">if</span> <span class="n">opt_nb_proc</span> <span class="ow">and</span> <span class="n">opt_nb_proc</span> <span class="o">&lt;</span> <span class="n">product_info</span><span class="o">.</span><span class="n">nb_proc</span><span class="p">:</span>
+            <span class="c1"># use command line value only if it is lower than module definition</span>
+            <span class="n">nbproc</span> <span class="o">=</span> <span class="n">opt_nb_proc</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="c1"># nb proc is not specified in module definition</span>
+        <span class="k">if</span> <span class="n">opt_nb_proc</span><span class="p">:</span>
+            <span class="n">nbproc</span> <span class="o">=</span> <span class="n">opt_nb_proc</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">nbproc</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">nb_proc</span>
+    
+    <span class="k">assert</span> <span class="n">nbproc</span> <span class="o">&gt;</span> <span class="mi">0</span>
+    <span class="k">return</span> <span class="n">nbproc</span><span class="p">,</span> <span class="n">new_make_option</span></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/makeinstall.html b/doc/build/html/_modules/commands/makeinstall.html
new file mode 100644 (file)
index 0000000..3af8980
--- /dev/null
@@ -0,0 +1,312 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.makeinstall &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.makeinstall</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.makeinstall.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">  The makeinstall command executes the &#39;make install&#39; command in the build directory.</span>
+<span class="sd">  In case of product constructed using a script (build_source : &#39;script&#39;), </span>
+<span class="sd">  then the makeinstall command do nothing.</span>
+<span class="sd">  </span>
+<span class="sd">  examples:</span>
+<span class="sd">  &gt;&gt; sat makeinstall SALOME --products KERNEL,GUI</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;makeinstall&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.makeinstall.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for the command &#39;sat makeinstall &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;p&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span> <span class="s1">&#39;list2&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: products to install. This option can be&#39;</span>
+        <span class="s1">&#39; passed several time to install several products.&#39;</span><span class="p">))</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.makeinstall.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat makeinstall &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+
+    <span class="c1"># check that the command has been called with an application</span>
+    <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span> <span class="n">config</span> <span class="p">)</span>
+
+    <span class="c1"># Get the list of products to treat</span>
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="n">get_products_list</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+
+    <span class="c1"># Print some informations</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Executing the make install command in the build directories of the application </span><span class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span> <span class="o">%</span> \
+                <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">))</span>
+    
+    <span class="n">info</span> <span class="o">=</span> <span class="p">[(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;BUILD directory&quot;</span><span class="p">),</span>
+             <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span> <span class="s1">&#39;BUILD&#39;</span><span class="p">))]</span>
+    <span class="n">UTS</span><span class="o">.</span><span class="n">logger_info_tuples</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">info</span><span class="p">)</span>
+    
+    <span class="c1"># Call the function that will loop over all the products and execute</span>
+    <span class="c1"># the right command(s)</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="n">makeinstall_all_products</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">products_infos</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+    
+    <span class="c1"># Print the final state</span>
+    <span class="n">nb_products</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">products_infos</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">res</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">final_status</span> <span class="o">=</span> <span class="s2">&quot;OK&quot;</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">final_status</span> <span class="o">=</span> <span class="s2">&quot;KO&quot;</span>
+   
+    <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">Make install: &lt;</span><span class="si">%s</span><span class="s2">&gt; (</span><span class="si">%d</span><span class="s2">/</span><span class="si">%d</span><span class="s2">)</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="p">(</span><span class="n">final_status</span><span class="p">,</span> <span class="n">nb_products</span> <span class="o">-</span> <span class="n">res</span><span class="p">,</span> <span class="n">nb_products</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>    
+    
+    <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="n">final_status</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span></div></div>
+   
+
+<div class="viewcode-block" id="get_products_list"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.makeinstall.get_products_list">[docs]</a><span class="k">def</span> <span class="nf">get_products_list</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">cfg</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    method that gives the product list with their informations from </span>
+<span class="sd">    configuration regarding the passed options.</span>
+<span class="sd">    </span>
+<span class="sd">    :param options: (Options) </span>
+<span class="sd">      The Options instance that stores the commands arguments</span>
+<span class="sd">    :param cfg: (Config) The global configuration</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :return: (list) The list of (product name, product_informations).</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c1"># Get the products to be prepared, regarding the options</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">products</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="c1"># No options, get all products sources</span>
+        <span class="n">products</span> <span class="o">=</span> <span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="c1"># if option --products, check that all products of the command line</span>
+        <span class="c1"># are present in the application.</span>
+        <span class="n">products</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">products</span>
+        <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">products</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">p</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Product </span><span class="si">%(product)s</span><span class="s2"> &quot;</span>
+                            <span class="s2">&quot;not defined in application </span><span class="si">%(application)s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span>
+                        <span class="p">{</span> <span class="s1">&#39;product&#39;</span><span class="p">:</span> <span class="n">p</span><span class="p">,</span> <span class="s1">&#39;application&#39;</span><span class="p">:</span> <span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">}</span> <span class="p">)</span>
+    
+    <span class="c1"># Construct the list of tuple containing </span>
+    <span class="c1"># the products name and their definition</span>
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_products_infos</span><span class="p">(</span><span class="n">products</span><span class="p">,</span> <span class="n">cfg</span><span class="p">)</span>
+    
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="p">[</span><span class="n">pi</span> <span class="k">for</span> <span class="n">pi</span> <span class="ow">in</span> <span class="n">products_infos</span> <span class="k">if</span> <span class="ow">not</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_native</span><span class="p">(</span><span class="n">pi</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="ow">or</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_fixed</span><span class="p">(</span><span class="n">pi</span><span class="p">[</span><span class="mi">1</span><span class="p">]))]</span>
+    
+    <span class="k">return</span> <span class="n">products_infos</span></div>
+
+<div class="viewcode-block" id="log_step"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.makeinstall.log_step">[docs]</a><span class="k">def</span> <span class="nf">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="n">step</span><span class="p">):</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="mi">20</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="n">step</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">==== </span><span class="si">%s</span><span class="s2"> </span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">step</span><span class="p">),</span> <span class="mi">4</span><span class="p">)</span></div>
+
+<div class="viewcode-block" id="log_res_step"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.makeinstall.log_res_step">[docs]</a><span class="k">def</span> <span class="nf">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res</span><span class="p">):</span>
+    <span class="k">if</span> <span class="n">res</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;&lt;OK&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;&lt;KO&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span></div>
+
+<div class="viewcode-block" id="makeinstall_all_products"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.makeinstall.makeinstall_all_products">[docs]</a><span class="k">def</span> <span class="nf">makeinstall_all_products</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">products_infos</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Execute the proper configuration commands </span>
+<span class="sd">    in each product build directory.</span>
+
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param products_info: (list) </span>
+<span class="sd">      List of (str, Config) =&gt; (product_name, product_info)</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :return: (int) the number of failing commands.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="k">for</span> <span class="n">p_name_info</span> <span class="ow">in</span> <span class="n">products_infos</span><span class="p">:</span>
+        <span class="n">res_prod</span> <span class="o">=</span> <span class="n">makeinstall_product</span><span class="p">(</span><span class="n">p_name_info</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">res_prod</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">res</span> <span class="o">+=</span> <span class="mi">1</span> 
+    <span class="k">return</span> <span class="n">res</span></div>
+
+<div class="viewcode-block" id="makeinstall_product"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.makeinstall.makeinstall_product">[docs]</a><span class="k">def</span> <span class="nf">makeinstall_product</span><span class="p">(</span><span class="n">p_name_info</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Execute the proper configuration command(s) </span>
+<span class="sd">    in the product build directory.</span>
+<span class="sd">    </span>
+<span class="sd">    :param p_name_info: (tuple) </span>
+<span class="sd">      (str, Config) =&gt; (product_name, product_info)</span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :return: (int) 1 if it fails, else 0.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    
+    <span class="n">p_name</span><span class="p">,</span> <span class="n">p_info</span> <span class="o">=</span> <span class="n">p_name_info</span>
+    
+    <span class="c1"># Logging</span>
+    <span class="n">header</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Make install of </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">p_name</span><span class="p">)</span>
+    <span class="n">header</span> <span class="o">+=</span> <span class="s2">&quot; </span><span class="si">%s</span><span class="s2"> &quot;</span> <span class="o">%</span> <span class="p">(</span><span class="s2">&quot;.&quot;</span> <span class="o">*</span> <span class="p">(</span><span class="mi">20</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">p_name</span><span class="p">)))</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">header</span><span class="p">)</span>
+
+    <span class="c1"># Do nothing if he product is not compilable</span>
+    <span class="k">if</span> <span class="p">(</span><span class="s2">&quot;properties&quot;</span> <span class="ow">in</span> <span class="n">p_info</span> <span class="ow">and</span> \
+        <span class="s2">&quot;compilation&quot;</span> <span class="ow">in</span> <span class="n">p_info</span><span class="o">.</span><span class="n">properties</span> <span class="ow">and</span> \
+        <span class="n">p_info</span><span class="o">.</span><span class="n">properties</span><span class="o">.</span><span class="n">compilation</span> <span class="o">==</span> <span class="s2">&quot;no&quot;</span><span class="p">):</span>
+        <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;ignored&quot;</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;product </span><span class="si">%s</span><span class="s2"> is not compilable&quot;</span> <span class="o">%</span> <span class="n">p_name</span><span class="p">)</span>
+
+    <span class="c1"># Instantiate the class that manages all the construction commands</span>
+    <span class="c1"># like cmake, make, make install, make test, environment management, etc...</span>
+    <span class="n">builder</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">compilation</span><span class="o">.</span><span class="n">Builder</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">p_info</span><span class="p">)</span>
+    
+    <span class="c1"># Prepare the environment</span>
+    <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;PREPARE ENV&quot;</span><span class="p">)</span>
+    <span class="n">res_prepare</span> <span class="o">=</span> <span class="n">builder</span><span class="o">.</span><span class="n">prepare</span><span class="p">()</span>
+    <span class="n">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res_prepare</span><span class="p">)</span>
+    
+    <span class="c1"># Execute buildconfigure, configure if the product is autotools</span>
+    <span class="c1"># Execute cmake if the product is cmake</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_has_script</span><span class="p">(</span><span class="n">p_info</span><span class="p">):</span>
+        <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;MAKE INSTALL&quot;</span><span class="p">)</span>
+        <span class="n">res_m</span> <span class="o">=</span> <span class="n">builder</span><span class="o">.</span><span class="n">install</span><span class="p">()</span>
+        <span class="n">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res_m</span><span class="p">)</span>
+        <span class="n">res</span> <span class="o">+=</span> <span class="n">res_m</span>
+    
+    <span class="c1"># Log the result</span>
+    <span class="k">if</span> <span class="n">res</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="mi">20</span><span class="p">))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">header</span> <span class="o">+</span> <span class="s2">&quot;&lt;KO&gt;&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;==== &lt;KO&gt; in make install of s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">p_name</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="mi">20</span><span class="p">))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">header</span> <span class="o">+</span> <span class="s2">&quot;&lt;OK&gt;&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;==== &lt;OK&gt; in make install of </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">p_name</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+    <span class="k">return</span> <span class="n">res</span></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/package.html b/doc/build/html/_modules/commands/package.html
new file mode 100644 (file)
index 0000000..cfdd9e0
--- /dev/null
@@ -0,0 +1,1456 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.package &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.package</h1><div class="highlight"><pre>
+<span></span>#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+
+#  Copyright (C) 2010-2012  CEA/DEN
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+
+import os
+import stat
+import shutil
+import datetime
+import tarfile
+import codecs
+import string
+import traceback
+
+from commands.application import get_SALOME_modules
+
+import src.debug as DBG
+import src.returnCode as RCO
+import src.utilsSat as UTS
+from src.salomeTools import _BaseCommand
+import src.pyconf as PYCONF
+import src.utilsSat as UTS
+
+BINARY = &quot;binary&quot;
+SOURCE = &quot;Source&quot;
+PROJECT = &quot;Project&quot;
+SAT = &quot;Sat&quot;
+
+ARCHIVE_DIR = &quot;ARCHIVES&quot;
+PROJECT_DIR = &quot;PROJECT&quot;
+
+IGNORED_DIRS = [&quot;.git&quot;, &quot;.svn&quot;]
+IGNORED_EXTENSIONS = []
+
+PROJECT_TEMPLATE = &quot;&quot;&quot;\
+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+
+# The path to the archive root directory
+root_path : $PWD + &quot;/../&quot;
+# path to the PROJECT
+project_path : $PWD + &quot;/&quot;
+
+# Where to search the archives of the products
+ARCHIVEPATH : $root_path + &quot;ARCHIVES&quot;
+# Where to search the pyconf of the applications
+APPLICATIONPATH : $project_path + &quot;applications/&quot;
+# Where to search the pyconf of the products
+PRODUCTPATH : $project_path + &quot;products/&quot;
+# Where to search the pyconf of the jobs of the project
+JOBPATH : $project_path + &quot;jobs/&quot;
+# Where to search the pyconf of the machines of the project
+MACHINEPATH : $project_path + &quot;machines/&quot;
+&quot;&quot;&quot;
+
+LOCAL_TEMPLATE = (&quot;&quot;&quot;\
+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+
+  LOCAL :
+  {
+    base : &#39;default&#39;
+    workdir : &#39;default&#39;
+    log_dir : &#39;default&#39;
+    archive_dir : &#39;default&#39;
+    VCS : None
+    tag : None
+  }
+
+PROJECTS :
+{
+project_file_paths : [$VARS.salometoolsway + $VARS.sep + \&quot;..\&quot; + $VARS.sep&quot;&quot;&quot;
+&quot;&quot;&quot; + \&quot;&quot;&quot;&quot; + PROJECT_DIR + &quot;&quot;&quot;\&quot; + $VARS.sep + &quot;project.pyconf&quot;]
+}
+&quot;&quot;&quot;)
+  
+
+########################################################################
+# Command class
+########################################################################
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.Command">[docs]</a>class Command(_BaseCommand):
+  &quot;&quot;&quot;
+  The package command creates an archive.
+  There are 4 kinds of archive, which can be mixed:
+  1- The binary archive. It contains all the product installation directories and a launcher.
+  2- The sources archive. It contains the products archives, a project corresponding to the application and salomeTools.
+  3- The project archive. It contains a project (give the project file path as argument).
+  4- The salomeTools archive. It contains salomeTools.
+  
+  examples:
+  &gt;&gt; sat package SALOME --binaries --sources
+  &quot;&quot;&quot;
+  
+  name = &quot;package&quot;
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.Command.getParser">[docs]</a>  def getParser(self):
+    &quot;&quot;&quot;Define all options for command &#39;sat package &lt;options&gt;&#39;&quot;&quot;&quot;
+    parser = self.getParserWithHelp()
+    parser.add_option(&#39;b&#39;, &#39;binaries&#39;, &#39;boolean&#39;, &#39;binaries&#39;,
+        _(&#39;Optional: Produce a binary package.&#39;), False)
+    parser.add_option(&#39;f&#39;, &#39;force_creation&#39;, &#39;boolean&#39;, &#39;force_creation&#39;,
+        _(&#39;Optional: Only binary package: produce the archive even if &#39;
+          &#39;there are some missing products.&#39;), False)
+    parser.add_option(&#39;s&#39;, &#39;sources&#39;, &#39;boolean&#39;, &#39;sources&#39;,
+        _(&#39;Optional: Produce a compilable archive of the sources of the &#39;
+          &#39;application.&#39;), False)
+    parser.add_option(&#39;&#39;, &#39;with_vcs&#39;, &#39;boolean&#39;, &#39;with_vcs&#39;,
+        _(&#39;Optional: Only source package: do not make archive of vcs products.&#39;),
+        False)
+    parser.add_option(&#39;p&#39;, &#39;project&#39;, &#39;string&#39;, &#39;project&#39;,
+        _(&#39;Optional: Produce an archive that contains a project.&#39;), &quot;&quot;)
+    parser.add_option(&#39;t&#39;, &#39;salometools&#39;, &#39;boolean&#39;, &#39;sat&#39;,
+        _(&#39;Optional: Produce an archive that contains salomeTools.&#39;), False)
+    parser.add_option(&#39;n&#39;, &#39;name&#39;, &#39;string&#39;, &#39;name&#39;,
+        _(&#39;Optional: The name or full path of the archive.&#39;), None)
+    parser.add_option(&#39;&#39;, &#39;add_files&#39;, &#39;list2&#39;, &#39;add_files&#39;,
+        _(&#39;Optional: The list of additional files to add to the archive.&#39;), [])
+    parser.add_option(&#39;&#39;, &#39;without_commercial&#39;, &#39;boolean&#39;, &#39;without_commercial&#39;,
+        _(&#39;Optional: do not add commercial licence.&#39;), False)
+    parser.add_option(&#39;&#39;, &#39;without_property&#39;, &#39;string&#39;, &#39;without_property&#39;,
+        _(&#39;Optional: Filter the products by their properties.\n&#39;
+          &#39;\tSyntax: --without_property &lt;property&gt;:&lt;value&gt;&#39;))
+    return parser</div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.Command.run">[docs]</a>  def run(self, cmd_arguments):
+    &quot;&quot;&quot;method called for command &#39;sat package &lt;options&gt;&#39;&quot;&quot;&quot;
+    argList = self.assumeAsList(cmd_arguments)
+
+    # print general help and returns
+    if len(argList) == 0:
+      self.print_help()
+      return RCO.ReturnCode(&quot;OK&quot;, &quot;No arguments, as &#39;sat %s --help&#39;&quot; % self.name)
+      
+    self._options, remaindersArgs = self.parseArguments(argList)
+    
+    if self._options.help:
+      self.print_help()
+      return RCO.ReturnCode(&quot;OK&quot;, &quot;Done &#39;sat %s --help&#39;&quot; % self.name)
+   
+    # shortcuts
+    runner = self.getRunner()
+    config = self.getConfig()
+    logger = self.getLogger()
+    options = self.getOptions()
+       
+    # Check that a type of package is called, and only one
+    all_option_types = (options.binaries,
+                        options.sources,
+                        options.project not in [&quot;&quot;, None],
+                        options.sat)
+
+    # Check if no option for package type
+    if all_option_types.count(True) == 0:
+        msg = _(&quot;&quot;&quot;\
+Needs a type for the package
+Use one of the following options:
+  &#39;--binaries&#39; &#39;--sources&#39; &#39;--project&#39; or &#39;--salometools&#39;\n&quot;&quot;&quot;)
+        logger.error(msg)
+        return 1
+    
+    # The repository where to put the package if not Binary or Source
+    package_default_path = config.LOCAL.workdir
+    
+    # if the package contains binaries or sources:
+    if options.binaries or options.sources:
+        # Check that the command has been called with an application
+        src.check_config_has_application(config)
+
+        # Display information
+        logger.info(_(&quot;Packaging application %s\n&quot;) % \
+            UTS.label(config.VARS.application), 1)
+        
+        # Get the default directory where to put the packages
+        package_default_path = os.path.join(config.APPLICATION.workdir, &quot;PACKAGE&quot;)
+        UTS.ensure_path_exists(package_default_path)
+        
+    # if the package contains a project:
+    if options.project:
+        # check that the project is visible by SAT
+        if options.project not in config.PROJECTS.project_file_paths:
+            local_path = os.path.join(
+                   config.VARS.salometoolsway, &quot;data&quot;, &quot;local.pyconf&quot;)
+            msg = _(&quot;&quot;&quot;\
+The project %s is not visible by salomeTools.
+Please add it in the %s file.\n&quot;&quot;&quot;) % (options.project, local_path)
+            logger.error(msg)
+            return 1
+    
+    # Remove the products that are filtered by the --without_property option
+    if options.without_property:
+        [prop, value] = options.without_property.split(&quot;:&quot;)
+        update_config(config, prop, value)
+    
+    # get the name of the archive or build it
+    if options.name:
+        if os.path.basename(options.name) == options.name:
+            # only a name (not a path)
+            archive_name = options.name           
+            dir_name = package_default_path
+        else:
+            archive_name = os.path.basename(options.name)
+            dir_name = os.path.dirname(options.name)
+        
+        # suppress extension
+        if archive_name[-len(&quot;.tgz&quot;):] == &quot;.tgz&quot;:
+            archive_name = archive_name[:-len(&quot;.tgz&quot;)]
+        if archive_name[-len(&quot;.tar.gz&quot;):] == &quot;.tar.gz&quot;:
+            archive_name = archive_name[:-len(&quot;.tar.gz&quot;)]
+        
+    else:
+        archive_name=&quot;&quot;
+        dir_name = package_default_path
+        if options.binaries or options.sources:
+            archive_name = config.APPLICATION.name
+
+        if options.binaries:
+            archive_name += &quot;-&quot;+config.VARS.dist
+            
+        if options.sources:
+            archive_name += &quot;-SRC&quot;
+            if options.with_vcs:
+                archive_name += &quot;-VCS&quot;
+
+        if options.project:
+            project_name, __ = os.path.splitext(
+                                            os.path.basename(options.project))
+            archive_name += (&quot;PROJECT-&quot; + project_name)
+        if options.sat:
+            archive_name += (&quot;salomeTools_&quot; + config.INTERNAL.sat_version)
+        if len(archive_name)==0: # no option worked 
+            msg = _(&quot;&quot;&quot;\
+Cannot name the archive.
+check if at least one of the following options was selected: 
+  &#39;--binaries&#39; &#39;--sources&#39; &#39;--project&#39; or &#39;--salometools&#39;\n&quot;&quot;&quot;)
+            logger.error(msg)
+            return 1
+    path_targz = os.path.join(dir_name, archive_name + &quot;.tgz&quot;)
+    
+    logger.info(&quot;  Package path = %s\n&quot; % UTS.blue(path_targz))
+
+    # Create a working directory for all files that are produced during the
+    # package creation and that will be removed at the end of the command
+    tmp_working_dir = os.path.join(config.VARS.tmp_root, config.VARS.datehour)
+    UTS.ensure_path_exists(tmp_working_dir)
+    logger.debug(_(&quot;The temporary working directory: %s\n&quot;) % tmp_working_dir)
+    
+    msg = _(&quot;Preparation of files to add to the archive&quot;)
+    logger.info(UTS.label(msg))
+
+    d_files_to_add={}  # content of the archive
+
+    # a dict to hold paths that will need to be substitute for users recompilations
+    d_paths_to_substitute={}  
+
+    if options.binaries:
+        d_bin_files_to_add = binary_package(config, logger, options, tmp_working_dir)
+        # for all binaries dir, store the substitution that will be required 
+        # for extra compilations
+        for key in d_bin_files_to_add:
+            if key.endswith(&quot;(bin)&quot;):
+                source_dir = d_bin_files_to_add[key][0]
+                path_in_archive = d_bin_files_to_add[key][1].replace(&quot;BINARIES-&quot; + config.VARS.dist,&quot;INSTALL&quot;)
+                if os.path.basename(source_dir)==os.path.basename(path_in_archive):
+                    # if basename is the same we will just substitute the dirname 
+                    d_paths_to_substitute[os.path.dirname(source_dir)]=\
+                        os.path.dirname(path_in_archive)
+                else:
+                    d_paths_to_substitute[source_dir]=path_in_archive
+
+        d_files_to_add.update(d_bin_files_to_add)
+
+    if options.sources:
+        d_files_to_add.update(source_package(runner,
+                                        config,
+                                        logger, 
+                                        options,
+                                        tmp_working_dir))
+        if options.binaries:
+            # for archives with bin and sources we provide a shell script able to 
+            # install binaries for compilation
+            file_install_bin=produce_install_bin_file(config,logger,
+                                                      tmp_working_dir,
+                                                      d_paths_to_substitute,
+                                                      &quot;install_bin.sh&quot;)
+            d_files_to_add.update({&quot;install_bin&quot; : (file_install_bin, &quot;install_bin.sh&quot;)})
+            logger.debug(&quot;substitutions to be done later:\n%s\n&quot; % str(d_paths_to_substitute))
+
+    else:
+        # --salomeTool option is not considered when --sources is selected, as this option
+        # already brings salomeTool!
+        if options.sat:
+            d_files_to_add.update({&quot;salomeTools&quot; : (config.VARS.salometoolsway, &quot;&quot;)})
+        
+    
+    if options.project:
+        d_files_to_add.update(project_package(options.project, tmp_working_dir))
+
+    if not(d_files_to_add):
+        msg = _(&quot;Empty dictionary to build the archive.\n&quot;)
+        logger.error(msg)
+        return 1
+
+    # Add the README file in the package
+    local_readme_tmp_path = add_readme(config, options, tmp_working_dir)
+    d_files_to_add[&quot;README&quot;] = (local_readme_tmp_path, &quot;README&quot;)
+
+    # Add the additional files of option add_files
+    if options.add_files:
+        for file_path in options.add_files:
+            if not os.path.exists(file_path):
+                msg = _(&quot;The file %s is not accessible.\n&quot;) % file_path
+                continue
+            file_name = os.path.basename(file_path)
+            d_files_to_add[file_name] = (file_path, file_name)
+
+    msg = UTS.label(_(&quot;Actually do the package&quot;))
+    logger.info(&quot;\n%s\n&quot; % msg)
+    
+    try:
+        # Creating the object tarfile
+        tar = tarfile.open(path_targz, mode=&#39;w:gz&#39;)
+        
+        # get the filtering function if needed
+        filter_function = exclude_VCS_and_extensions
+
+        # Add the files to the tarfile object
+        res = add_files(tar, archive_name, d_files_to_add, logger, f_exclude=filter_function)
+        tar.close()
+        
+    except KeyboardInterrupt:
+        logger.critical(UTS.red(_(&quot;KeyboardInterrupt forced interruption\n&quot;)))
+        logger.info(_(&quot;Removing the temporary working directory ... &quot;))
+        # remove the working directory
+        shutil.rmtree(tmp_working_dir)
+        logger.info(&quot;&lt;OK&gt;&quot;)
+        return 1
+    
+    # remove the working directory    
+    shutil.rmtree(tmp_working_dir)
+    
+    # Print again the path of the package
+    logger.info(&quot;  Package path = %s\n&quot; % UTS.blue(path_targz))
+    
+    return res</div></div>
+
+
+<div class="viewcode-block" id="add_files"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.add_files">[docs]</a>def add_files(tar, name_archive, d_content, logger, f_exclude=None):
+    &quot;&quot;&quot;
+    Create an archive containing all directories and files that are given 
+    in the d_content argument.
+    
+    :param tar: (tarfile) The tarfile instance used to make the archive.
+    :param name_archive: (str) The name of the archive to make.
+    :param d_content: (dict) 
+      The dictionary that contain all directories and files to add in the archive.
+      d_content[label] = (path_on_local_machine, path_in_archive)
+    :param logger: (Logger) the logging instance
+    :param f_exclude: (function) the function that filters
+    :return: (int) 0 if success, 1 if not.
+    &quot;&quot;&quot;
+    # get the max length of the messages in order to make the display
+    max_len = len(max(d_content.keys(), key=len))
+    
+    success = 0
+    # loop over each directory or file stored in the d_content dictionary
+    for name in d_content.keys():
+        # display information
+        len_points = max_len - len(name)
+        logger.info(name + &quot; &quot; + len_points * &quot;.&quot; + &quot; &quot;)
+        # Get the local path and the path in archive 
+        # of the directory or file to add
+        local_path, archive_path = d_content[name]
+        in_archive = os.path.join(name_archive, archive_path)
+        # Add it in the archive
+        try:
+            tar.add(local_path, arcname=in_archive, exclude=f_exclude)
+            logger.info(&quot;&lt;OK&gt;\n&quot;)
+        except Exception as e:
+            logger.info(&quot;&lt;KO&gt; %s\n&quot; % str(e))
+            success = 1
+    return success</div>
+
+<div class="viewcode-block" id="exclude_VCS_and_extensions"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.exclude_VCS_and_extensions">[docs]</a>def exclude_VCS_and_extensions(filename):
+    &quot;&quot;&quot;
+    The function that is used to exclude from package the link to the 
+    VCS repositories (like .git)
+
+    :param filename: (str) The filname to exclude (or not).
+    :return: (bool) True if the file has to be exclude
+    &quot;&quot;&quot;
+    for dir_name in IGNORED_DIRS:
+        if dir_name in filename:
+            return True
+    for extension in IGNORED_EXTENSIONS:
+        if filename.endswith(extension):
+            return True
+    return False</div>
+
+<div class="viewcode-block" id="produce_relative_launcher"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.produce_relative_launcher">[docs]</a>def produce_relative_launcher(config,
+                              logger,
+                              file_dir,
+                              file_name,
+                              binaries_dir_name,
+                              with_commercial=True):
+    &quot;&quot;&quot;
+    Create a specific SALOME launcher for the binary package.
+    This launcher uses relative paths.
+    
+    :param config: (Config) The global configuration.
+    :param logger: (Logger) the logging instance
+    :param file_dir: (str) the directory where to put the launcher
+    :param file_name: (str) The launcher name
+    :param binaries_dir_name: (str) 
+      the name of the repository where the binaries are, in the archive.
+    :return: (str) the path of the produced launcher
+    &quot;&quot;&quot;
+    
+    # get KERNEL installation path 
+    kernel_root_dir = os.path.join(binaries_dir_name, &quot;KERNEL&quot;)
+
+    # set kernel bin dir (considering fhs property)
+    kernel_cfg = src.product.get_product_config(config, &quot;KERNEL&quot;)
+    if src.get_property_in_product_cfg(kernel_cfg, &quot;fhs&quot;):
+        bin_kernel_install_dir = os.path.join(kernel_root_dir,&quot;bin&quot;) 
+    else:
+        bin_kernel_install_dir = os.path.join(kernel_root_dir,&quot;bin&quot;,&quot;salome&quot;) 
+
+    # Get the launcher template and do substitutions
+    withProfile = src.fileEnviron.withProfile
+
+    withProfile = withProfile.replace(
+        &quot;ABSOLUTE_APPLI_PATH&#39;] = &#39;KERNEL_INSTALL_DIR&#39;&quot;,
+        &quot;ABSOLUTE_APPLI_PATH&#39;] = out_dir_Path + &#39;&quot; + config.VARS.sep + kernel_root_dir + &quot;&#39;&quot;)
+    withProfile = withProfile.replace(
+        &quot; &#39;BIN_KERNEL_INSTALL_DIR&#39;&quot;,
+        &quot; out_dir_Path + &#39;&quot; + config.VARS.sep + bin_kernel_install_dir + &quot;&#39;&quot;)
+
+    before, after = withProfile.split(
+                                &quot;# here your local standalone environment\n&quot;)
+
+    # create an environment file writer
+    writer = src.environment.FileEnvWriter(config,
+                                           logger,
+                                           file_dir,
+                                           src_root=None)
+    
+    filepath = os.path.join(file_dir, file_name)
+    # open the file and write into it
+    launch_file = open(filepath, &quot;w&quot;)
+    launch_file.write(before)
+    # Write
+    writer.write_cfgForPy_file(launch_file,
+                               for_package = binaries_dir_name,
+                               with_commercial=with_commercial)
+    launch_file.write(after)
+    launch_file.close()
+    
+    # Little hack to put out_dir_Path outside the strings
+    src.replace_in_file(filepath, &#39;r&quot;out_dir_Path&#39;, &#39;out_dir_Path + r&quot;&#39; )
+    
+    # A hack to put a call to a file for distene licence.
+    # It does nothing to an application that has no distene product
+    hack_for_distene_licence(filepath)
+       
+    # change the rights in order to make the file executable for everybody
+    os.chmod(filepath,
+             stat.S_IRUSR |
+             stat.S_IRGRP |
+             stat.S_IROTH |
+             stat.S_IWUSR |
+             stat.S_IXUSR |
+             stat.S_IXGRP |
+             stat.S_IXOTH)
+
+    return filepath</div>
+
+<div class="viewcode-block" id="hack_for_distene_licence"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.hack_for_distene_licence">[docs]</a>def hack_for_distene_licence(filepath):
+    &quot;&quot;&quot;Replace the distene licence env variable by a call to a file.
+    
+    :param filepath: (str) The path to the launcher to modify.
+    &quot;&quot;&quot;  
+    shutil.move(filepath, filepath + &quot;_old&quot;)
+    fileout= filepath
+    filein = filepath + &quot;_old&quot;
+    fin = open(filein, &quot;r&quot;)
+    fout = open(fileout, &quot;w&quot;)
+    text = fin.readlines()
+    # Find the Distene section
+    num_line = -1
+    for i,line in enumerate(text):
+        if &quot;# Set DISTENE License&quot; in line:
+            num_line = i
+            break
+    if num_line == -1:
+        # No distene product, there is nothing to do
+        fin.close()
+        for line in text:
+            fout.write(line)
+        fout.close()
+        return
+    del text[num_line +1]
+    del text[num_line +1]
+    text_to_insert =&quot;&quot;&quot;\
+import imp
+try:
+  distene = imp.load_source(&#39;distene_licence&#39;, &#39;/data/tmpsalome/salome/prerequis/install/LICENSE/dlim8.var.py&#39;)
+  distene.set_distene_variables(context)
+except:
+  pass
+&quot;&quot;&quot;
+    text.insert(num_line + 1, text_to_insert)
+    for line in text:
+        fout.write(line)
+    fin.close()    
+    fout.close()
+    return</div>
+    
+<div class="viewcode-block" id="produce_relative_env_files"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.produce_relative_env_files">[docs]</a>def produce_relative_env_files(config,
+                              logger,
+                              file_dir,
+                              binaries_dir_name):
+    &quot;&quot;&quot;
+    Create some specific environment files for the binary package.
+    These files use relative paths.
+    
+    :param config: (Config) The global configuration.
+    :param logger: (Logger) the logging instance
+    :param file_dir: (str) the directory where to put the files
+    :param binaries_dir_name: (str) 
+      The name of the repository where the binaries are, in the archive.
+    :return: (list) The list of path of the produced environment files
+    &quot;&quot;&quot;  
+    # create an environment file writer
+    writer = src.environment.FileEnvWriter(config,
+                                           logger,
+                                           file_dir,
+                                           src_root=None)
+    
+    # Write
+    filepath = writer.write_env_file(&quot;env_launch.sh&quot;,
+                          False, # for launch
+                          &quot;bash&quot;,
+                          for_package = binaries_dir_name)
+
+    # Little hack to put out_dir_Path as environment variable
+    src.replace_in_file(filepath, &#39;&quot;out_dir_Path&#39;, &#39;&quot;${out_dir_Path}&#39; )
+
+    # change the rights in order to make the file executable for everybody
+    os.chmod(filepath,
+             stat.S_IRUSR |
+             stat.S_IRGRP |
+             stat.S_IROTH |
+             stat.S_IWUSR |
+             stat.S_IXUSR |
+             stat.S_IXGRP |
+             stat.S_IXOTH)
+    
+    return filepath</div>
+
+<div class="viewcode-block" id="produce_install_bin_file"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.produce_install_bin_file">[docs]</a>def produce_install_bin_file(config,
+                             logger,
+                             file_dir,
+                             d_sub,
+                             file_name):
+    &quot;&quot;&quot;
+    Create a bash shell script which do substitutions in BIRARIES dir 
+    in order to use it for extra compilations.
+    
+    :param config: (Config) The global configuration.
+    :param logger: (Logger) the logging instance
+    :param file_dir: (str) the directory where to put the files
+    :param d_sub: (dict) 
+      the dictionnary that contains the substitutions to be done
+    :param file_name: (str) the name of the install script file
+    :return: (str) the produced file
+    &quot;&quot;&quot;  
+    # Write
+    filepath = os.path.join(file_dir, file_name)
+    # open the file and write into it
+    # use codec utf-8 as sat variables are in unicode
+    with codecs.open(filepath, &quot;w&quot;, &#39;utf-8&#39;) as installbin_file:
+        installbin_template_path = os.path.join(config.VARS.internal_dir,
+                                        &quot;INSTALL_BIN.template&quot;)
+        
+        # build the name of the directory that will contain the binaries
+        binaries_dir_name = &quot;BINARIES-&quot; + config.VARS.dist
+        # build the substitution loop
+        loop_cmd = &quot;for f in $(grep -RIl&quot;
+        for key in d_sub:
+            loop_cmd += &quot; -e &quot;+ key
+        loop_cmd += &#39; INSTALL); do\n     sed -i &quot;\n&#39;
+        for key in d_sub:
+            loop_cmd += &quot;        s?&quot; + key + &quot;?$(pwd)/&quot; + d_sub[key] + &quot;?g\n&quot;
+        loop_cmd += &#39;            &quot; $f\ndone&#39;
+
+        d={}
+        d[&quot;BINARIES_DIR&quot;] = binaries_dir_name
+        d[&quot;SUBSTITUTION_LOOP&quot;]=loop_cmd
+        
+        # substitute the template and write it in file
+        content=src.template.substitute(installbin_template_path, d)
+        installbin_file.write(content)
+        # change the rights in order to make the file executable for everybody
+        os.chmod(filepath,
+                 stat.S_IRUSR |
+                 stat.S_IRGRP |
+                 stat.S_IROTH |
+                 stat.S_IWUSR |
+                 stat.S_IXUSR |
+                 stat.S_IXGRP |
+                 stat.S_IXOTH)
+    
+    return filepath</div>
+
+<div class="viewcode-block" id="product_appli_creation_script"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.product_appli_creation_script">[docs]</a>def product_appli_creation_script(config,
+                                  logger,
+                                  file_dir,
+                                  binaries_dir_name):
+    &quot;&quot;&quot;
+    Create a script that can produce an application (EDF style) 
+    in the binary package.
+    
+    :param config: (Config) The global configuration.
+    :param logger: (Logger) the logging instance
+    :param file_dir: (str) the directory where to put the file
+    :param binaries_dir_name: (str) 
+      The name of the repository where the binaries are, in the archive.
+    :return: (str) The path of the produced script file
+    &quot;&quot;&quot;
+    template_name = &quot;create_appli.py.for_bin_packages.template&quot;
+    template_path = os.path.join(config.VARS.internal_dir, template_name)
+    text_to_fill = open(template_path, &quot;r&quot;).read()
+    text_to_fill = text_to_fill.replace(&quot;TO BE FILLED 1&quot;,
+                                        &#39;&quot;&#39; + binaries_dir_name + &#39;&quot;&#39;)
+    
+    text_to_add = &quot;&quot;
+    for product_name in get_SALOME_modules(config):
+        product_info = src.product.get_product_config(config, product_name)
+       
+        if src.product.product_is_smesh_plugin(product_info):
+            continue
+
+        if &#39;install_dir&#39; in product_info and bool(product_info.install_dir):
+            if src.product.product_is_cpp(product_info):
+                # cpp module
+                for cpp_name in src.product.get_product_components(product_info):
+                    line_to_add = (&quot;&lt;module name=\&quot;&quot; + 
+                                   cpp_name + 
+                                   &quot;\&quot; gui=\&quot;yes\&quot; path=\&quot;&#39;&#39;&#39; + &quot;
+                                   &quot;os.path.join(dir_bin_name, \&quot;&quot; + 
+                                   cpp_name + &quot;\&quot;) + &#39;&#39;&#39;\&quot;/&gt;&quot;)
+            else:
+                # regular module
+                line_to_add = (&quot;&lt;module name=\&quot;&quot; + 
+                               product_name + 
+                               &quot;\&quot; gui=\&quot;yes\&quot; path=\&quot;&#39;&#39;&#39; + &quot;
+                               &quot;os.path.join(dir_bin_name, \&quot;&quot; + 
+                               product_name + &quot;\&quot;) + &#39;&#39;&#39;\&quot;/&gt;&quot;)
+            text_to_add += line_to_add + &quot;\n&quot;
+    
+    filled_text = text_to_fill.replace(&quot;TO BE FILLED 2&quot;, text_to_add)
+    
+    tmp_file_path = os.path.join(file_dir, &quot;create_appli.py&quot;)
+    ff = open(tmp_file_path, &quot;w&quot;)
+    ff.write(filled_text)
+    ff.close()
+    
+    # change the rights in order to make the file executable for everybody
+    os.chmod(tmp_file_path,
+             stat.S_IRUSR |
+             stat.S_IRGRP |
+             stat.S_IROTH |
+             stat.S_IWUSR |
+             stat.S_IXUSR |
+             stat.S_IXGRP |
+             stat.S_IXOTH)
+    
+    return tmp_file_path</div>
+
+<div class="viewcode-block" id="binary_package"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.binary_package">[docs]</a>def binary_package(config, logger, options, tmp_working_dir):
+    &quot;&quot;&quot;
+    Prepare a dictionary that stores all the needed directories and files 
+    to add in a binary package.
+    
+    :param config: (Config) The global configuration.
+    :param logger: (Logger) the logging instance
+    :param options: (OptResult) the options of the launched command
+    :param tmp_working_dir: (str) 
+      The temporary local directory containing some specific directories
+      or files needed in the binary package
+    :return: (dict) 
+      The dictionary that stores all the needed directories and files 
+      to add in a binary package.
+      {label : (path_on_local_machine, path_in_archive)}
+    &quot;&quot;&quot;
+
+    # Get the list of product installation to add to the archive
+    l_products_name = config.APPLICATION.products.keys()
+    l_product_info = src.product.get_products_infos(l_products_name,
+                                                    config)
+    l_install_dir = []
+    l_source_dir = []
+    l_not_installed = []
+    l_sources_not_present = []
+    for prod_name, prod_info in l_product_info:
+
+        # Add the sources of the products that have the property 
+        # sources_in_package : &quot;yes&quot;
+        if src.get_property_in_product_cfg(prod_info,
+                                           &quot;sources_in_package&quot;) == &quot;yes&quot;:
+            if os.path.exists(prod_info.source_dir):
+                l_source_dir.append((prod_name, prod_info.source_dir))
+            else:
+                l_sources_not_present.append(prod_name)
+
+        # ignore the native and fixed products for install directories
+        if (src.product.product_is_native(prod_info) 
+                or src.product.product_is_fixed(prod_info)
+                or not src.product.product_compiles(prod_info)):
+            continue
+        if src.product.check_installation(prod_info):
+            l_install_dir.append((prod_name, prod_info.install_dir))
+        else:
+            l_not_installed.append(prod_name)
+        
+        # Add also the cpp generated modules (if any)
+        if src.product.product_is_cpp(prod_info):
+            # cpp module
+            for name_cpp in src.product.get_product_components(prod_info):
+                install_dir = os.path.join(config.APPLICATION.workdir,
+                                           &quot;INSTALL&quot;, name_cpp) 
+                if os.path.exists(install_dir):
+                    l_install_dir.append((name_cpp, install_dir))
+                else:
+                    l_not_installed.append(name_cpp)
+        
+    # Print warning or error if there are some missing products
+    if len(l_not_installed) &gt; 0:
+        text_missing_prods = &quot;&quot;
+        for p_name in l_not_installed:
+            text_missing_prods += &quot;-&quot; + p_name + &quot;\n&quot;
+        
+        msg = _(&quot;There are missing products installations:\n&quot;)
+        logger.warning(msg + text_missing_prods)
+        if not options.force_creation:
+            return None
+
+    # Do the same for sources
+    if len(l_sources_not_present) &gt; 0:
+        text_missing_prods = &quot;&quot;
+        for p_name in l_sources_not_present:
+            text_missing_prods += &quot;-&quot; + p_name + &quot;\n&quot;
+            
+        msg = _(&quot;There are missing products sources:\n&quot;)
+        logger.warning(msg + text_missing_prods)
+        if not options.force_creation:
+            return None
+    # construct the name of the directory that will contain the binaries
+    binaries_dir_name = &quot;BINARIES-&quot; + config.VARS.dist
+    
+    # construct the correlation table between the product names, there 
+    # actual install directories and there install directory in archive
+    d_products = {}
+    for prod_name, install_dir in l_install_dir:
+        path_in_archive = os.path.join(binaries_dir_name, prod_name)
+        d_products[prod_name + &quot; (bin)&quot;] = (install_dir, path_in_archive)
+        
+    for prod_name, source_dir in l_source_dir:
+        path_in_archive = os.path.join(&quot;SOURCES&quot;, prod_name)
+        d_products[prod_name + &quot; (sources)&quot;] = (source_dir, path_in_archive)
+
+    # for packages of SALOME applications including KERNEL, 
+    # we produce a salome launcher or a virtual application (depending on salome version)
+    if &#39;KERNEL&#39; in config.APPLICATION.products:
+        VersionSalome = src.get_salome_version(config)
+        # Case where SALOME has the launcher that uses the SalomeContext API
+        if VersionSalome &gt;= 730:
+            # create the relative launcher and add it to the files to add
+            launcher_name = src.get_launcher_name(config)
+            launcher_package = produce_relative_launcher(config,
+                                                 logger,
+                                                 tmp_working_dir,
+                                                 launcher_name,
+                                                 binaries_dir_name,
+                                                 not(options.without_commercial))
+        
+            d_products[&quot;launcher&quot;] = (launcher_package, launcher_name)
+            if options.sources:
+                # if we mix binaries and sources, we add a copy of the launcher, 
+                # prefixed  with &quot;bin&quot;,in order to avoid clashes
+                d_products[&quot;launcher (copy)&quot;] = (launcher_package, &quot;bin&quot;+launcher_name)
+        else:
+            # Provide a script for the creation of an application EDF style
+            appli_script = product_appli_creation_script(config,
+                                                        logger,
+                                                        tmp_working_dir,
+                                                        binaries_dir_name)
+            
+            d_products[&quot;appli script&quot;] = (appli_script, &quot;create_appli.py&quot;)
+
+    # Put also the environment file
+    env_file = produce_relative_env_files(config,
+                                           logger,
+                                           tmp_working_dir,
+                                           binaries_dir_name)
+
+    d_products[&quot;environment file&quot;] = (env_file, &quot;env_launch.sh&quot;)
+      
+    return d_products</div>
+
+<div class="viewcode-block" id="source_package"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.source_package">[docs]</a>def source_package(sat, config, logger, options, tmp_working_dir):
+    &quot;&quot;&quot;
+    Prepare a dictionary that stores all the needed directories and files 
+    to add in a source package.
+    
+    :param config: (Config) The global configuration.
+    :param logger: (Logger) the logging instance
+    :param options: (OptResult) the options of the launched command
+    :param tmp_working_dir: (str)
+      The temporary local directory containing some specific directories
+      or files needed in the binary package
+    :return: (dict)
+      the dictionary that stores all the needed directories and files
+      to add in a source package.
+      {label : (path_on_local_machine, path_in_archive)}
+    &quot;&quot;&quot;
+    
+    # Get all the products that are prepared using an archive
+    logger.info(&quot;Find archive products ... &quot;)
+    d_archives, l_pinfo_vcs = get_archives(config, logger)
+    logger.info(&quot;Done\n&quot;)
+    d_archives_vcs = {}
+    if not options.with_vcs and len(l_pinfo_vcs) &gt; 0:
+        # Make archives with the products that are not prepared using an archive
+        # (git, cvs, svn, etc)
+        logger.info(&quot;Construct archives for vcs products ... &quot;)
+        d_archives_vcs = get_archives_vcs(l_pinfo_vcs,
+                                          sat,
+                                          config,
+                                          logger,
+                                          tmp_working_dir)
+        logger.info(&quot;Done\n&quot;)
+
+    # Create a project
+    logger.info(&quot;Create the project ... &quot;)
+    d_project = create_project_for_src_package(config, tmp_working_dir, options.with_vcs)
+    logger.info(&quot;Done\n&quot;)
+    
+    # Add salomeTools
+    tmp_sat = add_salomeTools(config, tmp_working_dir)
+    d_sat = {&quot;salomeTools&quot; : (tmp_sat, &quot;salomeTools&quot;)}
+    
+    # Add a sat symbolic link if not win
+    if not src.architecture.is_windows():
+        tmp_satlink_path = os.path.join(tmp_working_dir, &#39;sat&#39;)
+        try:
+            t = os.getcwd()
+        except:
+            # In the jobs, os.getcwd() can fail
+            t = config.LOCAL.workdir
+        os.chdir(tmp_working_dir)
+        if os.path.lexists(tmp_satlink_path):
+            os.remove(tmp_satlink_path)
+        os.symlink(os.path.join(&#39;salomeTools&#39;, &#39;sat&#39;), &#39;sat&#39;)
+        os.chdir(t)
+        
+        d_sat[&quot;sat link&quot;] = (tmp_satlink_path, &quot;sat&quot;)
+    
+    d_source = src.merge_dicts(d_archives, d_archives_vcs, d_project, d_sat)
+    return d_source</div>
+
+<div class="viewcode-block" id="get_archives"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.get_archives">[docs]</a>def get_archives(config, logger):
+    &quot;&quot;&quot;
+    Find all the products from an archive and all the products
+    from a VCS (git, cvs, svn) repository.
+    
+    :param config: (Config) The global configuration.
+    :param logger: (Logger) The logging instance
+    :return: (Dict, List)
+      The dictionary 
+      {name_product : (local path of its archive, path in the package of its archive )}
+      and the list of specific configuration corresponding to the vcs products
+    &quot;&quot;&quot;
+    # Get the list of product informations
+    l_products_name = config.APPLICATION.products.keys()
+    l_product_info = src.product.get_products_infos(l_products_name,
+                                                    config)
+    d_archives = {}
+    l_pinfo_vcs = []
+    for p_name, p_info in l_product_info:
+        # ignore the native and fixed products
+        if (src.product.product_is_native(p_info) 
+                or src.product.product_is_fixed(p_info)):
+            continue
+        if p_info.get_source == &quot;archive&quot;:
+            archive_path = p_info.archive_info.archive_name
+            archive_name = os.path.basename(archive_path)
+        else:
+            l_pinfo_vcs.append((p_name, p_info))
+            
+        d_archives[p_name] = (archive_path,
+                              os.path.join(ARCHIVE_DIR, archive_name))
+    return d_archives, l_pinfo_vcs</div>
+
+<div class="viewcode-block" id="add_salomeTools"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.add_salomeTools">[docs]</a>def add_salomeTools(config, tmp_working_dir):
+    &quot;&quot;&quot;
+    Prepare a version of salomeTools that has a specific local.pyconf file 
+    configured for a source package.
+
+    :param config: (Config) The global configuration.
+    :param tmp_working_dir: (str) 
+      The temporary local directory containing some specific directories
+      or files needed in the source package
+    :return: (str) 
+      The path to the local salomeTools directory to add in the package
+    &quot;&quot;&quot;
+    # Copy sat in the temporary working directory
+    sat_tmp_path = src.Path(os.path.join(tmp_working_dir, &quot;salomeTools&quot;))
+    sat_running_path = src.Path(config.VARS.salometoolsway)
+    sat_running_path.copy(sat_tmp_path)
+    
+    # Update the local.pyconf file that contains the path to the project
+    local_pyconf_name = &quot;local.pyconf&quot;
+    local_pyconf_dir = os.path.join(tmp_working_dir, &quot;salomeTools&quot;, &quot;data&quot;)
+    local_pyconf_file = os.path.join(local_pyconf_dir, local_pyconf_name)
+    # Remove the .pyconf file in the root directory of salomeTools if there is
+    # any. (For example when launching jobs, a pyconf file describing the jobs 
+    # can be here and is not useful) 
+    files_or_dir_SAT = os.listdir(os.path.join(tmp_working_dir, &quot;salomeTools&quot;))
+    for file_or_dir in files_or_dir_SAT:
+        if file_or_dir.endswith(&quot;.pyconf&quot;) or file_or_dir.endswith(&quot;.txt&quot;):
+            file_path = os.path.join(tmp_working_dir,
+                                     &quot;salomeTools&quot;,
+                                     file_or_dir)
+            os.remove(file_path)
+    
+    ff = open(local_pyconf_file, &quot;w&quot;)
+    ff.write(LOCAL_TEMPLATE)
+    ff.close()
+    
+    return sat_tmp_path.path</div>
+
+<div class="viewcode-block" id="get_archives_vcs"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.get_archives_vcs">[docs]</a>def get_archives_vcs(l_pinfo_vcs, sat, config, logger, tmp_working_dir):
+    &quot;&quot;&quot;
+    For sources package that require that all products from an archive, 
+    one has to create some archive for the vcs products.
+    So this method calls the clean and source command of sat 
+    and then create the archives.
+
+    :param l_pinfo_vcs: (list) 
+      The list of specific configuration corresponding to each vcs product
+    :param sat: (Sat) 
+      The Sat instance that can be called to clean and source the products
+    :param config: (Config) The global configuration.
+    :param logger: (Logger) The logging instance
+    :param tmp_working_dir: (str) 
+      The temporary local directory containing some specific directories
+      or files needed in the source package
+    :return: (dict) 
+      The dictionary that stores all the archives to add in the sourcepackage.
+      {label : (path_on_local_machine, path_in_archive)}
+    &quot;&quot;&quot;
+    # clean the source directory of all the vcs products, then use the source 
+    # command and thus construct an archive that will not contain the patches
+    l_prod_names = [pn for pn, __ in l_pinfo_vcs]
+    # clean
+    logger.info(_(&quot;clean sources\n&quot;))
+    args_clean = config.VARS.application
+    args_clean += &quot; --sources --products &quot;
+    args_clean += &quot;,&quot;.join(l_prod_names)
+    sat.clean(args_clean, batch=True, verbose=0, logger_add_link = logger)
+    # source
+    logger.info(_(&quot;get sources&quot;))
+    args_source = config.VARS.application
+    args_source += &quot; --products &quot;
+    args_source += &quot;,&quot;.join(l_prod_names)
+    sat.source(args_source, batch=True, verbose=0, logger_add_link = logger)
+
+    # make the new archives
+    d_archives_vcs = {}
+    for pn, pinfo in l_pinfo_vcs:
+        path_archive = make_archive(pn, pinfo, tmp_working_dir)
+        d_archives_vcs[pn] = (path_archive,
+                              os.path.join(ARCHIVE_DIR, pn + &quot;.tgz&quot;))
+    return d_archives_vcs</div>
+
+<div class="viewcode-block" id="make_archive"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.make_archive">[docs]</a>def make_archive(prod_name, prod_info, where):
+    &quot;&quot;&quot;Create an archive of a product by searching its source directory.
+
+    :param prod_name: (str) The name of the product.
+    :param prod_info: (Config)
+      The specific configuration corresponding to the product
+    :param where: (str) 
+      The path of the repository where to put the resulting archive
+    :return: (str) The path of the resulting archive
+    &quot;&quot;&quot;
+    path_targz_prod = os.path.join(where, prod_name + &quot;.tgz&quot;)
+    tar_prod = tarfile.open(path_targz_prod, mode=&#39;w:gz&#39;)
+    local_path = prod_info.source_dir
+    tar_prod.add(local_path,
+                 arcname=prod_name,
+                 exclude=exclude_VCS_and_extensions)
+    tar_prod.close()
+    return path_targz_prod       </div>
+
+<div class="viewcode-block" id="create_project_for_src_package"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.create_project_for_src_package">[docs]</a>def create_project_for_src_package(config, tmp_working_dir, with_vcs):
+    &quot;&quot;&quot;Create a specific project for a source package.
+
+    :param config: (Config) The global configuration.
+    :param tmp_working_dir: (str)
+      The temporary local directory containing some specific directories
+      or files needed in the source package
+    :param with_vcs: (bool) 
+      True if the package is with vcs products 
+      (not transformed into archive products)
+    :return: (dict)
+      The dictionary 
+      {&quot;project&quot; : (produced project, project path in the archive)}
+    &quot;&quot;&quot;
+
+    # Create in the working temporary directory the full project tree
+    project_tmp_dir = os.path.join(tmp_working_dir, PROJECT_DIR)
+    products_pyconf_tmp_dir = os.path.join(project_tmp_dir,
+                                         &quot;products&quot;)
+    compil_scripts_tmp_dir = os.path.join(project_tmp_dir,
+                                         &quot;products&quot;,
+                                         &quot;compil_scripts&quot;)
+    env_scripts_tmp_dir = os.path.join(project_tmp_dir,
+                                         &quot;products&quot;,
+                                         &quot;env_scripts&quot;)
+    patches_tmp_dir = os.path.join(project_tmp_dir,
+                                         &quot;products&quot;,
+                                         &quot;patches&quot;)
+    application_tmp_dir = os.path.join(project_tmp_dir,
+                                         &quot;applications&quot;)
+    for directory in [project_tmp_dir,
+                      compil_scripts_tmp_dir,
+                      env_scripts_tmp_dir,
+                      patches_tmp_dir,
+                      application_tmp_dir]:
+        UTS.ensure_path_exists(directory)
+
+    # Create the pyconf that contains the information of the project
+    project_pyconf_name = &quot;project.pyconf&quot;        
+    project_pyconf_file = os.path.join(project_tmp_dir, project_pyconf_name)
+    ff = open(project_pyconf_file, &quot;w&quot;)
+    ff.write(PROJECT_TEMPLATE)
+    ff.close()
+    
+    # Loop over the products to get there pyconf and all the scripts 
+    # (compilation, environment, patches)
+    # and create the pyconf file to add to the project
+    lproducts_name = config.APPLICATION.products.keys()
+    l_products = src.product.get_products_infos(lproducts_name, config)
+    for p_name, p_info in l_products:
+        find_product_scripts_and_pyconf(p_name,
+                                        p_info,
+                                        config,
+                                        with_vcs,
+                                        compil_scripts_tmp_dir,
+                                        env_scripts_tmp_dir,
+                                        patches_tmp_dir,
+                                        products_pyconf_tmp_dir)
+    
+    find_application_pyconf(config, application_tmp_dir)
+    
+    d_project = {&quot;project&quot; : (project_tmp_dir, PROJECT_DIR )}
+    return d_project</div>
+
+<div class="viewcode-block" id="find_product_scripts_and_pyconf"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.find_product_scripts_and_pyconf">[docs]</a>def find_product_scripts_and_pyconf(p_name,
+                                    p_info,
+                                    config,
+                                    with_vcs,
+                                    compil_scripts_tmp_dir,
+                                    env_scripts_tmp_dir,
+                                    patches_tmp_dir,
+                                    products_pyconf_tmp_dir):
+    &quot;&quot;&quot;
+    Create a specific pyconf file for a given product. 
+    Get its environment script, its compilation script 
+    and patches and put it in the temporary working directory. 
+    This method is used in the source package in order to
+    construct the specific project.
+
+    :param p_name: (str) The name of the product.
+    :param p_info: (Config) The specific configuration corresponding to the product
+    :param config: (Config) The global configuration.
+    :param with_vcs: (bool) 
+      True if the package is with vcs products 
+      (not transformed into archive products)
+    :param compil_scripts_tmp_dir: (str) 
+      The path to the temporary compilation scripts directory of the project.
+    :param env_scripts_tmp_dir: (str) 
+      The path to the temporary environment script directory of the project.
+    :param patches_tmp_dir: (str) 
+      The path to the temporary patch scripts directory of the project.
+    :param products_pyconf_tmp_dir: (str) 
+      The path to the temporary product scripts directory of the project.
+    &quot;&quot;&quot;
+    
+    # read the pyconf of the product
+    product_pyconf_path = UTS.find_file_in_lpath(p_name + &quot;.pyconf&quot;,
+                                           config.PATHS.PRODUCTPATH)
+    product_pyconf_cfg = PYCONF.Config(product_pyconf_path)
+
+    # find the compilation script if any
+    if src.product.product_has_script(p_info):
+        compil_script_path = src.Path(p_info.compil_script)
+        compil_script_path.copy(compil_scripts_tmp_dir)
+        product_pyconf_cfg[p_info.section].compil_script = os.path.basename(
+                                                    p_info.compil_script)
+    # find the environment script if any
+    if src.product.product_has_env_script(p_info):
+        env_script_path = src.Path(p_info.environ.env_script)
+        env_script_path.copy(env_scripts_tmp_dir)
+        product_pyconf_cfg[p_info.section].environ.env_script = os.path.basename(
+                                                p_info.environ.env_script)
+    # find the patches if any
+    if src.product.product_has_patches(p_info):
+        patches = PYCONF.Sequence()
+        for patch_path in p_info.patches:
+            p_path = src.Path(patch_path)
+            p_path.copy(patches_tmp_dir)
+            patches.append(os.path.basename(patch_path), &quot;&quot;)
+
+        product_pyconf_cfg[p_info.section].patches = patches
+    
+    if with_vcs:
+        # put in the pyconf file the resolved values
+        for info in [&quot;git_info&quot;, &quot;cvs_info&quot;, &quot;svn_info&quot;]:
+            if info in p_info:
+                for key in p_info[info]:
+                    product_pyconf_cfg[p_info.section][info][key] = p_info[
+                                                                      info][key]
+    else:
+        # if the product is not archive, then make it become archive.
+        if src.product.product_is_vcs(p_info):
+            product_pyconf_cfg[p_info.section].get_source = &quot;archive&quot;
+            if not &quot;archive_info&quot; in product_pyconf_cfg[p_info.section]:
+                product_pyconf_cfg[p_info.section].addMapping(&quot;archive_info&quot;,
+                                        PYCONF.Mapping(product_pyconf_cfg),
+                                        &quot;&quot;)
+            product_pyconf_cfg[p_info.section
+                              ].archive_info.archive_name = p_info.name + &quot;.tgz&quot;
+    
+    # write the pyconf file to the temporary project location
+    product_tmp_pyconf_path = os.path.join(products_pyconf_tmp_dir,
+                                           p_name + &quot;.pyconf&quot;)
+    ff = open(product_tmp_pyconf_path, &#39;w&#39;)
+    ff.write(&quot;#!/usr/bin/env python\n#-*- coding:utf-8 -*-\n\n&quot;)
+    product_pyconf_cfg.__save__(ff, 1)
+    ff.close()</div>
+
+<div class="viewcode-block" id="find_application_pyconf"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.find_application_pyconf">[docs]</a>def find_application_pyconf(config, application_tmp_dir):
+    &quot;&quot;&quot;
+    Find the application pyconf file and put it in the specific temporary 
+    directory containing the specific project of a source package.
+
+    :param config: &#39;Config) The global configuration.
+    :param application_tmp_dir: (str) 
+      The path to the temporary application scripts directory of the project.
+    &quot;&quot;&quot;
+    # read the pyconf of the application
+    application_name = config.VARS.application
+    application_pyconf_path = UTS.find_file_in_lpath(
+                                            application_name + &quot;.pyconf&quot;,
+                                            config.PATHS.APPLICATIONPATH)
+    application_pyconf_cfg = PYCONF.Config(application_pyconf_path)
+    
+    # Change the workdir
+    application_pyconf_cfg.APPLICATION.workdir = PYCONF.Reference(
+                                    application_pyconf_cfg,
+                                    PYCONF.DOLLAR,
+                                    &#39;VARS.salometoolsway + $VARS.sep + &quot;..&quot;&#39;)
+
+    # Prevent from compilation in base
+    application_pyconf_cfg.APPLICATION.no_base = &quot;yes&quot;
+    
+    # write the pyconf file to the temporary application location
+    application_tmp_pyconf_path = os.path.join(application_tmp_dir,
+                                               application_name + &quot;.pyconf&quot;)
+    ff = open(application_tmp_pyconf_path, &#39;w&#39;)
+    ff.write(&quot;#!/usr/bin/env python\n#-*- coding:utf-8 -*-\n\n&quot;)
+    application_pyconf_cfg.__save__(ff, 1)
+    ff.close()</div>
+
+<div class="viewcode-block" id="project_package"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.project_package">[docs]</a>def project_package(project_file_path, tmp_working_dir):
+    &quot;&quot;&quot;
+    Prepare a dictionary that stores all the needed directories and files 
+    to add in a project package.
+    
+    :param project_file_path: (str) The path to the local project.
+    :param tmp_working_dir: (str) 
+      The temporary local directory containing some specific directories
+      or files needed in the project package
+    :return: (dict)
+      The dictionary that stores all the needed directories and files
+      to add in a project package.
+      {label : (path_on_local_machine, path_in_archive)}
+    &quot;&quot;&quot;
+    d_project = {}
+    # Read the project file and get the directories to add to the package
+    project_pyconf_cfg = PYCONF.Config(project_file_path)
+    paths = {&quot;ARCHIVEPATH&quot; : &quot;archives&quot;,
+             &quot;APPLICATIONPATH&quot; : &quot;applications&quot;,
+             &quot;PRODUCTPATH&quot; : &quot;products&quot;,
+             &quot;JOBPATH&quot; : &quot;jobs&quot;,
+             &quot;MACHINEPATH&quot; : &quot;machines&quot;}
+    # Loop over the project paths and add it
+    for path in paths:
+        if path not in project_pyconf_cfg:
+            continue
+        # Add the directory to the files to add in the package
+        d_project[path] = (project_pyconf_cfg[path], paths[path])
+        # Modify the value of the path in the package
+        project_pyconf_cfg[path] = PYCONF.Reference(
+                                    project_pyconf_cfg,
+                                    PYCONF.DOLLAR,
+                                    &#39;project_path + &quot;/&#39; + paths[path] + &#39;&quot;&#39;)
+    
+    # Modify some values
+    if &quot;project_path&quot; not in project_pyconf_cfg:
+        project_pyconf_cfg.addMapping(&quot;project_path&quot;,
+                                      PYCONF.Mapping(project_pyconf_cfg),
+                                      &quot;&quot;)
+    project_pyconf_cfg.project_path = PYCONF.Reference(project_pyconf_cfg,
+                                                           PYCONF.DOLLAR,
+                                                           &#39;PWD&#39;)
+    
+    # Write the project pyconf file
+    project_file_name = os.path.basename(project_file_path)
+    project_pyconf_tmp_path = os.path.join(tmp_working_dir, project_file_name)
+    ff = open(project_pyconf_tmp_path, &#39;w&#39;)
+    ff.write(&quot;#!/usr/bin/env python\n#-*- coding:utf-8 -*-\n\n&quot;)
+    project_pyconf_cfg.__save__(ff, 1)
+    ff.close()
+    d_project[&quot;Project hat file&quot;] = (project_pyconf_tmp_path, project_file_name)
+    
+    return d_project</div>
+
+<div class="viewcode-block" id="add_readme"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.add_readme">[docs]</a>def add_readme(config, options, where):
+    readme_path = os.path.join(where, &quot;README&quot;)
+    with codecs.open(readme_path, &quot;w&quot;, &#39;utf-8&#39;) as f:
+
+    # templates for building the header
+        readme_header=&quot;&quot;&quot;
+# This package was generated with sat $version
+# Date: $date
+# User: $user
+# Distribution : $dist
+
+In the following, $$ROOT represents the directory where you have installed 
+SALOME (the directory where this file is located).
+
+&quot;&quot;&quot;
+        readme_compilation_with_binaries=&quot;&quot;&quot;
+
+compilation based on the binaries used as prerequisites
+=======================================================
+
+If you fail to compile the complete application (for example because
+you are not root on your system and cannot install missing packages), you
+may try a partial compilation based on the binaries.
+For that it is necessary to copy the binaries from BINARIES to INSTALL,
+and do some substitutions on cmake and .la files (replace the build directories
+with local paths).
+The procedure to do it is:
+  1) Remove or rename INSTALL directory if it exists
+  2) Execute the shell script install_bin.sh:
+     &gt;&gt; cd $ROOT
+     &gt;&gt; ./install_bin.sh
+  3) Use SalomeTool (as explained in Sources section) and compile only the 
+     modules you need to (with -p option)
+
+&quot;&quot;&quot;
+        readme_header_tpl=string.Template(readme_header)
+        readme_template_path_bin = os.path.join(config.VARS.internal_dir,
+                &quot;README_BIN.template&quot;)
+        readme_template_path_bin_launcher = os.path.join(config.VARS.internal_dir,
+                &quot;README_LAUNCHER.template&quot;)
+        readme_template_path_bin_virtapp = os.path.join(config.VARS.internal_dir,
+                &quot;README_BIN_VIRTUAL_APP.template&quot;)
+        readme_template_path_src = os.path.join(config.VARS.internal_dir,
+                &quot;README_SRC.template&quot;)
+        readme_template_path_pro = os.path.join(config.VARS.internal_dir,
+                &quot;README_PROJECT.template&quot;)
+        readme_template_path_sat = os.path.join(config.VARS.internal_dir,
+                &quot;README_SAT.template&quot;)
+
+        # prepare substitution dictionary
+        d = dict()
+        d[&#39;user&#39;] = config.VARS.user
+        d[&#39;date&#39;] = datetime.datetime.now().strftime(&quot;%Y-%m-%d %H:%M&quot;)
+        d[&#39;version&#39;] = config.INTERNAL.sat_version
+        d[&#39;dist&#39;] = config.VARS.dist
+        f.write(readme_header_tpl.substitute(d)) # write the general header (common)
+
+        if options.binaries or options.sources:
+            d[&#39;application&#39;] = config.VARS.application
+            f.write(&quot;# Application: &quot; + d[&#39;application&#39;] + &quot;\n&quot;)
+            if &#39;KERNEL&#39; in config.APPLICATION.products:
+                VersionSalome = src.get_salome_version(config)
+                # Case where SALOME has the launcher that uses the SalomeContext API
+                if VersionSalome &gt;= 730:
+                    d[&#39;launcher&#39;] = config.APPLICATION.profile.launcher_name
+                else:
+                    d[&#39;virtual_app&#39;] = &#39;runAppli&#39; # this info is not used now)
+
+        # write the specific sections
+        if options.binaries:
+            f.write(src.template.substitute(readme_template_path_bin, d))
+            if &quot;virtual_app&quot; in d:
+                f.write(src.template.substitute(readme_template_path_bin_virtapp, d))
+            if &quot;launcher&quot; in d:
+                f.write(src.template.substitute(readme_template_path_bin_launcher, d))
+
+        if options.sources:
+            f.write(src.template.substitute(readme_template_path_src, d))
+
+        if options.binaries and options.sources:
+            f.write(readme_compilation_with_binaries)
+
+        if options.project:
+            f.write(src.template.substitute(readme_template_path_pro, d))
+
+        if options.sat:
+            f.write(src.template.substitute(readme_template_path_sat, d))
+    
+    return readme_path</div>
+
+<div class="viewcode-block" id="update_config"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.package.update_config">[docs]</a>def update_config(config, prop, value):
+    &quot;&quot;&quot;
+    Remove from config.APPLICATION.products the products 
+    that have the property given as input.
+    
+    :param config: (Config) The global config.
+    :param prop: (str) The property to filter
+    :param value: (str) The value of the property to filter
+    &quot;&quot;&quot;
+    src.check_config_has_application(config)
+    l_product_to_remove = []
+    for product_name in config.APPLICATION.products.keys():
+        prod_cfg = src.product.get_product_config(config, product_name)
+        if src.get_property_in_product_cfg(prod_cfg, prop) == value:
+            l_product_to_remove.append(product_name)
+    for product_name in l_product_to_remove:
+        config.APPLICATION.products.__delitem__(product_name)</div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/patch.html b/doc/build/html/_modules/commands/patch.html
new file mode 100644 (file)
index 0000000..c265a07
--- /dev/null
@@ -0,0 +1,300 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.patch &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.patch</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+<span class="kn">import</span> <span class="nn">os</span>
+<span class="kn">import</span> <span class="nn">subprocess</span>
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">import</span> <span class="nn">src.utilsSat</span> <span class="k">as</span> <span class="nn">UTS</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+<span class="kn">import</span> <span class="nn">commands.prepare</span>
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.patch.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">  The patch command apply the patches on the sources of the application products</span>
+<span class="sd">  if there is any.</span>
+
+<span class="sd">  examples:</span>
+<span class="sd">  &gt;&gt; sat patch SALOME --products qt,boost</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;patch&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.patch.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for command &#39;sat patch &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;p&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span> <span class="s1">&#39;list2&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: products to get the sources. This option can be&#39;</span>
+        <span class="s1">&#39; passed several time to get the sources of several products.&#39;</span><span class="p">))</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.patch.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat patch &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+
+    <span class="c1"># check that the command has been called with an application</span>
+    <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span> <span class="n">config</span> <span class="p">)</span>
+
+    <span class="c1"># Print some informations</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Patching sources of the application </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> \
+                <span class="n">UTS</span><span class="o">.</span><span class="n">blue</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">))</span>
+
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;  workdir = </span><span class="si">%s</span><span class="se">\n\n</span><span class="s1">&quot;&#39;</span><span class="p">,</span> <span class="n">UTS</span><span class="o">.</span><span class="n">blue</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">))</span>
+
+    <span class="c1"># Get the products list with products informations regarding the options</span>
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="n">commands</span><span class="o">.</span><span class="n">prepare</span><span class="o">.</span><span class="n">get_products_list</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+    
+    <span class="c1"># Get the maximum name length in order to format the terminal display</span>
+    <span class="n">max_product_name_len</span> <span class="o">=</span> <span class="mi">1</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">products_infos</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">max_product_name_len</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="nb">len</span><span class="p">(</span><span class="n">l</span><span class="p">),</span> <span class="n">products_infos</span><span class="p">[</span><span class="mi">0</span><span class="p">]))</span> <span class="o">+</span> <span class="mi">4</span>
+    
+    <span class="c1"># The loop on all the products on which to apply the patches</span>
+    <span class="n">good_result</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="k">for</span> <span class="n">__</span><span class="p">,</span> <span class="n">product_info</span> <span class="ow">in</span> <span class="n">products_infos</span><span class="p">:</span>
+        <span class="c1"># Apply the patch</span>
+        <span class="n">return_code</span><span class="p">,</span> <span class="n">patch_res</span> <span class="o">=</span> <span class="n">apply_patch</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                                             <span class="n">product_info</span><span class="p">,</span>
+                                             <span class="n">max_product_name_len</span><span class="p">,</span>
+                                             <span class="n">logger</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">patch_res</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">return_code</span><span class="p">:</span>
+            <span class="n">good_result</span> <span class="o">+=</span> <span class="mi">1</span>
+    
+    <span class="c1"># Display the results (how much passed, how much failed, etc...)</span>
+
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">good_result</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">products_infos</span><span class="p">):</span>
+        <span class="n">status</span> <span class="o">=</span> <span class="s2">&quot;OK&quot;</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">status</span> <span class="o">=</span> <span class="s2">&quot;KO&quot;</span>
+    
+    <span class="c1"># write results</span>
+    <span class="n">msg</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">Patching sources of the application: &lt;</span><span class="si">%s</span><span class="s2">&gt; (</span><span class="si">%d</span><span class="s2">/</span><span class="si">%d</span><span class="s2">)</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> \
+                  <span class="p">(</span><span class="n">status</span><span class="p">,</span> <span class="n">good_result</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">products_infos</span><span class="p">))</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>    
+
+    <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="n">status</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span></div></div>
+     
+
+<div class="viewcode-block" id="apply_patch"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.patch.apply_patch">[docs]</a><span class="k">def</span> <span class="nf">apply_patch</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">product_info</span><span class="p">,</span> <span class="n">max_product_name_len</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;The method called to apply patches on a product</span>
+
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param product_info: (Config) </span>
+<span class="sd">      The configuration specific to the product to be patched</span>
+<span class="sd">    :param logger: (Logger: </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :return: (RCO.ReturnCode)</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+
+    <span class="c1"># if the product is native, do not apply patch</span>
+    <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_native</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+        <span class="c1"># display and log</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;</span><span class="si">%s</span><span class="s1">: &#39;</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39; &#39;</span> <span class="o">*</span> <span class="p">(</span><span class="n">max_product_name_len</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">name</span><span class="p">)))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The </span><span class="si">%s</span><span class="s2"> product is native. Do not apply any patch&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">product_info</span><span class="o">.</span><span class="n">name</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>     
+
+    <span class="k">if</span> <span class="ow">not</span> <span class="s2">&quot;patches&quot;</span> <span class="ow">in</span> <span class="n">product_info</span> <span class="ow">or</span> <span class="nb">len</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">patches</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="c1"># display and log</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;</span><span class="si">%s</span><span class="s1">: &#39;</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39; &#39;</span> <span class="o">*</span> <span class="p">(</span><span class="n">max_product_name_len</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">name</span><span class="p">)))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;No patch for the </span><span class="si">%s</span><span class="s2"> product&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">product_info</span><span class="o">.</span><span class="n">name</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span> 
+    <span class="k">else</span><span class="p">:</span>
+        <span class="c1"># display and log</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;</span><span class="si">%s</span><span class="s1">: &#39;</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39; &#39;</span> <span class="o">*</span> <span class="p">(</span><span class="n">max_product_name_len</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">name</span><span class="p">)))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">source_dir</span><span class="p">):</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;No sources found for the </span><span class="si">%s</span><span class="s2"> product&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">product_info</span><span class="o">.</span><span class="n">name</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="n">msg</span><span class="p">))</span>
+        <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;KO&quot;</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
+
+    <span class="c1"># At this point, there one or more patches and the source directory exists</span>
+    <span class="n">retcode</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="c1"># Loop on all the patches of the product</span>
+    <span class="k">for</span> <span class="n">patch</span> <span class="ow">in</span> <span class="n">product_info</span><span class="o">.</span><span class="n">patches</span><span class="p">:</span>
+        <span class="n">details</span> <span class="o">=</span> <span class="p">[]</span>
+        
+        <span class="c1"># Check the existence and apply the patch</span>
+        <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">patch</span><span class="p">):</span>
+            <span class="n">patch_cmd</span> <span class="o">=</span> <span class="s2">&quot;patch -p1 &lt; </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">patch</span>
+            
+            <span class="c1"># Write the command in the terminal if verbose level is at 5</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;    &gt;</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">patch_cmd</span><span class="p">)</span>
+            
+            <span class="c1"># Write the command in the log file (can be seen using &#39;sat log&#39;)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">logTxtFile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">    &gt;</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">patch_cmd</span><span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">logTxtFile</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span>
+            
+            <span class="c1"># Call the command</span>
+            <span class="n">res_cmd</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
+                         <span class="n">patch_cmd</span><span class="p">,</span> 
+                         <span class="n">shell</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> 
+                         <span class="n">cwd</span><span class="o">=</span><span class="n">product_info</span><span class="o">.</span><span class="n">source_dir</span><span class="p">,</span>
+                         <span class="n">stdout</span><span class="o">=</span><span class="n">logger</span><span class="o">.</span><span class="n">logTxtFile</span><span class="p">,</span> 
+                         <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">STDOUT</span> <span class="p">)</span>
+                         
+            <span class="n">res_cmd</span> <span class="o">=</span> <span class="p">(</span><span class="n">res_cmd</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span>       
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">res_cmd</span> <span class="o">=</span> <span class="kc">False</span>
+            <span class="n">details</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;  &quot;</span> <span class="o">+</span> <span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Not a valid patch: </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">))</span> <span class="o">%</span> <span class="n">patch</span><span class="p">)</span>
+
+        <span class="n">res</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">res_cmd</span><span class="p">)</span>
+        
+        <span class="k">if</span> <span class="n">res_cmd</span><span class="p">:</span>
+            <span class="n">message</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Apply patch </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">blue</span><span class="p">(</span><span class="n">patch</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">message</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Failed to apply patch </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="n">patch</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">config</span><span class="o">.</span><span class="n">USER</span><span class="o">.</span><span class="n">output_verbose_level</span> <span class="o">&gt;=</span> <span class="mi">3</span><span class="p">:</span>
+            <span class="n">retcode</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;  </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">message</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">retcode</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">message</span><span class="p">))</span>
+        
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">details</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">retcode</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">details</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="kc">False</span> <span class="ow">in</span> <span class="n">res</span><span class="p">:</span> 
+      <span class="n">rc</span> <span class="o">=</span> <span class="s2">&quot;KO&quot;</span>
+    <span class="k">else</span><span class="p">:</span>
+      <span class="n">rc</span> <span class="o">=</span> <span class="s2">&quot;OK&quot;</span>
+    
+    <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="n">rc</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">retcode</span><span class="p">))</span></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/prepare.html b/doc/build/html/_modules/commands/prepare.html
new file mode 100644 (file)
index 0000000..0a65cd5
--- /dev/null
@@ -0,0 +1,299 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.prepare &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.prepare</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+<span class="kn">import</span> <span class="nn">os</span>
+<span class="kn">import</span> <span class="nn">re</span>
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.prepare.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">  The prepare command gets the sources of the application products </span>
+<span class="sd">  and apply the patches if there is any.</span>
+
+<span class="sd">  examples:</span>
+<span class="sd">  &gt;&gt; sat prepare SALOME --products KERNEL,GUI</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;prepare&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.prepare.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for command &#39;sat prepare &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;p&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span> <span class="s1">&#39;list2&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: products to prepare. This option can be&#39;</span>
+        <span class="s1">&#39; passed several time to prepare several products.&#39;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;f&#39;</span><span class="p">,</span> <span class="s1">&#39;force&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;force&#39;</span><span class="p">,</span> 
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: force to prepare the products in development mode.&quot;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;force_patch&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;force_patch&#39;</span><span class="p">,</span> 
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: force to apply patch to the products in development mode.&quot;</span><span class="p">))</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.prepare.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat prepare &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+
+    <span class="c1"># check that the command has been called with an application</span>
+    <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span> <span class="n">config</span> <span class="p">)</span>
+
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_products_list</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+
+    <span class="c1"># Construct the arguments to pass to the clean, source and patch commands</span>
+    <span class="n">args_appli</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span> <span class="o">+</span> <span class="s1">&#39; &#39;</span>
+    <span class="n">args_product_opt</span> <span class="o">=</span> <span class="s1">&#39;--products &#39;</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">products</span><span class="p">:</span>
+        <span class="k">for</span> <span class="n">p_name</span> <span class="ow">in</span> <span class="n">options</span><span class="o">.</span><span class="n">products</span><span class="p">:</span>
+            <span class="n">args_product_opt</span> <span class="o">+=</span> <span class="s1">&#39;,&#39;</span> <span class="o">+</span> <span class="n">p_name</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="k">for</span> <span class="n">p_name</span><span class="p">,</span> <span class="n">__</span> <span class="ow">in</span> <span class="n">products_infos</span><span class="p">:</span>
+            <span class="n">args_product_opt</span> <span class="o">+=</span> <span class="s1">&#39;,&#39;</span> <span class="o">+</span> <span class="n">p_name</span>
+
+    <span class="n">ldev_products</span> <span class="o">=</span> <span class="p">[</span><span class="n">p</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">products_infos</span> <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_dev</span><span class="p">(</span><span class="n">p</span><span class="p">[</span><span class="mi">1</span><span class="p">])]</span>
+    <span class="n">args_product_opt_clean</span> <span class="o">=</span> <span class="n">args_product_opt</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">force</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">ldev_products</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">l_products_not_getted</span> <span class="o">=</span> <span class="n">find_products_already_getted</span><span class="p">(</span><span class="n">ldev_products</span><span class="p">)</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">l_products_not_getted</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">Do not get the source of the following products in development mode.</span>
+<span class="s2">Use the --force option to overwrite it.</span>
+<span class="s2">&quot;&quot;&quot;</span><span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="n">msg</span><span class="p">))</span>
+            <span class="n">args_product_opt_clean</span> <span class="o">=</span> <span class="n">remove_products</span><span class="p">(</span><span class="n">args_product_opt_clean</span><span class="p">,</span>
+                                                     <span class="n">l_products_not_getted</span><span class="p">,</span>
+                                                     <span class="n">logger</span><span class="p">)</span>
+
+    
+    <span class="n">args_product_opt_patch</span> <span class="o">=</span> <span class="n">args_product_opt</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">force_patch</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">ldev_products</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">l_products_with_patchs</span> <span class="o">=</span> <span class="n">find_products_with_patchs</span><span class="p">(</span><span class="n">ldev_products</span><span class="p">)</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">l_products_with_patchs</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span>
+<span class="s2">Do not patch the following products in development mode.</span>
+<span class="s2">Use the --force_patch option to overwrite it.</span>
+<span class="s2">&quot;&quot;&quot;</span><span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="n">msg</span><span class="p">))</span>
+            <span class="n">args_product_opt_patch</span> <span class="o">=</span> <span class="n">remove_products</span><span class="p">(</span><span class="n">args_product_opt_patch</span><span class="p">,</span>
+                                                     <span class="n">l_products_with_patchs</span><span class="p">,</span>
+                                                     <span class="n">logger</span><span class="p">)</span>
+
+    <span class="c1"># Construct the final commands arguments</span>
+    <span class="n">args_clean</span> <span class="o">=</span> <span class="n">args_appli</span> <span class="o">+</span> <span class="n">args_product_opt_clean</span> <span class="o">+</span> <span class="s2">&quot; --sources&quot;</span>
+    <span class="n">args_source</span> <span class="o">=</span> <span class="n">args_appli</span> <span class="o">+</span> <span class="n">args_product_opt</span>  
+    <span class="n">args_patch</span> <span class="o">=</span> <span class="n">args_appli</span> <span class="o">+</span> <span class="n">args_product_opt_patch</span>
+
+    <span class="c1"># If there is no more any product in the command arguments,</span>
+    <span class="c1"># do not call the concerned command </span>
+    <span class="n">oExpr</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s2">&quot;^--products *$&quot;</span><span class="p">)</span>
+    <span class="n">do_clean</span> <span class="o">=</span> <span class="ow">not</span><span class="p">(</span><span class="n">oExpr</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">args_product_opt_clean</span><span class="p">))</span>
+    <span class="n">do_source</span> <span class="o">=</span> <span class="ow">not</span><span class="p">(</span><span class="n">oExpr</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">args_product_opt</span><span class="p">))</span>
+    <span class="n">do_patch</span> <span class="o">=</span> <span class="ow">not</span><span class="p">(</span><span class="n">oExpr</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">args_product_opt_patch</span><span class="p">))</span>
+    
+    
+    <span class="c1"># Initialize the results to Ok but nothing done status</span>
+    <span class="n">res_clean</span> <span class="o">=</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;nothing done&quot;</span><span class="p">)</span>
+    <span class="n">res_source</span> <span class="o">=</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;nothing done&quot;</span><span class="p">)</span>
+    <span class="n">res_patch</span> <span class="o">=</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;nothing done&quot;</span><span class="p">)</span>
+
+    <span class="c1"># return res_clean + res_source + res_patch</span>
+
+    <span class="c1"># Call the commands using the API</span>
+    <span class="k">if</span> <span class="n">do_clean</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Clean the source directories ...&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="n">DBG</span><span class="o">.</span><span class="n">tofix</span><span class="p">(</span><span class="s2">&quot;args_clean and TODO remove returns&quot;</span><span class="p">,</span> <span class="n">args_clean</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
+        <span class="n">res_clean</span> <span class="o">=</span> <span class="n">runner</span><span class="o">.</span><span class="n">getCommand</span><span class="p">(</span><span class="s2">&quot;clean&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">args_clean</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">res_clean</span> <span class="o">+</span> <span class="n">res_source</span> <span class="o">+</span> <span class="n">res_patch</span>
+    <span class="k">if</span> <span class="n">do_source</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Get the sources of the products ...&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="n">res_source</span> <span class="o">=</span> <span class="n">runner</span><span class="o">.</span><span class="n">getCommand</span><span class="p">(</span><span class="s2">&quot;source&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">args_source</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">do_patch</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Patch the product sources (if any) ...&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="n">res_patch</span> <span class="o">=</span> <span class="n">runner</span><span class="o">.</span><span class="n">getCommand</span><span class="p">(</span><span class="s2">&quot;patch&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">args_patch</span><span class="p">)</span>
+    
+    <span class="k">return</span> <span class="n">res_clean</span> <span class="o">+</span> <span class="n">res_source</span> <span class="o">+</span> <span class="n">res_patch</span></div></div>
+
+
+<div class="viewcode-block" id="remove_products"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.prepare.remove_products">[docs]</a><span class="k">def</span> <span class="nf">remove_products</span><span class="p">(</span><span class="n">arguments</span><span class="p">,</span> <span class="n">l_products_info</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Removes the products in l_products_info from arguments list.</span>
+<span class="sd">    </span>
+<span class="sd">    :param arguments: (str) The arguments from which to remove products</span>
+<span class="sd">    :param l_products_info: (list) </span>
+<span class="sd">      List of (str, Config) =&gt; (product_name, product_info)</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :return: (str) The updated arguments.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">args</span> <span class="o">=</span> <span class="n">arguments</span>
+    <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="p">(</span><span class="n">product_name</span><span class="p">,</span> <span class="n">__</span><span class="p">)</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">l_products_info</span><span class="p">):</span>
+        <span class="n">args</span> <span class="o">=</span> <span class="n">args</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39;,&#39;</span> <span class="o">+</span> <span class="n">product_name</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
+        <span class="n">end_text</span> <span class="o">=</span> <span class="s1">&#39;, &#39;</span>
+        <span class="k">if</span> <span class="n">i</span><span class="o">+</span><span class="mi">1</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">l_products_info</span><span class="p">):</span>
+            <span class="n">end_text</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>            
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">product_name</span> <span class="o">+</span> <span class="n">end_text</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">args</span></div>
+
+<div class="viewcode-block" id="find_products_already_getted"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.prepare.find_products_already_getted">[docs]</a><span class="k">def</span> <span class="nf">find_products_already_getted</span><span class="p">(</span><span class="n">l_products</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Returns the list of products that have an existing source directory.</span>
+<span class="sd">    </span>
+<span class="sd">    :param l_products: (list) The list of products to check</span>
+<span class="sd">    :return: (list) </span>
+<span class="sd">      The list of product configurations </span>
+<span class="sd">      that have an existing source directory.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">l_res</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="k">for</span> <span class="n">p_name_p_cfg</span> <span class="ow">in</span> <span class="n">l_products</span><span class="p">:</span>
+        <span class="n">__</span><span class="p">,</span> <span class="n">prod_cfg</span> <span class="o">=</span> <span class="n">p_name_p_cfg</span>
+        <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">prod_cfg</span><span class="o">.</span><span class="n">source_dir</span><span class="p">):</span>
+            <span class="n">l_res</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p_name_p_cfg</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">l_res</span></div>
+
+<div class="viewcode-block" id="find_products_with_patchs"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.prepare.find_products_with_patchs">[docs]</a><span class="k">def</span> <span class="nf">find_products_with_patchs</span><span class="p">(</span><span class="n">l_products</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Returns the list of products that have one or more patches.</span>
+<span class="sd">    </span>
+<span class="sd">    :param l_products: (list) The list of products to check</span>
+<span class="sd">    :return: (list) </span>
+<span class="sd">      The list of product configurations </span>
+<span class="sd">      that have one or more patches.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">l_res</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="k">for</span> <span class="n">p_name_p_cfg</span> <span class="ow">in</span> <span class="n">l_products</span><span class="p">:</span>
+        <span class="n">__</span><span class="p">,</span> <span class="n">prod_cfg</span> <span class="o">=</span> <span class="n">p_name_p_cfg</span>
+        <span class="n">l_patchs</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_cfg_param</span><span class="p">(</span><span class="n">prod_cfg</span><span class="p">,</span> <span class="s2">&quot;patches&quot;</span><span class="p">,</span> <span class="p">[])</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">l_patchs</span><span class="p">)</span><span class="o">&gt;</span><span class="mi">0</span><span class="p">:</span>
+            <span class="n">l_res</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p_name_p_cfg</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">l_res</span></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/profile.html b/doc/build/html/_modules/commands/profile.html
new file mode 100644 (file)
index 0000000..9ff5faa
--- /dev/null
@@ -0,0 +1,363 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.profile &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.profile</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+<span class="kn">import</span> <span class="nn">shutil</span>
+<span class="kn">import</span> <span class="nn">subprocess</span>
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">import</span> <span class="nn">src.pyconf</span> <span class="k">as</span> <span class="nn">PYCONF</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.profile.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;\</span>
+<span class="sd">  The profile command creates default profile.</span>
+<span class="sd">  </span>
+<span class="sd">  examples: </span>
+<span class="sd">  &gt;&gt; sat profile [PRODUCT] </span>
+<span class="sd">  &gt;&gt; sat profile --prefix (string)</span>
+<span class="sd">  &gt;&gt; sat profile --name (string)</span>
+<span class="sd">  &gt;&gt; sat profile --force</span>
+<span class="sd">  &gt;&gt; sat profile --version (string) </span>
+<span class="sd">  &gt;&gt; sat profile --slogan (string) </span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;profile&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.profile.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for command &#39;sat profile &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;p&#39;</span><span class="p">,</span> <span class="s1">&#39;prefix&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;prefix&#39;</span><span class="p">,</span> 
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Where the profile&#39;s sources will be generated.&quot;</span><span class="p">)</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;n&#39;</span><span class="p">,</span> <span class="s1">&#39;name&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;name&#39;</span><span class="p">,</span> 
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Name of the profile&#39;s sources. [Default: &#39;$</span><span class="si">{config.PRODUCT.name}</span><span class="s2">_PROFILE]&quot;</span><span class="p">)</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;f&#39;</span><span class="p">,</span> <span class="s1">&#39;force&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;force&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Overwrites existing sources.&quot;</span><span class="p">)</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;u&#39;</span><span class="p">,</span> <span class="s1">&#39;no_update&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;no_update&#39;</span><span class="p">,</span> 
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Does not update pyconf file.&quot;</span><span class="p">)</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;v&#39;</span><span class="p">,</span> <span class="s1">&#39;version&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;version&#39;</span><span class="p">,</span> 
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Version of the application. [Default: 1.0]&quot;</span><span class="p">),</span> <span class="s1">&#39;1.0&#39;</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
+        <span class="s1">&#39;s&#39;</span><span class="p">,</span> <span class="s1">&#39;slogan&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;slogan&#39;</span><span class="p">,</span> 
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Slogan of the application.&quot;</span><span class="p">)</span> <span class="p">)</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.profile.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat profile &lt;options&gt;&#39;&quot;&quot;&quot;</span> 
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+  
+    <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">prefix</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The --</span><span class="si">%s</span><span class="s2"> argument is required</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="s2">&quot;prefix&quot;</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;KO&quot;</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
+    
+    <span class="n">retcode</span> <span class="o">=</span> <span class="n">generate_profile_sources</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">no_update</span> <span class="p">:</span>
+        <span class="n">update_pyconf</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">options</span><span class="p">)</span>
+
+    <span class="k">return</span> <span class="n">retcode</span></div></div>
+
+
+<span class="c1"># Class that overrides common.Reference</span>
+<span class="c1"># in order to manipulate fields starting with &#39;@&#39;</span>
+<div class="viewcode-block" id="profileReference"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.profile.profileReference">[docs]</a><span class="k">class</span> <span class="nc">profileReference</span><span class="p">(</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Reference</span> <span class="p">):</span>
+    <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="n">s</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">elements</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="k">for</span> <span class="n">tt</span><span class="p">,</span> <span class="n">tv</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">elements</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
+            <span class="k">if</span> <span class="n">tt</span> <span class="o">==</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">DOT</span><span class="p">:</span>
+                <span class="n">s</span> <span class="o">+=</span> <span class="s1">&#39;.</span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">tv</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">s</span> <span class="o">+=</span> <span class="s1">&#39;[</span><span class="si">%r</span><span class="s1">]&#39;</span> <span class="o">%</span> <span class="n">tv</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span> <span class="o">==</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">BACKTICK</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">BACKTICK</span> <span class="o">+</span> <span class="n">s</span> <span class="o">+</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">BACKTICK</span>
+        <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span> <span class="o">==</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">AT</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">AT</span> <span class="o">+</span> <span class="n">s</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">DOLLAR</span> <span class="o">+</span> <span class="n">s</span></div>
+
+<span class="c1">##</span>
+<span class="c1"># Class that overrides how fields starting with &#39;@&#39; are read.</span>
+<div class="viewcode-block" id="profileConfigReader"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.profile.profileConfigReader">[docs]</a><span class="k">class</span> <span class="nc">profileConfigReader</span><span class="p">(</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">ConfigReader</span> <span class="p">)</span> <span class="p">:</span>
+<div class="viewcode-block" id="profileConfigReader.parseMapping"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.profile.profileConfigReader.parseMapping">[docs]</a>    <span class="k">def</span> <span class="nf">parseMapping</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">suffix</span><span class="p">):</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">token</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">LCURLY</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">PYCONF</span><span class="o">.</span><span class="n">LCURLY</span><span class="p">)</span>
+            <span class="n">rv</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(</span><span class="n">parent</span><span class="p">)</span>
+            <span class="n">rv</span><span class="o">.</span><span class="n">setPath</span><span class="p">(</span>
+               <span class="n">PYCONF</span><span class="o">.</span><span class="n">makePath</span><span class="p">(</span><span class="nb">object</span><span class="o">.</span><span class="fm">__getattribute__</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="s1">&#39;path&#39;</span><span class="p">),</span>
+                                   <span class="n">suffix</span><span class="p">))</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">parseMappingBody</span><span class="p">(</span><span class="n">rv</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">PYCONF</span><span class="o">.</span><span class="n">RCURLY</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">PYCONF</span><span class="o">.</span><span class="n">AT</span><span class="p">)</span>
+            <span class="n">__</span><span class="p">,</span> <span class="n">fn</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="s1">&#39;&quot;&#39;</span><span class="p">)</span>
+            <span class="n">rv</span> <span class="o">=</span> <span class="n">profileReference</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">AT</span><span class="p">,</span> <span class="n">fn</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">rv</span></div></div>
+
+
+
+<span class="c1">##</span>
+<span class="c1"># Gets the profile name</span>
+<div class="viewcode-block" id="get_profile_name"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.profile.get_profile_name">[docs]</a><span class="k">def</span> <span class="nf">get_profile_name</span> <span class="p">(</span> <span class="n">options</span><span class="p">,</span> <span class="n">config</span> <span class="p">):</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">name</span> <span class="p">:</span>
+        <span class="n">res</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">name</span>
+    <span class="k">else</span> <span class="p">:</span>
+        <span class="n">res</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">&quot;_PROFILE&quot;</span>
+    <span class="k">return</span> <span class="n">res</span></div>
+
+<div class="viewcode-block" id="generate_profile_sources"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.profile.generate_profile_sources">[docs]</a><span class="k">def</span> <span class="nf">generate_profile_sources</span><span class="p">(</span> <span class="n">config</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">logger</span> <span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Generates the sources of the profile</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c1">#Check script app-quickstart.py exists</span>
+    <span class="n">kernel_cfg</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="s2">&quot;KERNEL&quot;</span><span class="p">)</span>
+    <span class="n">kernel_root_dir</span> <span class="o">=</span> <span class="n">kernel_cfg</span><span class="o">.</span><span class="n">install_dir</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">check_installation</span><span class="p">(</span><span class="n">kernel_cfg</span><span class="p">):</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;KERNEL is not installed&quot;</span><span class="p">))</span>
+    <span class="n">script</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">kernel_root_dir</span><span class="p">,</span><span class="s2">&quot;bin&quot;</span><span class="p">,</span><span class="s2">&quot;salome&quot;</span><span class="p">,</span><span class="s2">&quot;app-quickstart.py&quot;</span><span class="p">)</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span> <span class="n">script</span> <span class="p">):</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;KERNEL&#39;s install has not the script app-quickstart.py&quot;</span><span class="p">)</span> <span class="p">)</span>
+
+    <span class="c1"># Check that GUI is installed</span>
+    <span class="n">gui_cfg</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="s2">&quot;GUI&quot;</span><span class="p">)</span>
+    <span class="n">gui_root_dir</span> <span class="o">=</span> <span class="n">gui_cfg</span><span class="o">.</span><span class="n">install_dir</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">check_installation</span><span class="p">(</span><span class="n">gui_cfg</span><span class="p">):</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;GUI is not installed&quot;</span><span class="p">))</span>
+
+    <span class="c1">#Set prefix option passed to app-quickstart.py</span>
+    <span class="n">name</span> <span class="o">=</span> <span class="n">get_profile_name</span> <span class="p">(</span> <span class="n">options</span><span class="p">,</span> <span class="n">config</span> <span class="p">)</span>
+    <span class="n">prefix</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> <span class="n">options</span><span class="o">.</span><span class="n">prefix</span><span class="p">,</span> <span class="n">name</span> <span class="p">)</span>
+    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span> <span class="n">prefix</span> <span class="p">)</span> <span class="p">:</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">force</span> <span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span> 
+              <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The path </span><span class="si">%s</span><span class="s2"> already exists, use option --force to remove it.&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">prefix</span> <span class="p">)</span>
+        <span class="k">else</span> <span class="p">:</span>
+            <span class="n">shutil</span><span class="o">.</span><span class="n">rmtree</span><span class="p">(</span> <span class="n">prefix</span> <span class="p">)</span>
+
+    <span class="c1">#Set name option passed to app-quickstart.py</span>
+    <span class="k">if</span> <span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s2">&quot;_PROFILE&quot;</span><span class="p">):</span>
+        <span class="n">name</span> <span class="o">=</span> <span class="n">name</span><span class="p">[:</span><span class="o">-</span><span class="mi">8</span><span class="p">]</span>
+
+    <span class="c1">#Write command line that calls app-quickstart.py</span>
+    <span class="n">command</span> <span class="o">=</span> <span class="s2">&quot;python </span><span class="si">%s</span><span class="s2"> --prefix=</span><span class="si">%s</span><span class="s2"> --name=</span><span class="si">%s</span><span class="s2"> --modules=_NO_ --version=</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> \
+              <span class="p">(</span> <span class="n">script</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">options</span><span class="o">.</span><span class="n">version</span> <span class="p">)</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">force</span> <span class="p">:</span>
+        <span class="n">command</span> <span class="o">+=</span> <span class="s2">&quot; --force&quot;</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">slogan</span> <span class="p">:</span>
+        <span class="n">command</span> <span class="o">+=</span> <span class="s2">&quot; --slogan=</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">options</span><span class="o">.</span><span class="n">slogan</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&gt;&quot;</span> <span class="o">+</span> <span class="n">command</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+    <span class="c1">#Run command</span>
+    <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">&quot;KERNEL_ROOT_DIR&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">kernel_root_dir</span>
+    <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">&quot;GUI_ROOT_DIR&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">gui_root_dir</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">command</span><span class="p">,</span>
+                    <span class="n">shell</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+                    <span class="n">env</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">,</span>
+                    <span class="n">stdout</span><span class="o">=</span><span class="n">logger</span><span class="o">.</span><span class="n">logTxtFile</span><span class="p">,</span>
+                    <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">STDOUT</span><span class="p">)</span>
+    <span class="c1">#Check result of command</span>
+    <span class="k">if</span> <span class="n">res</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Cannot create application, code = </span><span class="si">%d</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">res</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Profile sources were generated in directory </span><span class="si">%s</span><span class="s2">.</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">prefix</span><span class="p">)</span> <span class="p">)</span>
+    <span class="k">return</span> <span class="n">res</span></div>
+
+
+<div class="viewcode-block" id="update_pyconf"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.profile.update_pyconf">[docs]</a><span class="k">def</span> <span class="nf">update_pyconf</span><span class="p">(</span> <span class="n">config</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">logger</span> <span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Updates the pyconf</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c1">#Save previous version</span>
+    <span class="n">pyconf</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">product</span> <span class="o">+</span> <span class="s1">&#39;.pyconf&#39;</span>
+    <span class="n">pyconfBackup</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">product</span> <span class="o">+</span> <span class="s1">&#39;-backup.pyconf&#39;</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Updating </span><span class="si">%s</span><span class="s2"> (previous version saved as </span><span class="si">%s</span><span class="s2">.&quot;</span> <span class="p">)</span> <span class="o">%</span> <span class="p">(</span><span class="n">pyconf</span><span class="p">,</span> <span class="n">pyconfBackup</span><span class="p">))</span>
+    <span class="n">path</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">getPath</span><span class="p">(</span> <span class="n">pyconf</span> <span class="p">)</span>
+    <span class="n">shutil</span><span class="o">.</span><span class="n">copyfile</span><span class="p">(</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> <span class="n">path</span><span class="p">,</span> <span class="n">pyconf</span> <span class="p">),</span>
+                     <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> <span class="n">path</span><span class="p">,</span> <span class="n">pyconfBackup</span> <span class="p">)</span> <span class="p">)</span>
+
+    <span class="c1">#Load config</span>
+    <span class="n">cfg</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Config</span><span class="p">(</span> <span class="p">)</span>
+    <span class="nb">object</span><span class="o">.</span><span class="fm">__setattr__</span><span class="p">(</span> <span class="n">cfg</span><span class="p">,</span> <span class="s1">&#39;reader&#39;</span><span class="p">,</span> <span class="n">profileConfigReader</span><span class="p">(</span> <span class="n">cfg</span> <span class="p">)</span> <span class="p">)</span>
+    <span class="n">cfg</span><span class="o">.</span><span class="n">load</span><span class="p">(</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">defaultStreamOpener</span><span class="p">(</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> <span class="n">path</span><span class="p">,</span> <span class="n">pyconf</span> <span class="p">)</span> <span class="p">)</span> <span class="p">)</span>
+
+    <span class="c1">#Check if profile is in APPLICATION.products</span>
+    <span class="n">profile</span> <span class="o">=</span> <span class="n">get_profile_name</span> <span class="p">(</span> <span class="n">options</span><span class="p">,</span> <span class="n">config</span> <span class="p">)</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">profile</span> <span class="ow">in</span> <span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">:</span>
+        <span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> <span class="n">profile</span><span class="p">,</span> <span class="kc">None</span> <span class="p">)</span>
+
+    <span class="c1">#Check if profile is in APPLICATION</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="s1">&#39;profile&#39;</span> <span class="ow">in</span> <span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="p">:</span>
+        <span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span> <span class="s1">&#39;profile&#39;</span><span class="p">,</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(),</span> <span class="kc">None</span> <span class="p">)</span>
+        <span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">profile</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span> <span class="s1">&#39;module&#39;</span><span class="p">,</span> <span class="n">profile</span><span class="p">,</span> <span class="kc">None</span> <span class="p">)</span>
+        <span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">profile</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span> <span class="s1">&#39;launcher_name&#39;</span><span class="p">,</span>
+                                            <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">lower</span><span class="p">(),</span> <span class="kc">None</span> <span class="p">)</span>
+
+    <span class="c1">#Check if profile info is in PRODUCTS</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="s1">&#39;PRODUCTS&#39;</span> <span class="ow">in</span> <span class="n">cfg</span><span class="p">:</span>
+        <span class="n">cfg</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span> <span class="s1">&#39;PRODUCTS&#39;</span><span class="p">,</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(),</span> <span class="kc">None</span> <span class="p">)</span>
+        
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">profile</span> <span class="ow">in</span> <span class="n">cfg</span><span class="o">.</span><span class="n">PRODUCTS</span><span class="p">:</span>
+        <span class="n">cfg</span><span class="o">.</span><span class="n">PRODUCTS</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span> <span class="n">profile</span><span class="p">,</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(),</span> <span class="kc">None</span> <span class="p">)</span>
+        <span class="n">cfg</span><span class="o">.</span><span class="n">PRODUCTS</span><span class="p">[</span><span class="n">profile</span><span class="p">]</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span> <span class="s1">&#39;default&#39;</span><span class="p">,</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(),</span>
+                                          <span class="kc">None</span> <span class="p">)</span>
+        <span class="n">prf</span> <span class="o">=</span> <span class="n">cfg</span><span class="o">.</span><span class="n">TOOLS</span><span class="o">.</span><span class="n">common</span><span class="o">.</span><span class="n">module_info</span><span class="p">[</span><span class="n">profile</span><span class="p">]</span><span class="o">.</span><span class="n">default</span>
+        <span class="n">prf</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span> <span class="s1">&#39;name&#39;</span><span class="p">,</span> <span class="n">profile</span><span class="p">,</span> <span class="kc">None</span> <span class="p">)</span>
+        <span class="n">prf</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span> <span class="s1">&#39;get_source&#39;</span><span class="p">,</span> <span class="s1">&#39;archive&#39;</span><span class="p">,</span> <span class="kc">None</span> <span class="p">)</span>
+        <span class="n">prf</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span> <span class="s1">&#39;build_source&#39;</span><span class="p">,</span> <span class="s1">&#39;cmake&#39;</span><span class="p">,</span> <span class="kc">None</span> <span class="p">)</span>
+        <span class="n">prf</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span> <span class="s1">&#39;archive_info&#39;</span><span class="p">,</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(),</span> <span class="kc">None</span> <span class="p">)</span>
+        <span class="n">prf</span><span class="o">.</span><span class="n">archive_info</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span> 
+            <span class="s1">&#39;name&#39;</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">options</span><span class="o">.</span><span class="n">prefix</span><span class="p">),</span> <span class="n">profile</span><span class="p">),</span> <span class="kc">None</span> <span class="p">)</span>
+        <span class="n">tmp</span> <span class="o">=</span> <span class="s2">&quot;APPLICATION.workdir + $VARS.sep + &#39;SOURCES&#39; + $VARS.sep + $name&quot;</span>
+        <span class="n">prf</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span> <span class="s1">&#39;source_dir&#39;</span><span class="p">,</span> 
+                        <span class="n">PYCONF</span><span class="o">.</span><span class="n">Reference</span><span class="p">(</span><span class="n">cfg</span><span class="p">,</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">DOLLAR</span><span class="p">,</span> <span class="n">tmp</span> <span class="p">),</span>
+                        <span class="kc">None</span> <span class="p">)</span>
+        <span class="n">tmp</span> <span class="o">=</span> <span class="s2">&quot;APPLICATION.workdir + $VARS.sep + &#39;BUILD&#39; + $VARS.sep + $name&quot;</span>
+        <span class="n">prf</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span> <span class="s1">&#39;build_dir&#39;</span><span class="p">,</span> 
+                         <span class="n">PYCONF</span><span class="o">.</span><span class="n">Reference</span><span class="p">(</span><span class="n">cfg</span><span class="p">,</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">DOLLAR</span><span class="p">,</span> <span class="n">tmp</span> <span class="p">),</span>
+                         <span class="kc">None</span> <span class="p">)</span>
+        <span class="n">prf</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span> <span class="s1">&#39;depend&#39;</span><span class="p">,</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Sequence</span><span class="p">(),</span> <span class="kc">None</span> <span class="p">)</span>
+        <span class="n">prf</span><span class="o">.</span><span class="n">depend</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> <span class="s1">&#39;KERNEL&#39;</span><span class="p">,</span> <span class="kc">None</span> <span class="p">)</span>
+        <span class="n">prf</span><span class="o">.</span><span class="n">depend</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> <span class="s1">&#39;GUI&#39;</span><span class="p">,</span> <span class="kc">None</span> <span class="p">)</span>
+        <span class="n">prf</span><span class="o">.</span><span class="n">depend</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> <span class="s1">&#39;Python&#39;</span><span class="p">,</span> <span class="kc">None</span> <span class="p">)</span>
+        <span class="n">prf</span><span class="o">.</span><span class="n">depend</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> <span class="s1">&#39;Sphinx&#39;</span><span class="p">,</span> <span class="kc">None</span> <span class="p">)</span>
+        <span class="n">prf</span><span class="o">.</span><span class="n">depend</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> <span class="s1">&#39;qt&#39;</span><span class="p">,</span> <span class="kc">None</span> <span class="p">)</span>
+        <span class="n">prf</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span> <span class="s1">&#39;opt_depend&#39;</span><span class="p">,</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Sequence</span><span class="p">(),</span> <span class="kc">None</span> <span class="p">)</span>
+
+    <span class="c1">#Save config</span>
+    <span class="n">f</span> <span class="o">=</span> <span class="n">file</span><span class="p">(</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> <span class="n">path</span><span class="p">,</span> <span class="n">pyconf</span> <span class="p">)</span> <span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span>
+    <span class="n">cfg</span><span class="o">.</span><span class="n">__save__</span><span class="p">(</span><span class="n">f</span><span class="p">)</span></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/run.html b/doc/build/html/_modules/commands/run.html
new file mode 100644 (file)
index 0000000..6104bf3
--- /dev/null
@@ -0,0 +1,199 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.run &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.run</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+<span class="kn">import</span> <span class="nn">os</span>
+<span class="kn">import</span> <span class="nn">subprocess</span>
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">import</span> <span class="nn">src.utilsSat</span> <span class="k">as</span> <span class="nn">UTS</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.run.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;\</span>
+<span class="sd">  The run command runs the application launcher with the given arguments.</span>
+<span class="sd">  </span>
+<span class="sd">  examples:</span>
+<span class="sd">    &gt;&gt; sat run SALOME</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;run&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.run.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for command &#39;sat run &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span> <span class="c1"># no options yet</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.run.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat run &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+
+    <span class="c1"># check for product</span>
+    <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
+
+    <span class="c1"># Determine launcher path </span>
+    <span class="n">launcher_name</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_launcher_name</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
+    <span class="n">launcher_dir</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span>
+    
+    <span class="c1"># Check the launcher existence</span>
+    <span class="k">if</span> <span class="n">launcher_name</span> <span class="ow">not</span> <span class="ow">in</span>  <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">launcher_dir</span><span class="p">):</span>
+        <span class="n">message</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">The launcher </span><span class="si">%(1)s</span><span class="s2"> was not found in directory &#39;</span><span class="si">%(2)s</span><span class="s2">&#39;.</span>
+<span class="s2">Did you run the command &#39;sat launcher&#39; ?</span><span class="se">\n</span><span class="s2">&quot;&quot;&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="p">{</span><span class="s2">&quot;1&quot;</span><span class="p">:</span> <span class="n">launcher_name</span><span class="p">,</span> <span class="s2">&quot;2&quot;</span><span class="p">:</span> <span class="n">launcher_dir</span><span class="p">}</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
+          
+    <span class="n">launcher_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">launcher_dir</span><span class="p">,</span> <span class="n">launcher_name</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">launcher_path</span><span class="p">):</span>
+        <span class="n">message</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">The launcher at path &#39;</span><span class="si">%s</span><span class="s2">&#39; is missing.</span>
+<span class="s2">Did you run the command &#39;sat launcher&#39; ?</span><span class="se">\n</span><span class="s2">&quot;&quot;&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">launcher_path</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
+
+    <span class="c1"># Determine the command to launch (add the additional arguments)</span>
+    <span class="n">command</span> <span class="o">=</span> <span class="n">launcher_path</span> <span class="o">+</span> <span class="s2">&quot; &quot;</span> <span class="o">+</span> <span class="s2">&quot; &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
+
+    <span class="c1"># Print the command</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Executed command &lt;blue&gt;</span><span class="si">%s</span><span class="s2">&lt;reset&gt; Launching ...</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">command</span><span class="p">)</span>
+    
+    <span class="c1"># Run the launcher</span>
+    <span class="n">subprocess</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">command</span><span class="p">,</span>
+                    <span class="n">shell</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+                    <span class="n">stdout</span><span class="o">=</span><span class="n">logger</span><span class="o">.</span><span class="n">logTxtFile</span><span class="p">,</span>
+                    <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">STDOUT</span><span class="p">)</span>
+    
+    <span class="c1"># Display information: how to get the logs</span>
+    <span class="n">msg1</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;End of &#39;sat run&#39;. To see traces, type:&quot;</span><span class="p">)</span>
+    <span class="n">msg2</span> <span class="o">=</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="s2">&quot;sat log &quot;</span> <span class="o">+</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">)</span>
+    <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">msg1</span><span class="p">,</span> <span class="n">msg2</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+    
+    <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span></div></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/script.html b/doc/build/html/_modules/commands/script.html
new file mode 100644 (file)
index 0000000..8cc0183
--- /dev/null
@@ -0,0 +1,328 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.script &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.script</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.script.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;\</span>
+<span class="sd">  The script command executes the script(s) of the the given products in the build directory.</span>
+<span class="sd">  This is done only for the products that are constructed using a script (build_source : &#39;script&#39;).</span>
+<span class="sd">  Otherwise, nothing is done.</span>
+
+<span class="sd">  examples:</span>
+<span class="sd">    &gt;&gt; sat script SALOME --products Python,numpy</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;script&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.script.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for the command &#39;sat script &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;p&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span> <span class="s1">&#39;list2&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: products to configure. This option can be&#39;</span>
+        <span class="s1">&#39; passed several time to configure several products.&#39;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;nb_proc&#39;</span><span class="p">,</span> <span class="s1">&#39;int&#39;</span><span class="p">,</span> <span class="s1">&#39;nb_proc&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: The number of processors to use in the script if the make &#39;</span>
+          <span class="s1">&#39;command is used in it.</span><span class="se">\n\t</span><span class="s1">Warning: the script has to be correctly written &#39;</span>
+          <span class="s1">&#39;if you want this option to work.</span><span class="se">\n\t</span><span class="s1">The $MAKE_OPTIONS has to be &#39;</span>
+          <span class="s1">&#39;used.&#39;</span><span class="p">),</span> <span class="mi">0</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.script.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat script &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+
+    <span class="c1"># check that the command has been called with an application</span>
+    <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span> <span class="n">config</span> <span class="p">)</span>
+
+    <span class="c1"># Get the list of products to treat</span>
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="n">get_products_list</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+    
+    <span class="c1"># Print some informations</span>
+    <span class="n">msg</span> <span class="o">=</span> <span class="p">(</span><span class="s1">&#39;Executing the script in the build directories of the application </span><span class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span> <span class="o">%</span> \
+                <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+    
+    <span class="n">info</span> <span class="o">=</span> <span class="p">[(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;BUILD directory&quot;</span><span class="p">),</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span> <span class="s1">&#39;BUILD&#39;</span><span class="p">))]</span>
+    <span class="n">UTS</span><span class="o">.</span><span class="n">logger_info_tuples</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">info</span><span class="p">)</span>
+    
+    <span class="c1"># Call the function that will loop over all the products and execute</span>
+    <span class="c1"># the right command(s)</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">nb_proc</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="n">options</span><span class="o">.</span><span class="n">nb_proc</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="n">run_script_all_products</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                                  <span class="n">products_infos</span><span class="p">,</span>
+                                  <span class="n">options</span><span class="o">.</span><span class="n">nb_proc</span><span class="p">,</span>
+                                  <span class="n">logger</span><span class="p">)</span>
+    
+    <span class="c1"># Print the final state</span>
+    <span class="n">nb_products</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">products_infos</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">res</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">final_status</span> <span class="o">=</span> <span class="s2">&quot;&lt;OK&gt;&quot;</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">final_status</span> <span class="o">=</span> <span class="s2">&quot;&lt;KO&gt;&quot;</span>
+   
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">Script: %(s (</span><span class="si">%d</span><span class="s2">/</span><span class="si">%d</span><span class="s2">)</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> \
+          <span class="p">(</span><span class="n">final_status</span><span class="p">,</span> <span class="n">nb_products</span> <span class="o">-</span> <span class="n">res</span><span class="p">,</span> <span class="n">nb_products</span><span class="p">)</span> <span class="p">)</span>   
+    
+    <span class="k">return</span> <span class="n">res</span> </div></div>
+    
+
+<div class="viewcode-block" id="get_products_list"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.script.get_products_list">[docs]</a><span class="k">def</span> <span class="nf">get_products_list</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">cfg</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Gives the product list with their informations from </span>
+<span class="sd">    configuration regarding the passed options.</span>
+<span class="sd">    </span>
+<span class="sd">    :param options: (Options) </span>
+<span class="sd">      The Options instance that stores the commands arguments</span>
+<span class="sd">    :param cfg: (Config) The global configuration</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :return: (list) The list of (product name, product_informations).</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c1"># Get the products to be prepared, regarding the options</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">products</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="c1"># No options, get all products sources</span>
+        <span class="n">products</span> <span class="o">=</span> <span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="c1"># if option --products, check that all products of the command line</span>
+        <span class="c1"># are present in the application.</span>
+        <span class="n">products</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">products</span>
+        <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">products</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">p</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Product </span><span class="si">%(product)s</span><span class="s2"> &quot;</span>
+                            <span class="s2">&quot;not defined in application </span><span class="si">%(application)s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> \
+                        <span class="p">{</span> <span class="s1">&#39;product&#39;</span><span class="p">:</span> <span class="n">p</span><span class="p">,</span> <span class="s1">&#39;application&#39;</span><span class="p">:</span> <span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">}</span> <span class="p">)</span>
+    
+    <span class="c1"># Construct the list of tuple containing </span>
+    <span class="c1"># the products name and their definition</span>
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_products_infos</span><span class="p">(</span><span class="n">products</span><span class="p">,</span> <span class="n">cfg</span><span class="p">)</span>
+    
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="p">[</span><span class="n">pi</span> <span class="k">for</span> <span class="n">pi</span> <span class="ow">in</span> <span class="n">products_infos</span> <span class="k">if</span> <span class="ow">not</span><span class="p">(</span>
+                                     <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_native</span><span class="p">(</span><span class="n">pi</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="ow">or</span> 
+                                     <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_fixed</span><span class="p">(</span><span class="n">pi</span><span class="p">[</span><span class="mi">1</span><span class="p">]))]</span>
+    
+    <span class="k">return</span> <span class="n">products_infos</span></div>
+
+<div class="viewcode-block" id="log_step"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.script.log_step">[docs]</a><span class="k">def</span> <span class="nf">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="n">step</span><span class="p">):</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="mi">20</span><span class="p">))</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="n">step</span><span class="p">))</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">==== </span><span class="si">%s</span><span class="s2"> </span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">step</span><span class="p">))</span></div>
+
+<div class="viewcode-block" id="log_res_step"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.script.log_res_step">[docs]</a><span class="k">def</span> <span class="nf">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res</span><span class="p">):</span>
+    <span class="k">if</span> <span class="n">res</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;&lt;OK&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;&lt;KO&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span></div>
+
+<div class="viewcode-block" id="run_script_all_products"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.script.run_script_all_products">[docs]</a><span class="k">def</span> <span class="nf">run_script_all_products</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">products_infos</span><span class="p">,</span> <span class="n">nb_proc</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Execute the script in each product build directory.</span>
+
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param products_info: (list) </span>
+<span class="sd">      List of (str, Config) =&gt; (product_name, product_info)</span>
+<span class="sd">    :param nb_proc: (int) The number of processors to use</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :return: (int) The number of failing commands.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="k">for</span> <span class="n">p_name_info</span> <span class="ow">in</span> <span class="n">products_infos</span><span class="p">:</span>
+        <span class="n">res_prod</span> <span class="o">=</span> <span class="n">run_script_of_product</span><span class="p">(</span><span class="n">p_name_info</span><span class="p">,</span>
+                                      <span class="n">nb_proc</span><span class="p">,</span>
+                                      <span class="n">config</span><span class="p">,</span>
+                                      <span class="n">logger</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">res_prod</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">res</span> <span class="o">+=</span> <span class="mi">1</span> 
+    <span class="k">return</span> <span class="n">res</span></div>
+
+<div class="viewcode-block" id="run_script_of_product"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.script.run_script_of_product">[docs]</a><span class="k">def</span> <span class="nf">run_script_of_product</span><span class="p">(</span><span class="n">p_name_info</span><span class="p">,</span> <span class="n">nb_proc</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Execute the proper configuration command(s) </span>
+<span class="sd">    in the product build directory.</span>
+<span class="sd">    </span>
+<span class="sd">    :param p_name_info: (tuple) </span>
+<span class="sd">      (str, Config) =&gt; (product_name, product_info)</span>
+<span class="sd">    :param nb_proc: (int) The number of processors to use</span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :return: (int) 1 if it fails, else 0.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    
+    <span class="n">p_name</span><span class="p">,</span> <span class="n">p_info</span> <span class="o">=</span> <span class="n">p_name_info</span>
+    
+    <span class="c1"># Logging</span>
+    <span class="n">header</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Running script of </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">p_name</span><span class="p">)</span>
+    <span class="n">header</span> <span class="o">+=</span> <span class="s2">&quot; </span><span class="si">%s</span><span class="s2"> &quot;</span> <span class="o">%</span> <span class="p">(</span><span class="s2">&quot;.&quot;</span> <span class="o">*</span> <span class="p">(</span><span class="mi">20</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">p_name</span><span class="p">)))</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">header</span><span class="p">)</span>
+
+    <span class="c1"># Do nothing if he product is not compilable or has no compilation script</span>
+    <span class="n">test1</span> <span class="o">=</span> <span class="s2">&quot;properties&quot;</span> <span class="ow">in</span> <span class="n">p_info</span> <span class="ow">and</span> \
+            <span class="s2">&quot;compilation&quot;</span> <span class="ow">in</span> <span class="n">p_info</span><span class="o">.</span><span class="n">properties</span> <span class="ow">and</span> \
+            <span class="n">p_info</span><span class="o">.</span><span class="n">properties</span><span class="o">.</span><span class="n">compilation</span> <span class="o">==</span> <span class="s2">&quot;no&quot;</span>
+    <span class="k">if</span> <span class="p">(</span> <span class="n">test1</span> <span class="ow">or</span> <span class="p">(</span><span class="ow">not</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_has_script</span><span class="p">(</span><span class="n">p_info</span><span class="p">))</span> <span class="p">):</span>
+        <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;ignored&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="k">return</span> <span class="mi">0</span>
+
+    <span class="c1"># Instantiate the class that manages all the construction commands</span>
+    <span class="c1"># like cmake, make, make install, make test, environment management, etc...</span>
+    <span class="n">builder</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">compilation</span><span class="o">.</span><span class="n">Builder</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">p_info</span><span class="p">)</span>
+    
+    <span class="c1"># Prepare the environment</span>
+    <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;PREPARE ENV&quot;</span><span class="p">)</span>
+    <span class="n">res_prepare</span> <span class="o">=</span> <span class="n">builder</span><span class="o">.</span><span class="n">prepare</span><span class="p">()</span>
+    <span class="n">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res_prepare</span><span class="p">)</span>
+    
+    <span class="c1"># Execute the script</span>
+    <span class="n">len_end_line</span> <span class="o">=</span> <span class="mi">20</span>
+    <span class="n">script_path_display</span> <span class="o">=</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">p_info</span><span class="o">.</span><span class="n">compil_script</span><span class="p">)</span>
+    <span class="n">log_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="s2">&quot;SCRIPT &quot;</span> <span class="o">+</span> <span class="n">script_path_display</span><span class="p">)</span>
+    <span class="n">len_end_line</span> <span class="o">+=</span> <span class="nb">len</span><span class="p">(</span><span class="n">script_path_display</span><span class="p">)</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="n">builder</span><span class="o">.</span><span class="n">do_script_build</span><span class="p">(</span><span class="n">p_info</span><span class="o">.</span><span class="n">compil_script</span><span class="p">,</span> <span class="n">number_of_proc</span><span class="o">=</span><span class="n">nb_proc</span><span class="p">)</span>
+    <span class="n">log_res_step</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">res</span><span class="p">)</span>
+    
+    <span class="c1"># Log the result</span>
+    <span class="k">if</span> <span class="n">res</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="n">len_end_line</span><span class="p">))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">header</span> <span class="o">+</span> <span class="s2">&quot;&lt;KO&gt;&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;==== &lt;KO&gt; in script execution of </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span>  <span class="n">p_name</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="n">len_end_line</span><span class="p">))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">header</span> <span class="o">+</span> <span class="s2">&quot;&lt;OK&gt;&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;==== &lt;OK&gt; in script execution of </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span>  <span class="n">p_name</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+    <span class="k">return</span> <span class="n">res</span></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/shell.html b/doc/build/html/_modules/commands/shell.html
new file mode 100644 (file)
index 0000000..a9007c8
--- /dev/null
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.shell &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.shell</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+
+<span class="kn">import</span> <span class="nn">subprocess</span>
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.shell.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;\</span>
+<span class="sd">  The shell command executes the shell command passed as argument.</span>
+
+<span class="sd">  examples:</span>
+<span class="sd">    &gt;&gt; sat shell --command &#39;ls -lt /tmp&#39;</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;shell&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.shell.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for the command &#39;sat shell &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;c&#39;</span><span class="p">,</span> <span class="s1">&#39;command&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;command&#39;</span><span class="p">,</span>
+                      <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Mandatory: The shell command to execute.&#39;</span><span class="p">),</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.shell.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat shell &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+  
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+  
+    <span class="c1"># Make sure the command option has been called</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">command</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The option --command is required</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>      
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="k">return</span> <span class="mi">1</span>
+    
+    <span class="c1"># Print the input command</span>
+    <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Command to execute:</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">Execution ... &quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">options</span><span class="o">.</span><span class="n">command</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+    
+    <span class="c1"># Call the input command</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">options</span><span class="o">.</span><span class="n">command</span><span class="p">,</span>
+                          <span class="n">shell</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+                          <span class="n">stdout</span><span class="o">=</span><span class="n">logger</span><span class="o">.</span><span class="n">logTxtFile</span><span class="p">,</span>
+                          <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">STDOUT</span><span class="p">)</span>
+   
+    <span class="c1"># Format the result to be 0 (success) or 1 (fail)</span>
+    <span class="k">if</span> <span class="n">res</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">status</span> <span class="o">=</span> <span class="s2">&quot;KO&quot;</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">status</span> <span class="o">=</span> <span class="s2">&quot;OK&quot;</span>
+        
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;&lt;</span><span class="si">%s</span><span class="s2">&gt;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">status</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="n">status</span><span class="p">,</span> <span class="s2">&quot;shell command done&quot;</span><span class="p">)</span></div></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/source.html b/doc/build/html/_modules/commands/source.html
new file mode 100644 (file)
index 0000000..064a397
--- /dev/null
@@ -0,0 +1,630 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.source &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.source</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+<span class="kn">import</span> <span class="nn">os</span>
+<span class="kn">import</span> <span class="nn">shutil</span>
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+<span class="kn">import</span> <span class="nn">src.system</span> <span class="k">as</span> <span class="nn">SYSS</span>
+
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.source.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">  The source command gets the sources of the application products</span>
+<span class="sd">  from cvs, git or an archive.</span>
+<span class="sd">  </span>
+<span class="sd">  examples:</span>
+<span class="sd">  &gt;&gt; sat source SALOME --products KERNEL,GUI</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;source&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.source.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for command &#39;sat source &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;p&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span> <span class="s1">&#39;list2&#39;</span><span class="p">,</span> <span class="s1">&#39;products&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: products from which to get the sources. This option can be&#39;</span>
+        <span class="s1">&#39; passed several time to get the sources of several products.&#39;</span><span class="p">))</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+    
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.source.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat source &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+    
+    <span class="c1"># check that the command has been called with an application</span>
+    <span class="n">src</span><span class="o">.</span><span class="n">check_config_has_application</span><span class="p">(</span> <span class="n">config</span> <span class="p">)</span>
+
+    <span class="c1"># Print some informations</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Getting sources of the application </span><span class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span> <span class="o">%</span> \
+                <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">),</span> <span class="mi">1</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;  workdir = </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">)</span>
+       
+    <span class="c1"># Get the products list with products informations regarding the options</span>
+    <span class="n">products_infos</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_products_list</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+    
+    <span class="c1"># Call to the function that gets all the sources</span>
+    <span class="n">good_result</span><span class="p">,</span> <span class="n">results</span> <span class="o">=</span> <span class="n">get_all_product_sources</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> 
+                                                  <span class="n">products_infos</span><span class="p">,</span>
+                                                  <span class="n">logger</span><span class="p">)</span>
+
+    <span class="c1"># Display the results (how much passed, how much failed, etc...)</span>
+    <span class="n">details</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="n">nbExpected</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">products_infos</span><span class="p">)</span>
+    <span class="n">msgCount</span> <span class="o">=</span> <span class="s2">&quot;(</span><span class="si">%d</span><span class="s2">/</span><span class="si">%d</span><span class="s2">)&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">good_result</span><span class="p">,</span> <span class="n">nbExpected</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">good_result</span> <span class="o">==</span> <span class="n">nbExpected</span><span class="p">:</span>
+      <span class="n">status</span> <span class="o">=</span> <span class="s2">&quot;OK&quot;</span>
+      <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Getting sources of the application&quot;</span><span class="p">)</span>
+      <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="si">%s</span><span class="s2"> </span><span class="si">%s</span><span class="s2">: &lt;</span><span class="si">%s</span><span class="s2">&gt;.</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">msgCount</span><span class="p">,</span> <span class="n">status</span><span class="p">))</span>
+    <span class="k">else</span><span class="p">:</span>
+      <span class="n">status</span> <span class="o">=</span> <span class="s2">&quot;KO&quot;</span>
+      <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Some sources haven&#39;t been get&quot;</span><span class="p">)</span>
+      <span class="n">details</span> <span class="o">=</span> <span class="p">[</span><span class="n">p</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">results</span> <span class="k">if</span> <span class="p">(</span><span class="n">results</span><span class="p">[</span><span class="n">product</span><span class="p">]</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">or</span> <span class="n">results</span><span class="p">[</span><span class="n">product</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">)]</span>
+      <span class="n">details</span>  <span class="o">=</span> <span class="s2">&quot; &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">details</span><span class="p">)</span>
+      <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="si">%s</span><span class="s2"> </span><span class="si">%s</span><span class="s2">: &lt;</span><span class="si">%s</span><span class="s2">&gt;.</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">msgCount</span><span class="p">,</span> <span class="n">status</span><span class="p">,</span> <span class="n">details</span><span class="p">))</span>
+
+    <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="n">status</span><span class="p">,</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">msg</span><span class="p">,</span> <span class="n">msgCount</span><span class="p">)</span></div></div>
+
+
+<div class="viewcode-block" id="get_source_for_dev"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.source.get_source_for_dev">[docs]</a><span class="k">def</span> <span class="nf">get_source_for_dev</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">product_info</span><span class="p">,</span> <span class="n">source_dir</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">pad</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;\</span>
+<span class="sd">    Called if the product is in development mode</span>
+<span class="sd">    </span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param product_info: (Config) </span>
+<span class="sd">      The configuration specific to the product to be prepared</span>
+<span class="sd">    :param source_dir: (Path)</span>
+<span class="sd">      The Path instance corresponding to the directory where to put the sources</span>
+<span class="sd">    :param logger: (Logger)</span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :param pad: (int) The gap to apply for the terminal display</span>
+<span class="sd">    :return: (bool) True if it succeed, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+       
+    <span class="c1"># Call the function corresponding to get the sources with True checkout</span>
+    <span class="n">retcode</span> <span class="o">=</span> <span class="n">get_product_sources</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> 
+                                 <span class="n">product_info</span><span class="p">,</span> 
+                                 <span class="kc">True</span><span class="p">,</span> 
+                                 <span class="n">source_dir</span><span class="p">,</span>
+                                 <span class="n">logger</span><span class="p">,</span> 
+                                 <span class="n">pad</span><span class="p">,</span> 
+                                 <span class="n">checkout</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+    <span class="c1"># +2 because product name is followed by &#39;: &#39;</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="p">(</span><span class="n">pad</span><span class="o">+</span><span class="mi">2</span><span class="p">))</span> 
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;dev: </span><span class="si">%s</span><span class="s1"> ... &#39;</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">source_dir</span><span class="p">))</span>
+    
+    <span class="k">return</span> <span class="n">retcode</span></div>
+
+<div class="viewcode-block" id="get_source_from_git"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.source.get_source_from_git">[docs]</a><span class="k">def</span> <span class="nf">get_source_from_git</span><span class="p">(</span><span class="n">product_info</span><span class="p">,</span>
+                        <span class="n">source_dir</span><span class="p">,</span>
+                        <span class="n">logger</span><span class="p">,</span>
+                        <span class="n">pad</span><span class="p">,</span>
+                        <span class="n">is_dev</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
+                        <span class="n">environ</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Called if the product is to be get in git mode</span>
+<span class="sd">    </span>
+<span class="sd">    :param product_info: (Config) </span>
+<span class="sd">      The configuration specific to the product to be prepared</span>
+<span class="sd">    :param source_dir: (Path)</span>
+<span class="sd">      The Path instance corresponding to the</span>
+<span class="sd">      directory where to put the sources</span>
+<span class="sd">    :param logger Logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :param pad: (int) The gap to apply for the terminal display</span>
+<span class="sd">    :param is_dev: (bool) True if the product is in development mode</span>
+<span class="sd">    :param environ: (src.environment.Environ)</span>
+<span class="sd">      The environment to source when extracting.</span>
+<span class="sd">    :return: (bool) True if it succeed, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c1"># The str to display</span>
+    <span class="n">coflag</span> <span class="o">=</span> <span class="s1">&#39;git&#39;</span>
+
+    <span class="c1"># Get the repository address. (from repo_dev key if the product is </span>
+    <span class="c1"># in dev mode.</span>
+    <span class="k">if</span> <span class="n">is_dev</span> <span class="ow">and</span> <span class="s1">&#39;repo_dev&#39;</span> <span class="ow">in</span> <span class="n">product_info</span><span class="o">.</span><span class="n">git_info</span><span class="p">:</span>
+        <span class="n">coflag</span> <span class="o">=</span> <span class="n">coflag</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+        <span class="n">repo_git</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">git_info</span><span class="o">.</span><span class="n">repo_dev</span>    
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">repo_git</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">git_info</span><span class="o">.</span><span class="n">repo</span>    
+        
+    <span class="c1"># Display informations</span>
+    <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;&#39;</span><span class="si">%s</span><span class="s2">:</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">coflag</span><span class="p">,</span> <span class="n">repo_git</span><span class="p">)</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="p">(</span><span class="n">pad</span> <span class="o">+</span> <span class="mi">50</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">repo_git</span><span class="p">))</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot; tag:</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">product_info</span><span class="o">.</span><span class="n">git_info</span><span class="o">.</span><span class="n">tag</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">. &quot;</span> <span class="o">%</span> <span class="s2">&quot;.&quot;</span> <span class="o">*</span> <span class="p">(</span><span class="mi">10</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">git_info</span><span class="o">.</span><span class="n">tag</span><span class="p">))</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">msg</span><span class="p">)</span>
+    
+    <span class="c1"># Call the system function that do the extraction in git mode</span>
+    <span class="n">retcode</span> <span class="o">=</span> <span class="n">SYSS</span><span class="o">.</span><span class="n">git_extract</span><span class="p">(</span><span class="n">repo_git</span><span class="p">,</span>
+                                 <span class="n">product_info</span><span class="o">.</span><span class="n">git_info</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span>
+                                 <span class="n">source_dir</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">retcode</span></div>
+
+<div class="viewcode-block" id="get_source_from_archive"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.source.get_source_from_archive">[docs]</a><span class="k">def</span> <span class="nf">get_source_from_archive</span><span class="p">(</span><span class="n">product_info</span><span class="p">,</span> <span class="n">source_dir</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;The method called if the product is to be get in archive mode</span>
+<span class="sd">    </span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to </span>
+<span class="sd">      the product to be prepared</span>
+<span class="sd">    :param source_dir: (Path)</span>
+<span class="sd">      The Path instance corresponding to the directory</span>
+<span class="sd">      where to put the sources</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :return: (bool) True if it succeed, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c1"># check archive exists</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">archive_info</span><span class="o">.</span><span class="n">archive_name</span><span class="p">):</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Archive not found: &#39;</span><span class="si">%s</span><span class="s2">&#39;&quot;</span><span class="p">)</span> <span class="o">%</span> \
+                               <span class="n">product_info</span><span class="o">.</span><span class="n">archive_info</span><span class="o">.</span><span class="n">archive_name</span><span class="p">)</span>
+
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;arc:</span><span class="si">%s</span><span class="s1"> ... &#39;</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">archive_info</span><span class="o">.</span><span class="n">archive_name</span><span class="p">))</span>
+    <span class="c1"># Call the system function that do the extraction in archive mode</span>
+    <span class="n">retcode</span><span class="p">,</span> <span class="n">NameExtractedDirectory</span> <span class="o">=</span> <span class="n">SYSS</span><span class="o">.</span><span class="n">archive_extract</span><span class="p">(</span>
+                                    <span class="n">product_info</span><span class="o">.</span><span class="n">archive_info</span><span class="o">.</span><span class="n">archive_name</span><span class="p">,</span>
+                                    <span class="n">source_dir</span><span class="o">.</span><span class="n">dir</span><span class="p">(),</span> <span class="n">logger</span><span class="p">)</span>
+    
+    <span class="c1"># Rename the source directory if </span>
+    <span class="c1"># it does not match with product_info.source_dir</span>
+    <span class="k">if</span> <span class="p">(</span><span class="n">NameExtractedDirectory</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span> <span class="o">!=</span> 
+            <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">source_dir</span><span class="p">)):</span>
+        <span class="n">shutil</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">source_dir</span><span class="p">),</span> 
+                                 <span class="n">NameExtractedDirectory</span><span class="p">),</span> 
+                    <span class="n">product_info</span><span class="o">.</span><span class="n">source_dir</span><span class="p">)</span>
+    
+    <span class="k">return</span> <span class="n">retcode</span></div>
+
+<div class="viewcode-block" id="get_source_from_dir"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.source.get_source_from_dir">[docs]</a><span class="k">def</span> <span class="nf">get_source_from_dir</span><span class="p">(</span><span class="n">product_info</span><span class="p">,</span> <span class="n">source_dir</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    
+    <span class="k">if</span> <span class="s2">&quot;dir_info&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">product_info</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;You must put a dir_info section in the file </span><span class="si">%s</span><span class="s2">.pyconf&quot;</span><span class="p">)</span> <span class="o">%</span> \
+              <span class="n">product_info</span><span class="o">.</span><span class="n">name</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="k">return</span> <span class="kc">False</span>
+
+    <span class="k">if</span> <span class="s2">&quot;dir&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">product_info</span><span class="o">.</span><span class="n">dir_info</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Error: you must put a dir in the dir_info section  in the file </span><span class="si">%s</span><span class="s2">.pyconf&quot;</span><span class="p">)</span> <span class="o">%</span> \
+              <span class="n">product_info</span><span class="o">.</span><span class="n">name</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="k">return</span> <span class="kc">False</span>
+
+    <span class="c1"># check that source exists</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">dir_info</span><span class="o">.</span><span class="n">dir</span><span class="p">):</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The dir </span><span class="si">%s</span><span class="s2"> defined in the file </span><span class="si">%s</span><span class="s2">.pyconf does not exists&quot;</span><span class="p">)</span> <span class="o">%</span> \
+                <span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">dir_info</span><span class="o">.</span><span class="n">dir</span><span class="p">,</span> <span class="n">product_info</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="k">return</span> <span class="kc">False</span>
+    
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;DIR: </span><span class="si">%s</span><span class="s1"> ... &#39;</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">dir_info</span><span class="o">.</span><span class="n">dir</span><span class="p">))</span>
+    <span class="n">retcode</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">Path</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">dir_info</span><span class="o">.</span><span class="n">dir</span><span class="p">)</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">source_dir</span><span class="p">)</span> 
+    <span class="k">return</span> <span class="n">retcode</span></div>
+    
+<div class="viewcode-block" id="get_source_from_cvs"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.source.get_source_from_cvs">[docs]</a><span class="k">def</span> <span class="nf">get_source_from_cvs</span><span class="p">(</span><span class="n">user</span><span class="p">,</span>
+                        <span class="n">product_info</span><span class="p">,</span>
+                        <span class="n">source_dir</span><span class="p">,</span>
+                        <span class="n">checkout</span><span class="p">,</span>
+                        <span class="n">logger</span><span class="p">,</span>
+                        <span class="n">pad</span><span class="p">,</span>
+                        <span class="n">environ</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    The method called if the product is to be get in cvs mode</span>
+<span class="sd">    </span>
+<span class="sd">    :param user: (str) The user to use in for the cvs command</span>
+<span class="sd">    :param product_info: (Config) </span>
+<span class="sd">      The configuration specific to the product to be prepared</span>
+<span class="sd">    :param source_dir: (Path) </span>
+<span class="sd">      The Path instance corresponding to the directory </span>
+<span class="sd">      where to put the sources</span>
+<span class="sd">    :param checkout: (bool) If True, get the source in checkout mode</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :param pad: (int) The gap to apply for the terminal display</span>
+<span class="sd">    :param environ: (src.environment.Environ) </span>
+<span class="sd">      The environment to source when extracting.</span>
+<span class="sd">    :return: (bool) True if it succeed, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c1"># Get the protocol to use in the command</span>
+    <span class="k">if</span> <span class="s2">&quot;protocol&quot;</span> <span class="ow">in</span> <span class="n">product_info</span><span class="o">.</span><span class="n">cvs_info</span><span class="p">:</span>
+        <span class="n">protocol</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">cvs_info</span><span class="o">.</span><span class="n">protocol</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">protocol</span> <span class="o">=</span> <span class="s2">&quot;pserver&quot;</span>
+    
+    <span class="c1"># Construct the line to display</span>
+    <span class="k">if</span> <span class="s2">&quot;protocol&quot;</span> <span class="ow">in</span> <span class="n">product_info</span><span class="o">.</span><span class="n">cvs_info</span><span class="p">:</span>
+        <span class="n">cvs_line</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">:</span><span class="si">%s</span><span class="s2">@</span><span class="si">%s</span><span class="s2">:</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> \
+            <span class="p">(</span><span class="n">protocol</span><span class="p">,</span> <span class="n">user</span><span class="p">,</span> <span class="n">product_info</span><span class="o">.</span><span class="n">cvs_info</span><span class="o">.</span><span class="n">server</span><span class="p">,</span> 
+             <span class="n">product_info</span><span class="o">.</span><span class="n">cvs_info</span><span class="o">.</span><span class="n">product_base</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">cvs_line</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> / </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">cvs_info</span><span class="o">.</span><span class="n">server</span><span class="p">,</span> 
+                                <span class="n">product_info</span><span class="o">.</span><span class="n">cvs_info</span><span class="o">.</span><span class="n">product_base</span><span class="p">)</span>
+
+    <span class="n">coflag</span> <span class="o">=</span> <span class="s1">&#39;cvs&#39;</span>
+    <span class="k">if</span> <span class="n">checkout</span><span class="p">:</span> <span class="n">coflag</span> <span class="o">=</span> <span class="n">coflag</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+
+    <span class="n">msg</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%s</span><span class="s1">:</span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">coflag</span><span class="p">,</span> <span class="n">cvs_line</span><span class="p">)</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="p">(</span><span class="n">pad</span> <span class="o">+</span> <span class="mi">50</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">cvs_line</span><span class="p">))</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot; src:</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">product_info</span><span class="o">.</span><span class="n">cvs_info</span><span class="o">.</span><span class="n">source</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="p">(</span><span class="n">pad</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">cvs_info</span><span class="o">.</span><span class="n">source</span><span class="p">))</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot; tag:</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">product_info</span><span class="o">.</span><span class="n">cvs_info</span><span class="o">.</span><span class="n">tag</span>
+                 
+    <span class="c1"># at least one &#39;.&#39; is visible</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot; </span><span class="si">%s</span><span class="s2">. &quot;</span> <span class="o">%</span> <span class="p">(</span><span class="s2">&quot;.&quot;</span> <span class="o">*</span> <span class="p">(</span><span class="mi">10</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">cvs_info</span><span class="o">.</span><span class="n">tag</span><span class="p">)))</span>
+                 
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+
+    <span class="c1"># Call the system function that do the extraction in cvs mode</span>
+    <span class="n">retcode</span> <span class="o">=</span> <span class="n">SYSS</span><span class="o">.</span><span class="n">cvs_extract</span><span class="p">(</span><span class="n">protocol</span><span class="p">,</span> <span class="n">user</span><span class="p">,</span>
+                                 <span class="n">product_info</span><span class="o">.</span><span class="n">cvs_info</span><span class="o">.</span><span class="n">server</span><span class="p">,</span>
+                                 <span class="n">product_info</span><span class="o">.</span><span class="n">cvs_info</span><span class="o">.</span><span class="n">product_base</span><span class="p">,</span>
+                                 <span class="n">product_info</span><span class="o">.</span><span class="n">cvs_info</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span>
+                                 <span class="n">product_info</span><span class="o">.</span><span class="n">cvs_info</span><span class="o">.</span><span class="n">source</span><span class="p">,</span>
+                                 <span class="n">source_dir</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">checkout</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">retcode</span></div>
+
+<div class="viewcode-block" id="get_source_from_svn"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.source.get_source_from_svn">[docs]</a><span class="k">def</span> <span class="nf">get_source_from_svn</span><span class="p">(</span><span class="n">user</span><span class="p">,</span>
+                        <span class="n">product_info</span><span class="p">,</span>
+                        <span class="n">source_dir</span><span class="p">,</span>
+                        <span class="n">checkout</span><span class="p">,</span>
+                        <span class="n">logger</span><span class="p">,</span>
+                        <span class="n">environ</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;The method called if the product is to be get in svn mode</span>
+<span class="sd">    </span>
+<span class="sd">    :param user: (str) The user to use in for the svn command</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product to be prepared</span>
+<span class="sd">    :param source_dir: (Path)</span>
+<span class="sd">      The Path instance corresponding to the directory </span>
+<span class="sd">      where to put the sources</span>
+<span class="sd">    :param checkout: (boolean) </span>
+<span class="sd">      If True, get the source in checkout mode</span>
+<span class="sd">    :param logger: (Logger)</span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :param environ: (src.environment.Environ)</span>
+<span class="sd">      The environment to source when extracting.</span>
+<span class="sd">    :return: (bool) True if it succeed, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">coflag</span> <span class="o">=</span> <span class="s1">&#39;svn&#39;</span>
+    <span class="k">if</span> <span class="n">checkout</span><span class="p">:</span> <span class="n">coflag</span> <span class="o">=</span> <span class="n">coflag</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;</span><span class="si">%s</span><span class="s1">:</span><span class="si">%s</span><span class="s1"> ... &#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">coflag</span><span class="p">,</span> <span class="n">product_info</span><span class="o">.</span><span class="n">svn_info</span><span class="o">.</span><span class="n">repo</span><span class="p">))</span>
+
+    <span class="c1"># Call the system function that do the extraction in svn mode</span>
+    <span class="n">retcode</span> <span class="o">=</span> <span class="n">SYSS</span><span class="o">.</span><span class="n">svn_extract</span><span class="p">(</span><span class="n">user</span><span class="p">,</span> 
+                               <span class="n">product_info</span><span class="o">.</span><span class="n">svn_info</span><span class="o">.</span><span class="n">repo</span><span class="p">,</span> 
+                               <span class="n">product_info</span><span class="o">.</span><span class="n">svn_info</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span>
+                               <span class="n">source_dir</span><span class="p">,</span> 
+                               <span class="n">logger</span><span class="p">,</span> 
+                               <span class="n">checkout</span><span class="p">,</span>
+                               <span class="n">environ</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">retcode</span></div>
+
+<div class="viewcode-block" id="get_product_sources"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.source.get_product_sources">[docs]</a><span class="k">def</span> <span class="nf">get_product_sources</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> 
+                       <span class="n">product_info</span><span class="p">,</span> 
+                       <span class="n">is_dev</span><span class="p">,</span> 
+                       <span class="n">source_dir</span><span class="p">,</span>
+                       <span class="n">logger</span><span class="p">,</span> 
+                       <span class="n">pad</span><span class="p">,</span> 
+                       <span class="n">checkout</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Get the product sources.</span>
+<span class="sd">    </span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param product_info: (Config) </span>
+<span class="sd">      The configuration specific to the product to be prepared</span>
+<span class="sd">    :param is_dev: (bool) True if the product is in development mode</span>
+<span class="sd">    :param source_dir: (Path) </span>
+<span class="sd">      The Path instance corresponding to the directory </span>
+<span class="sd">      where to put the sources</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display and logging</span>
+<span class="sd">    :param pad: (int) The gap to apply for the terminal display</span>
+<span class="sd">    :param checkout: (bool) If True, get the source in checkout mode</span>
+<span class="sd">    :return: (bool) True if it succeed, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    
+    <span class="c1"># Get the application environment</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Set the application environment</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">))</span>
+    <span class="n">env_appli</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">environment</span><span class="o">.</span><span class="n">SalomeEnviron</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                                      <span class="n">src</span><span class="o">.</span><span class="n">environment</span><span class="o">.</span><span class="n">Environ</span><span class="p">(</span><span class="nb">dict</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">)))</span>
+    <span class="n">env_appli</span><span class="o">.</span><span class="n">set_application_env</span><span class="p">(</span><span class="n">logger</span><span class="p">)</span>
+    
+    <span class="c1"># Call the right function to get sources regarding the product settings</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">checkout</span> <span class="ow">and</span> <span class="n">is_dev</span><span class="p">:</span>
+        <span class="k">return</span> <span class="n">get_source_for_dev</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> 
+                                   <span class="n">product_info</span><span class="p">,</span> 
+                                   <span class="n">source_dir</span><span class="p">,</span> 
+                                   <span class="n">logger</span><span class="p">,</span> 
+                                   <span class="n">pad</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="n">product_info</span><span class="o">.</span><span class="n">get_source</span> <span class="o">==</span> <span class="s2">&quot;git&quot;</span><span class="p">:</span>
+        <span class="k">return</span> <span class="n">get_source_from_git</span><span class="p">(</span><span class="n">product_info</span><span class="p">,</span> <span class="n">source_dir</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">pad</span><span class="p">,</span> 
+                                    <span class="n">is_dev</span><span class="p">,</span><span class="n">env_appli</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="n">product_info</span><span class="o">.</span><span class="n">get_source</span> <span class="o">==</span> <span class="s2">&quot;archive&quot;</span><span class="p">:</span>
+        <span class="k">return</span> <span class="n">get_source_from_archive</span><span class="p">(</span><span class="n">product_info</span><span class="p">,</span> <span class="n">source_dir</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="n">product_info</span><span class="o">.</span><span class="n">get_source</span> <span class="o">==</span> <span class="s2">&quot;dir&quot;</span><span class="p">:</span>
+        <span class="k">return</span> <span class="n">get_source_from_dir</span><span class="p">(</span><span class="n">product_info</span><span class="p">,</span> <span class="n">source_dir</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="n">product_info</span><span class="o">.</span><span class="n">get_source</span> <span class="o">==</span> <span class="s2">&quot;cvs&quot;</span><span class="p">:</span>
+        <span class="n">cvs_user</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">USER</span><span class="o">.</span><span class="n">cvs_user</span>
+        <span class="k">return</span> <span class="n">get_source_from_cvs</span><span class="p">(</span><span class="n">cvs_user</span><span class="p">,</span> 
+                                    <span class="n">product_info</span><span class="p">,</span> 
+                                    <span class="n">source_dir</span><span class="p">,</span> 
+                                    <span class="n">checkout</span><span class="p">,</span> 
+                                    <span class="n">logger</span><span class="p">,</span>
+                                    <span class="n">pad</span><span class="p">,</span>
+                                    <span class="n">env_appli</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="n">product_info</span><span class="o">.</span><span class="n">get_source</span> <span class="o">==</span> <span class="s2">&quot;svn&quot;</span><span class="p">:</span>
+        <span class="n">svn_user</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">USER</span><span class="o">.</span><span class="n">svn_user</span>
+        <span class="k">return</span> <span class="n">get_source_from_svn</span><span class="p">(</span><span class="n">svn_user</span><span class="p">,</span> <span class="n">product_info</span><span class="p">,</span> <span class="n">source_dir</span><span class="p">,</span> 
+                                    <span class="n">checkout</span><span class="p">,</span>
+                                    <span class="n">logger</span><span class="p">,</span>
+                                    <span class="n">env_appli</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="n">product_info</span><span class="o">.</span><span class="n">get_source</span> <span class="o">==</span> <span class="s2">&quot;native&quot;</span><span class="p">:</span>
+        <span class="c1"># skip</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;&lt;OK&gt;&quot;</span> <span class="o">+</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">do nothing because the product is of type &#39;native&#39;.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="k">return</span> <span class="kc">True</span>        
+
+    <span class="k">if</span> <span class="n">product_info</span><span class="o">.</span><span class="n">get_source</span> <span class="o">==</span> <span class="s2">&quot;fixed&quot;</span><span class="p">:</span>
+        <span class="c1"># skip</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;&lt;OK&gt;&quot;</span> <span class="o">+</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">do nothing because the product is of type &#39;fixed&#39;.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="k">return</span> <span class="kc">True</span>  
+
+    <span class="c1"># if the get_source is not in [git, archive, cvs, svn, fixed, native]</span>
+    <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Unknown get source method &#39;</span><span class="si">%s</span><span class="s2">&#39; for product </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> \
+                 <span class="p">(</span> <span class="n">product_info</span><span class="o">.</span><span class="n">get_source</span><span class="p">,</span> <span class="n">product_info</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> 
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> ... &quot;</span> <span class="o">%</span> <span class="n">msg</span><span class="p">)</span>
+    <span class="k">return</span> <span class="kc">False</span></div>
+
+<div class="viewcode-block" id="get_all_product_sources"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.source.get_all_product_sources">[docs]</a><span class="k">def</span> <span class="nf">get_all_product_sources</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">products</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Get all the product sources.</span>
+<span class="sd">    </span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param products: (list) </span>
+<span class="sd">      The list of tuples (product name, product informations)</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to be used for the logging</span>
+<span class="sd">    :return: (int,dict) </span>
+<span class="sd">      The tuple (number of success, dictionary product_name/success_fail)</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+
+    <span class="c1"># Initialize the variables that will count the fails and success</span>
+    <span class="n">results</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">()</span>
+    <span class="n">good_result</span> <span class="o">=</span> <span class="mi">0</span>
+
+    <span class="c1"># Get the maximum name length in order to format the terminal display</span>
+    <span class="n">max_product_name_len</span> <span class="o">=</span> <span class="mi">1</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">products</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">max_product_name_len</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="nb">len</span><span class="p">(</span><span class="n">l</span><span class="p">),</span> <span class="n">products</span><span class="p">[</span><span class="mi">0</span><span class="p">]))</span> <span class="o">+</span> <span class="mi">4</span>
+    
+    <span class="c1"># The loop on all the products from which to get the sources</span>
+    <span class="k">for</span> <span class="n">product_name</span><span class="p">,</span> <span class="n">product_info</span> <span class="ow">in</span> <span class="n">products</span><span class="p">:</span>
+        <span class="c1"># get product name, product informations and the directory where to put</span>
+        <span class="c1"># the sources</span>
+        <span class="k">if</span> <span class="p">(</span><span class="ow">not</span> <span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_fixed</span><span class="p">(</span><span class="n">product_info</span><span class="p">)</span> <span class="ow">or</span> 
+                 <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_native</span><span class="p">(</span><span class="n">product_info</span><span class="p">))):</span>
+            <span class="n">source_dir</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">Path</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">source_dir</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">source_dir</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">Path</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">)</span>
+
+        <span class="c1"># display and log</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;</span><span class="si">%s</span><span class="s1">: &#39;</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">product_name</span><span class="p">))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39; &#39;</span> <span class="o">*</span> <span class="p">(</span><span class="n">max_product_name_len</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">product_name</span><span class="p">)))</span>
+        
+        <span class="c1"># Remove the existing source directory if </span>
+        <span class="c1"># the product is not in development mode</span>
+        <span class="n">is_dev</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_dev</span><span class="p">(</span><span class="n">product_info</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">source_dir</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;&lt;OK&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Nothing done because source directory existing yet.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+            <span class="n">good_result</span> <span class="o">=</span> <span class="n">good_result</span> <span class="o">+</span> <span class="mi">1</span>
+            <span class="c1"># Do not get the sources and go to next product</span>
+            <span class="k">continue</span>
+
+        <span class="c1"># Call to the function that get the sources for one product</span>
+        <span class="n">retcode</span> <span class="o">=</span> <span class="n">get_product_sources</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> 
+                                     <span class="n">product_info</span><span class="p">,</span> 
+                                     <span class="n">is_dev</span><span class="p">,</span> 
+                                     <span class="n">source_dir</span><span class="p">,</span>
+                                     <span class="n">logger</span><span class="p">,</span> 
+                                     <span class="n">max_product_name_len</span><span class="p">,</span> 
+                                     <span class="n">checkout</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+        
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        if &#39;no_rpath&#39; in product_info.keys():</span>
+<span class="sd">            if product_info.no_rpath:</span>
+<span class="sd">                hack_no_rpath(config, product_info, logger)</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        
+        <span class="c1"># Check that the sources are correctly get using the files to be tested</span>
+        <span class="c1"># in product information</span>
+        <span class="k">if</span> <span class="n">retcode</span><span class="p">:</span>
+            <span class="n">check_OK</span><span class="p">,</span> <span class="n">wrong_path</span> <span class="o">=</span> <span class="n">check_sources</span><span class="p">(</span><span class="n">product_info</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">check_OK</span><span class="p">:</span>
+                <span class="c1"># Print the missing file path</span>
+                <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The required file </span><span class="si">%s</span><span class="s2"> does not exists.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">wrong_path</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+                <span class="n">retcode</span> <span class="o">=</span> <span class="kc">False</span>
+
+        <span class="c1"># show results</span>
+        <span class="n">results</span><span class="p">[</span><span class="n">product_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">retcode</span>
+        <span class="k">if</span> <span class="n">retcode</span><span class="p">:</span>
+            <span class="c1"># The case where it succeed</span>
+            <span class="n">res</span> <span class="o">=</span> <span class="s2">&quot;&lt;OK&gt;&quot;</span>
+            <span class="n">good_result</span> <span class="o">=</span> <span class="n">good_result</span> <span class="o">+</span> <span class="mi">1</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="c1"># The case where it failed</span>
+            <span class="n">res</span> <span class="o">=</span> <span class="s2">&quot;&lt;KO&gt;&quot;</span>
+        
+        <span class="c1"># print the result</span>
+        <span class="k">if</span> <span class="ow">not</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_fixed</span><span class="p">(</span><span class="n">product_info</span><span class="p">)</span> <span class="ow">or</span> 
+               <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_native</span><span class="p">(</span><span class="n">product_info</span><span class="p">)):</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;</span><span class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">res</span><span class="p">)</span>
+
+    <span class="k">return</span> <span class="n">good_result</span><span class="p">,</span> <span class="n">results</span></div>
+
+<div class="viewcode-block" id="check_sources"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.source.check_sources">[docs]</a><span class="k">def</span> <span class="nf">check_sources</span><span class="p">(</span><span class="n">product_info</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Check that the sources are correctly get, </span>
+<span class="sd">    using the files to be tested in product information</span>
+<span class="sd">    </span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product to be prepared</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to be used for the logging</span>
+<span class="sd">    :return: (bool) </span>
+<span class="sd">      True if the files exists (or no files to test is provided).</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c1"># Get the files to test if there is any</span>
+    <span class="k">if</span> <span class="p">(</span><span class="s2">&quot;present_files&quot;</span> <span class="ow">in</span> <span class="n">product_info</span> <span class="ow">and</span> 
+        <span class="s2">&quot;source&quot;</span> <span class="ow">in</span> <span class="n">product_info</span><span class="o">.</span><span class="n">present_files</span><span class="p">):</span>
+        <span class="n">l_files_to_be_tested</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">present_files</span><span class="o">.</span><span class="n">source</span>
+        <span class="n">res</span> <span class="o">=</span> <span class="kc">True</span> <span class="c1"># all ok a priori</span>
+        <span class="n">filesKo</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span> <span class="c1"># None</span>
+        <span class="k">for</span> <span class="n">file_path</span> <span class="ow">in</span> <span class="n">l_files_to_be_tested</span><span class="p">:</span>
+            <span class="c1"># add source directory of the product</span>
+            <span class="n">path_to_test</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">source_dir</span><span class="p">,</span> <span class="n">file_path</span><span class="p">)</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;File </span><span class="si">%s</span><span class="s2"> testing existence:&quot;</span> <span class="o">%</span> <span class="n">path_to_test</span><span class="p">)</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">path_to_test</span><span class="p">):</span>
+              <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> &lt;KO&gt;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">msg</span><span class="p">)</span>
+              <span class="n">res</span> <span class="o">=</span> <span class="kc">False</span>
+              <span class="c1"># return False, path_to_test #break at first</span>
+              <span class="n">filesKo</span> <span class="o">+=</span> <span class="n">path_to_test</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="c1"># check all              </span>
+            <span class="k">else</span><span class="p">:</span>
+              <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> &lt;OK&gt;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">msg</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">res</span><span class="p">,</span> <span class="n">filesKo</span></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/template.html b/doc/build/html/_modules/commands/template.html
new file mode 100644 (file)
index 0000000..9ff6542
--- /dev/null
@@ -0,0 +1,615 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.template &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.template</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+<span class="kn">import</span> <span class="nn">os</span>
+<span class="kn">import</span> <span class="nn">string</span>
+<span class="kn">import</span> <span class="nn">shutil</span>
+<span class="kn">import</span> <span class="nn">subprocess</span>
+<span class="kn">import</span> <span class="nn">fnmatch</span>
+<span class="kn">import</span> <span class="nn">re</span>
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">import</span> <span class="nn">src.utilsSat</span> <span class="k">as</span> <span class="nn">UTS</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+<span class="kn">import</span> <span class="nn">src.system</span> <span class="k">as</span> <span class="nn">SYSS</span>
+
+<span class="c1"># Compatibility python 2/3 for input function</span>
+<span class="c1"># input stays input for python 3 and input = raw_input for python 2</span>
+<span class="k">try</span><span class="p">:</span> 
+    <span class="nb">input</span> <span class="o">=</span> <span class="n">raw_input</span>
+<span class="k">except</span> <span class="ne">NameError</span><span class="p">:</span> 
+    <span class="k">pass</span>
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.template.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">  The template command creates the sources for a SALOME module from a template.</span>
+
+<span class="sd">  examples:</span>
+<span class="sd">  &gt;&gt; sat template --name my_product_name --template PythonComponent --target /tmp</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;template&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.template.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for command &#39;sat template &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;n&#39;</span><span class="p">,</span> <span class="s1">&#39;name&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;name&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">REQUIRED: the name of the module to create.</span>
+<span class="s2">  The name must be a single word in upper case with only alphanumeric characters.</span>
+<span class="s2">  When generating a c++ component the module&#39;s name must be suffixed with &#39;CPP&#39;.&quot;&quot;&quot;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;t&#39;</span><span class="p">,</span> <span class="s1">&#39;template&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;template&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;REQUIRED: the template to use.&#39;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;target&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;target&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;REQUIRED: where to create the module.&#39;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;param&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;param&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">Optional: dictionary to generate the configuration for salomeTools.</span>
+<span class="s2">  Format is: --param param1=value1,param2=value2... (without spaces).</span>
+<span class="s2">  Note that when using this option you must supply all the values,</span>
+<span class="s2">       otherwise an error will be raised.&quot;&quot;&quot;</span><span class="p">)</span> <span class="p">)</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;info&#39;</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">,</span> <span class="s1">&#39;info&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: Get information on the template.&#39;</span><span class="p">),</span> <span class="kc">False</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.template.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat template &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+
+    <span class="n">msg_miss</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The --</span><span class="si">%s</span><span class="s2"> argument is required</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">template</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg_miss</span> <span class="o">%</span> <span class="s2">&quot;template&quot;</span><span class="p">)</span>
+        <span class="k">return</span> <span class="mi">1</span>
+
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">target</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">options</span><span class="o">.</span><span class="n">info</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg_miss</span> <span class="o">%</span> <span class="s2">&quot;target&quot;</span><span class="p">)</span>
+        <span class="k">return</span> <span class="mi">1</span>
+
+    <span class="k">if</span> <span class="s2">&quot;APPLICATION&quot;</span> <span class="ow">in</span> <span class="n">config</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;This command does not use a product.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="k">return</span> <span class="mi">1</span>
+
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">info</span><span class="p">:</span>
+        <span class="k">return</span> <span class="n">get_template_info</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">options</span><span class="o">.</span><span class="n">template</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">name</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg_miss</span> <span class="o">%</span> <span class="s2">&quot;name&quot;</span><span class="p">)</span>
+        <span class="k">return</span> <span class="mi">1</span>
+
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39;_&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">isalnum</span><span class="p">():</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">Component name must contains only alphanumeric characters and no spaces</span><span class="se">\n</span><span class="s2">&quot;&quot;&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="k">return</span> <span class="mi">1</span>
+
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">target</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg_miss</span> <span class="o">%</span> <span class="s2">&quot;target&quot;</span><span class="p">)</span>
+        <span class="k">return</span> <span class="mi">1</span>
+
+    <span class="n">target_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">options</span><span class="o">.</span><span class="n">target</span><span class="p">,</span> <span class="n">options</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">target_dir</span><span class="p">):</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The target already exists: </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">target_dir</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="k">return</span> <span class="mi">1</span>
+
+    <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Create sources from template</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s1">&#39;  destination = </span><span class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">target_dir</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s1">&#39;  name = %</span><span class="se">\n</span><span class="s1">s&#39;</span> <span class="o">%</span> <span class="n">options</span><span class="o">.</span><span class="n">name</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s1">&#39;  template = </span><span class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">options</span><span class="o">.</span><span class="n">template</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+    
+    <span class="n">conf_values</span> <span class="o">=</span> <span class="kc">None</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">param</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="n">conf_values</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="k">for</span> <span class="n">elt</span> <span class="ow">in</span> <span class="n">options</span><span class="o">.</span><span class="n">param</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;,&quot;</span><span class="p">):</span>
+            <span class="n">param_def</span> <span class="o">=</span> <span class="n">elt</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;=&#39;</span><span class="p">)</span>
+            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">param_def</span><span class="p">)</span> <span class="o">!=</span> <span class="mi">2</span><span class="p">:</span>
+                <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Bad parameter definition: &#39;</span><span class="si">%s</span><span class="s2">&#39;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">elt</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+                <span class="k">return</span> <span class="mi">1</span>
+            <span class="n">conf_values</span><span class="p">[</span><span class="n">param_def</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()]</span> <span class="o">=</span> <span class="n">param_def</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+    
+    <span class="n">retcode</span> <span class="o">=</span> <span class="n">prepare_from_template</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">options</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">options</span><span class="o">.</span><span class="n">template</span><span class="p">,</span>
+        <span class="n">target_dir</span><span class="p">,</span> <span class="n">conf_values</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="n">retcode</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;The sources were created in </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">target_dir</span><span class="p">))</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Do not forget to put them in your version control system.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="n">msg</span><span class="p">))</span>
+    <span class="k">else</span><span class="p">:</span>    
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+    
+    <span class="k">return</span> <span class="n">retcode</span></div></div>
+
+<div class="viewcode-block" id="TParam"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.template.TParam">[docs]</a><span class="k">class</span> <span class="nc">TParam</span><span class="p">:</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">param_def</span><span class="p">,</span> <span class="n">compo_name</span><span class="p">,</span> <span class="n">dico</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">default</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">prompt</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">check_method</span> <span class="o">=</span> <span class="kc">None</span>
+        
+        <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">param_def</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">param_def</span>
+        <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">param_def</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">param_def</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">param_def</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
+                <span class="k">if</span> <span class="n">dico</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">default</span> <span class="o">=</span> <span class="n">param_def</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">%</span> <span class="n">dico</span>
+                <span class="k">else</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">default</span> <span class="o">=</span> <span class="n">param_def</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">param_def</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">2</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">prompt</span> <span class="o">=</span> <span class="n">param_def</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
+            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">param_def</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">3</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">check_method</span> <span class="o">=</span> <span class="n">param_def</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;ERROR in template parameter definition&quot;</span><span class="p">))</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">raw_prompt</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">prompt</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">prompt</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">prompt</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;value for &#39;</span><span class="si">%s</span><span class="s2">&#39;&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">prompt</span> <span class="o">+=</span> <span class="s2">&quot;? &quot;</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">default</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">prompt</span> <span class="o">+=</span> <span class="s2">&quot;[</span><span class="si">%s</span><span class="s2">] &quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">default</span>
+
+<div class="viewcode-block" id="TParam.check_value"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.template.TParam.check_value">[docs]</a>    <span class="k">def</span> <span class="nf">check_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">val</span><span class="p">):</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">check_method</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+            <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span>
+        <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">check_method</span><span class="p">(</span><span class="n">val</span><span class="p">)</span></div></div>
+
+<div class="viewcode-block" id="get_dico_param"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.template.get_dico_param">[docs]</a><span class="k">def</span> <span class="nf">get_dico_param</span><span class="p">(</span><span class="n">dico</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">default</span><span class="p">):</span>
+    <span class="k">if</span> <span class="n">dico</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">key</span><span class="p">):</span>
+        <span class="k">return</span> <span class="n">dico</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
+    <span class="k">return</span> <span class="n">default</span></div>
+
+<div class="viewcode-block" id="TemplateSettings"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.template.TemplateSettings">[docs]</a><span class="k">class</span> <span class="nc">TemplateSettings</span><span class="p">:</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">compo_name</span><span class="p">,</span> <span class="n">settings_file</span><span class="p">,</span> <span class="n">target</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">compo_name</span> <span class="o">=</span> <span class="n">compo_name</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dico</span> <span class="o">=</span> <span class="kc">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">target</span> <span class="o">=</span> <span class="n">target</span>
+
+        <span class="c1"># read the settings</span>
+        <span class="n">gdic</span><span class="p">,</span> <span class="n">ldic</span> <span class="o">=</span> <span class="p">{},</span> <span class="p">{}</span>
+        <span class="n">execfile</span><span class="p">(</span><span class="n">settings_file</span><span class="p">,</span> <span class="n">gdic</span><span class="p">,</span> <span class="n">ldic</span><span class="p">)</span>
+
+        <span class="c1"># check required parameters in template.info</span>
+        <span class="n">missing</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="k">for</span> <span class="n">pp</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">&quot;file_subst&quot;</span><span class="p">,</span> <span class="s2">&quot;parameters&quot;</span><span class="p">]:</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">ldic</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">pp</span><span class="p">):</span> <span class="n">missing</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;&#39;</span><span class="si">%s</span><span class="s2">&#39;&quot;</span> <span class="o">%</span> <span class="n">pp</span><span class="p">)</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">missing</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span>
+                <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Bad format in settings file! </span><span class="si">%s</span><span class="s2"> not defined.&quot;</span><span class="p">)</span> <span class="o">%</span> \
+                <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">missing</span><span class="p">)</span> <span class="p">)</span>
+        
+        <span class="bp">self</span><span class="o">.</span><span class="n">file_subst</span> <span class="o">=</span> <span class="n">ldic</span><span class="p">[</span><span class="s2">&quot;file_subst&quot;</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">parameters</span> <span class="o">=</span> <span class="n">ldic</span><span class="p">[</span><span class="s1">&#39;parameters&#39;</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">info</span> <span class="o">=</span> <span class="n">get_dico_param</span><span class="p">(</span><span class="n">ldic</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pyconf</span> <span class="o">=</span> <span class="n">get_dico_param</span><span class="p">(</span><span class="n">ldic</span><span class="p">,</span> <span class="s2">&quot;pyconf&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">post_command</span> <span class="o">=</span> <span class="n">get_dico_param</span><span class="p">(</span><span class="n">ldic</span><span class="p">,</span> <span class="s2">&quot;post_command&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
+
+        <span class="c1"># get the delimiter for the template</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">delimiter_char</span> <span class="o">=</span> <span class="n">get_dico_param</span><span class="p">(</span><span class="n">ldic</span><span class="p">,</span> <span class="s2">&quot;delimiter&quot;</span><span class="p">,</span> <span class="s2">&quot;:sat:&quot;</span><span class="p">)</span>
+
+        <span class="c1"># get the ignore filter</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">ignore_filters</span> <span class="o">=</span> <span class="nb">map</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="n">l</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span>
+                                  <span class="n">ldic</span><span class="p">[</span><span class="s2">&quot;ignore_filters&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">))</span>
+
+<div class="viewcode-block" id="TemplateSettings.has_pyconf"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.template.TemplateSettings.has_pyconf">[docs]</a>    <span class="k">def</span> <span class="nf">has_pyconf</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pyconf</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span></div>
+
+<div class="viewcode-block" id="TemplateSettings.get_pyconf_parameters"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.template.TemplateSettings.get_pyconf_parameters">[docs]</a>    <span class="k">def</span> <span class="nf">get_pyconf_parameters</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pyconf</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="k">return</span> <span class="p">[]</span>
+        <span class="k">return</span> <span class="n">re</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s2">&quot;%\((?P&lt;name&gt;\S[^\)]*)&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">pyconf</span><span class="p">)</span></div>
+
+    <span class="c1">##</span>
+    <span class="c1"># Check if the file needs to be parsed.</span>
+<div class="viewcode-block" id="TemplateSettings.check_file_for_substitution"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.template.TemplateSettings.check_file_for_substitution">[docs]</a>    <span class="k">def</span> <span class="nf">check_file_for_substitution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_</span><span class="p">):</span>
+        <span class="k">for</span> <span class="n">filter_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">ignore_filters</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">fnmatch</span><span class="o">.</span><span class="n">fnmatchcase</span><span class="p">(</span><span class="n">file_</span><span class="p">,</span> <span class="n">filter_</span><span class="p">):</span>
+                <span class="k">return</span> <span class="kc">False</span>
+        <span class="k">return</span> <span class="kc">True</span></div>
+
+<div class="viewcode-block" id="TemplateSettings.check_user_values"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.template.TemplateSettings.check_user_values">[docs]</a>    <span class="k">def</span> <span class="nf">check_user_values</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">values</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+            <span class="k">return</span>
+        
+        <span class="c1"># create a list of all parameters (pyconf + list))</span>
+        <span class="n">pnames</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_pyconf_parameters</span><span class="p">()</span>
+        <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">parameters</span><span class="p">:</span>
+            <span class="n">tp</span> <span class="o">=</span> <span class="n">TParam</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">compo_name</span><span class="p">)</span>
+            <span class="n">pnames</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tp</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+        
+        <span class="c1"># reduce the list</span>
+        <span class="n">pnames</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">pnames</span><span class="p">))</span> <span class="c1"># remove duplicates</span>
+
+        <span class="n">known_values</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;name&quot;</span><span class="p">,</span> <span class="s2">&quot;Name&quot;</span><span class="p">,</span> <span class="s2">&quot;NAME&quot;</span><span class="p">,</span> <span class="s2">&quot;target&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">file_subst</span><span class="p">]</span>
+        <span class="n">known_values</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">values</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span>
+        <span class="n">missing</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">pnames</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">p</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">known_values</span><span class="p">:</span>
+                <span class="n">missing</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span>
+        
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">missing</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span>
+                <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Missing parameters: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">missing</span><span class="p">)</span> <span class="p">)</span></div>
+
+<div class="viewcode-block" id="TemplateSettings.get_parameters"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.template.TemplateSettings.get_parameters">[docs]</a>    <span class="k">def</span> <span class="nf">get_parameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">conf_values</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dico</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">dico</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">check_user_values</span><span class="p">(</span><span class="n">conf_values</span><span class="p">)</span>
+
+        <span class="c1"># create dictionary with default values</span>
+        <span class="n">dico</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="n">dico</span><span class="p">[</span><span class="s2">&quot;name&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">compo_name</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
+        <span class="n">dico</span><span class="p">[</span><span class="s2">&quot;Name&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">compo_name</span><span class="o">.</span><span class="n">capitalize</span><span class="p">()</span>
+        <span class="n">dico</span><span class="p">[</span><span class="s2">&quot;NAME&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">compo_name</span>
+        <span class="n">dico</span><span class="p">[</span><span class="s2">&quot;target&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">target</span>
+        <span class="n">dico</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">file_subst</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">compo_name</span>
+        <span class="c1"># add user values if any</span>
+        <span class="k">if</span> <span class="n">conf_values</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+            <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">conf_values</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
+                <span class="n">dico</span><span class="p">[</span><span class="n">p</span><span class="p">]</span> <span class="o">=</span> <span class="n">conf_values</span><span class="p">[</span><span class="n">p</span><span class="p">]</span>
+
+        <span class="c1"># ask user for values</span>
+        <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">parameters</span><span class="p">:</span>
+            <span class="n">tp</span> <span class="o">=</span> <span class="n">TParam</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">compo_name</span><span class="p">,</span> <span class="n">dico</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">dico</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">tp</span><span class="o">.</span><span class="n">name</span><span class="p">):</span>
+                <span class="k">continue</span>
+            
+            <span class="n">val</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+            <span class="k">while</span> <span class="ow">not</span> <span class="n">tp</span><span class="o">.</span><span class="n">check_value</span><span class="p">(</span><span class="n">val</span><span class="p">):</span>
+                <span class="n">val</span> <span class="o">=</span> <span class="n">raw_input</span><span class="p">(</span><span class="n">tp</span><span class="o">.</span><span class="n">prompt</span><span class="p">)</span>
+                <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">tp</span><span class="o">.</span><span class="n">default</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+                    <span class="n">val</span> <span class="o">=</span> <span class="n">tp</span><span class="o">.</span><span class="n">default</span>
+            <span class="n">dico</span><span class="p">[</span><span class="n">tp</span><span class="o">.</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">val</span>
+
+        <span class="c1"># ask for missing value for pyconf</span>
+        <span class="n">pyconfparam</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_pyconf_parameters</span><span class="p">()</span>
+        <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="ow">not</span> <span class="n">dico</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">l</span><span class="p">),</span> <span class="n">pyconfparam</span><span class="p">):</span>
+            <span class="n">rep</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+            <span class="k">while</span> <span class="nb">len</span><span class="p">(</span><span class="n">rep</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+                <span class="n">rep</span> <span class="o">=</span> <span class="n">raw_input</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2">? &quot;</span> <span class="o">%</span> <span class="n">p</span><span class="p">)</span>
+            <span class="n">dico</span><span class="p">[</span><span class="n">p</span><span class="p">]</span> <span class="o">=</span> <span class="n">rep</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">dico</span> <span class="o">=</span> <span class="n">dico</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">dico</span></div></div>
+
+<div class="viewcode-block" id="search_template"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.template.search_template">[docs]</a><span class="k">def</span> <span class="nf">search_template</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">template</span><span class="p">):</span>
+    <span class="c1"># search template</span>
+    <span class="n">template_src_dir</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isabs</span><span class="p">(</span><span class="n">template</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">template</span><span class="p">):</span>
+            <span class="n">template_src_dir</span> <span class="o">=</span> <span class="n">template</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="c1"># look in template directory</span>
+        <span class="k">for</span> <span class="n">td</span> <span class="ow">in</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">datadir</span><span class="p">,</span> <span class="s2">&quot;templates&quot;</span><span class="p">)]:</span>
+            <span class="n">zz</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">td</span><span class="p">,</span> <span class="n">template</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">zz</span><span class="p">):</span>
+                <span class="n">template_src_dir</span> <span class="o">=</span> <span class="n">zz</span>
+                <span class="k">break</span>
+
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">template_src_dir</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Template not found: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">template</span><span class="p">)</span>
+
+    <span class="k">return</span> <span class="n">template_src_dir</span></div>
+
+
+<div class="viewcode-block" id="prepare_from_template"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.template.prepare_from_template">[docs]</a><span class="k">def</span> <span class="nf">prepare_from_template</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                          <span class="n">name</span><span class="p">,</span>
+                          <span class="n">template</span><span class="p">,</span>
+                          <span class="n">target_dir</span><span class="p">,</span>
+                          <span class="n">conf_values</span><span class="p">,</span>
+                          <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Prepares a module from a template.&quot;&quot;&quot;</span>
+    <span class="n">template_src_dir</span> <span class="o">=</span> <span class="n">search_template</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">template</span><span class="p">)</span>
+    <span class="n">res</span> <span class="o">=</span> <span class="mi">0</span>
+
+    <span class="c1"># copy the template</span>
+    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">template_src_dir</span><span class="p">):</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Extract template </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">template</span><span class="p">))</span>
+        <span class="n">SYSS</span><span class="o">.</span><span class="n">archive_extract</span><span class="p">(</span><span class="n">template_src_dir</span><span class="p">,</span> <span class="n">target_dir</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Copy template </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">template</span><span class="p">))</span>
+        <span class="n">shutil</span><span class="o">.</span><span class="n">copytree</span><span class="p">(</span><span class="n">template_src_dir</span><span class="p">,</span> <span class="n">target_dir</span><span class="p">)</span>
+    
+
+    <span class="n">compo_name</span> <span class="o">=</span> <span class="n">name</span>
+    <span class="k">if</span> <span class="n">name</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s2">&quot;CPP&quot;</span><span class="p">):</span>
+        <span class="n">compo_name</span> <span class="o">=</span> <span class="n">name</span><span class="p">[:</span><span class="o">-</span><span class="mi">3</span><span class="p">]</span>
+
+    <span class="c1"># read settings</span>
+    <span class="n">settings_file</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">target_dir</span><span class="p">,</span> <span class="s2">&quot;template.info&quot;</span><span class="p">)</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">settings_file</span><span class="p">):</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Settings file not found&quot;</span><span class="p">))</span>
+    <span class="n">tsettings</span> <span class="o">=</span> <span class="n">TemplateSettings</span><span class="p">(</span><span class="n">compo_name</span><span class="p">,</span> <span class="n">settings_file</span><span class="p">,</span> <span class="n">target_dir</span><span class="p">)</span>
+
+    <span class="c1"># first rename the files</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Rename files</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)))</span>
+    <span class="k">for</span> <span class="n">root</span><span class="p">,</span> <span class="n">dirs</span><span class="p">,</span> <span class="n">files</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">target_dir</span><span class="p">):</span>
+        <span class="k">for</span> <span class="n">fic</span> <span class="ow">in</span> <span class="n">files</span><span class="p">:</span>
+            <span class="n">ff</span> <span class="o">=</span> <span class="n">fic</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">tsettings</span><span class="o">.</span><span class="n">file_subst</span><span class="p">,</span> <span class="n">compo_name</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">ff</span> <span class="o">!=</span> <span class="n">fic</span><span class="p">:</span>
+                <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">ff</span><span class="p">)):</span>
+                    <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span>
+                        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Destination file already exists: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> \
+                        <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">ff</span><span class="p">)</span> <span class="p">)</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;    </span><span class="si">%s</span><span class="s2"> -&gt; </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">fic</span><span class="p">,</span> <span class="n">ff</span><span class="p">))</span>
+                <span class="n">os</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">fic</span><span class="p">),</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">ff</span><span class="p">))</span>
+
+    <span class="c1"># rename the directories</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Rename directories</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)))</span>
+    <span class="k">for</span> <span class="n">root</span><span class="p">,</span> <span class="n">dirs</span><span class="p">,</span> <span class="n">files</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">target_dir</span><span class="p">,</span> <span class="n">topdown</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+        <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="n">dirs</span><span class="p">:</span>
+            <span class="n">dd</span> <span class="o">=</span> <span class="n">rep</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">tsettings</span><span class="o">.</span><span class="n">file_subst</span><span class="p">,</span> <span class="n">compo_name</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">dd</span> <span class="o">!=</span> <span class="n">rep</span><span class="p">:</span>
+                <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">dd</span><span class="p">)):</span>
+                    <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span>
+                        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Destination directory already exists: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> \
+                        <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">dd</span><span class="p">)</span> <span class="p">)</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;    </span><span class="si">%s</span><span class="s2"> -&gt; </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">rep</span><span class="p">,</span> <span class="n">dd</span><span class="p">))</span>
+                <span class="n">os</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">rep</span><span class="p">),</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">dd</span><span class="p">))</span>
+
+    <span class="c1"># ask for missing parameters</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Make substitution in files</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)))</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Delimiter =&quot;</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot; </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">tsettings</span><span class="o">.</span><span class="n">delimiter_char</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Ignore Filters =&quot;</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot; </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="s1">&#39;, &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">tsettings</span><span class="o">.</span><span class="n">ignore_filters</span><span class="p">))</span>
+    <span class="n">dico</span> <span class="o">=</span> <span class="n">tsettings</span><span class="o">.</span><span class="n">get_parameters</span><span class="p">(</span><span class="n">conf_values</span><span class="p">)</span>
+
+    <span class="c1"># override standard string.Template class to use the desire delimiter</span>
+    <span class="k">class</span> <span class="nc">CompoTemplate</span><span class="p">(</span><span class="n">string</span><span class="o">.</span><span class="n">Template</span><span class="p">):</span>
+        <span class="n">delimiter</span> <span class="o">=</span> <span class="n">tsettings</span><span class="o">.</span><span class="n">delimiter_char</span>
+
+    <span class="c1"># do substitution</span>
+    <span class="n">pathlen</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">target_dir</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>
+    <span class="k">for</span> <span class="n">root</span><span class="p">,</span> <span class="n">dirs</span><span class="p">,</span> <span class="n">files</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">target_dir</span><span class="p">):</span>
+        <span class="k">for</span> <span class="n">fic</span> <span class="ow">in</span> <span class="n">files</span><span class="p">:</span>
+            <span class="n">fpath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">fic</span><span class="p">)</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">tsettings</span><span class="o">.</span><span class="n">check_file_for_substitution</span><span class="p">(</span><span class="n">fpath</span><span class="p">[</span><span class="n">pathlen</span><span class="p">:]):</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;  - </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">fpath</span><span class="p">[</span><span class="n">pathlen</span><span class="p">:])</span>
+                <span class="k">continue</span>
+            <span class="c1"># read the file</span>
+            <span class="n">m</span> <span class="o">=</span> <span class="n">file</span><span class="p">(</span><span class="n">fpath</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
+            <span class="c1"># make the substitution</span>
+            <span class="n">template</span> <span class="o">=</span> <span class="n">CompoTemplate</span><span class="p">(</span><span class="n">m</span><span class="p">)</span>
+            <span class="n">d</span> <span class="o">=</span> <span class="n">template</span><span class="o">.</span><span class="n">safe_substitute</span><span class="p">(</span><span class="n">dico</span><span class="p">)</span>
+            <span class="c1"># overwrite the file with substituted content</span>
+            <span class="n">changed</span> <span class="o">=</span> <span class="s2">&quot; &quot;</span>
+            <span class="k">if</span> <span class="n">d</span> <span class="o">!=</span> <span class="n">m</span><span class="p">:</span>
+                <span class="n">changed</span> <span class="o">=</span> <span class="s2">&quot;*&quot;</span>
+                <span class="n">file</span><span class="p">(</span><span class="n">fpath</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">d</span><span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;  </span><span class="si">%s</span><span class="s2"> </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">changed</span><span class="p">,</span> <span class="n">fpath</span><span class="p">[</span><span class="n">pathlen</span><span class="p">:]))</span>
+
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">tsettings</span><span class="o">.</span><span class="n">has_pyconf</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Definition for sat not found in settings file.&quot;</span><span class="p">))</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">definition</span> <span class="o">=</span> <span class="n">tsettings</span><span class="o">.</span><span class="n">pyconf</span> <span class="o">%</span> <span class="n">dico</span>
+        <span class="n">pyconf_file</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">target_dir</span><span class="p">,</span> <span class="n">name</span> <span class="o">+</span> <span class="s1">&#39;.pyconf&#39;</span><span class="p">)</span>
+        <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">pyconf_file</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span>
+        <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">definition</span><span class="p">)</span>
+        <span class="n">f</span><span class="o">.</span><span class="n">close</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Create configuration file: &quot;</span><span class="p">)</span> <span class="o">+</span> <span class="n">pyconf_file</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">tsettings</span><span class="o">.</span><span class="n">post_command</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">cmd</span> <span class="o">=</span> <span class="n">tsettings</span><span class="o">.</span><span class="n">post_command</span> <span class="o">%</span> <span class="n">dico</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Run post command: &quot;</span><span class="p">)</span> <span class="o">+</span> <span class="n">cmd</span><span class="p">)</span>
+        
+        <span class="n">p</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">shell</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">cwd</span><span class="o">=</span><span class="n">target_dir</span><span class="p">)</span>
+        <span class="n">p</span><span class="o">.</span><span class="n">wait</span><span class="p">()</span>
+        <span class="n">res</span> <span class="o">=</span> <span class="n">p</span><span class="o">.</span><span class="n">returncode</span>
+
+    <span class="k">return</span> <span class="n">res</span></div>
+
+<div class="viewcode-block" id="get_template_info"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.template.get_template_info">[docs]</a><span class="k">def</span> <span class="nf">get_template_info</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">template_name</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="n">sources</span> <span class="o">=</span> <span class="n">search_template</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">template_name</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;  Template = </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span>  <span class="n">sources</span><span class="p">)</span>
+
+    <span class="c1"># read settings</span>
+    <span class="n">tmpdir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">tmp_root</span><span class="p">,</span> <span class="s2">&quot;tmp_template&quot;</span><span class="p">)</span>
+    <span class="n">settings_file</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">tmpdir</span><span class="p">,</span> <span class="s2">&quot;template.info&quot;</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">tmpdir</span><span class="p">):</span>
+        <span class="n">shutil</span><span class="o">.</span><span class="n">rmtree</span><span class="p">(</span><span class="n">tmpdir</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">sources</span><span class="p">):</span>
+        <span class="n">shutil</span><span class="o">.</span><span class="n">copytree</span><span class="p">(</span><span class="n">sources</span><span class="p">,</span> <span class="n">tmpdir</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">SYSS</span><span class="o">.</span><span class="n">archive_extract</span><span class="p">(</span><span class="n">sources</span><span class="p">,</span> <span class="n">tmpdir</span><span class="p">)</span>
+        <span class="n">settings_file</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">tmpdir</span><span class="p">,</span> <span class="s2">&quot;template.info&quot;</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">settings_file</span><span class="p">):</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Settings file not found&quot;</span><span class="p">))</span>
+    <span class="n">tsettings</span> <span class="o">=</span> <span class="n">TemplateSettings</span><span class="p">(</span><span class="s2">&quot;NAME&quot;</span><span class="p">,</span> <span class="n">settings_file</span><span class="p">,</span> <span class="s2">&quot;target&quot;</span><span class="p">)</span>
+    
+    <span class="n">skip</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">*</span><span class="mi">3</span>
+    <span class="n">msg</span> <span class="o">=</span> <span class="n">skip</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">tsettings</span><span class="o">.</span><span class="n">info</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">+=</span> <span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="s2">&quot;No information for this template.&quot;</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">+=</span> <span class="n">tsettings</span><span class="o">.</span><span class="n">info</span>
+
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">= Configuration</span><span class="se">\n</span><span class="s2">&quot;</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;  file substitution key = </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">tsettings</span><span class="o">.</span><span class="n">file_subst</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;  substitution key = &#39;</span><span class="si">%s</span><span class="s2">&#39;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">tsettings</span><span class="o">.</span><span class="n">delimiter_char</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">tsettings</span><span class="o">.</span><span class="n">ignore_filters</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot; Ignore Filter = </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="s1">&#39;, &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">tsettings</span><span class="o">.</span><span class="n">ignore_filters</span><span class="p">)</span>
+
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+    
+    <span class="n">msg</span> <span class="o">=</span> <span class="n">skip</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;= Parameters</span><span class="se">\n</span><span class="s2">&quot;</span>
+    <span class="n">pnames</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="k">for</span> <span class="n">pp</span> <span class="ow">in</span> <span class="n">tsettings</span><span class="o">.</span><span class="n">parameters</span><span class="p">:</span>
+        <span class="n">tt</span> <span class="o">=</span> <span class="n">TParam</span><span class="p">(</span><span class="n">pp</span><span class="p">,</span> <span class="s2">&quot;NAME&quot;</span><span class="p">)</span>
+        <span class="n">pnames</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tt</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+        <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;  Name = </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">tt</span><span class="o">.</span><span class="n">name</span>
+        <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;  Prompt = </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">tt</span><span class="o">.</span><span class="n">raw_prompt</span>
+        <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;  Default value = </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">tt</span><span class="o">.</span><span class="n">default</span>
+
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+    
+    <span class="n">retcode</span> <span class="o">=</span> <span class="mi">0</span>
+    
+    <span class="n">msg</span> <span class="o">=</span> <span class="n">skip</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;= Verification</span><span class="se">\n</span><span class="s2">&quot;</span>
+    <span class="k">if</span> <span class="n">tsettings</span><span class="o">.</span><span class="n">file_subst</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">pnames</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;file substitution key not defined as a parameter: </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> \
+                <span class="n">tsettings</span><span class="o">.</span><span class="n">file_subst</span>
+        <span class="n">retcode</span> <span class="o">=</span> <span class="mi">1</span>
+    
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+    
+    <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+    <span class="n">reexp</span> <span class="o">=</span> <span class="n">tsettings</span><span class="o">.</span><span class="n">delimiter_char</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;$&quot;</span><span class="p">,</span> <span class="s2">&quot;\$&quot;</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;{(?P&lt;name&gt;\S[^}]*)&quot;</span>
+    <span class="n">pathlen</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">tmpdir</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>
+    <span class="k">for</span> <span class="n">root</span><span class="p">,</span> <span class="n">__</span><span class="p">,</span> <span class="n">files</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">tmpdir</span><span class="p">):</span>
+        <span class="k">for</span> <span class="n">fic</span> <span class="ow">in</span> <span class="n">files</span><span class="p">:</span>
+            <span class="n">fpath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">fic</span><span class="p">)</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">tsettings</span><span class="o">.</span><span class="n">check_file_for_substitution</span><span class="p">(</span><span class="n">fpath</span><span class="p">[</span><span class="n">pathlen</span><span class="p">:]):</span>
+                <span class="k">continue</span>
+            <span class="c1"># read the file</span>
+            <span class="n">m</span> <span class="o">=</span> <span class="n">file</span><span class="p">(</span><span class="n">fpath</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
+            <span class="n">zz</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="n">reexp</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
+            <span class="n">zz</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">zz</span><span class="p">))</span> <span class="c1"># reduce</span>
+            <span class="n">zz</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="n">l</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">pnames</span><span class="p">,</span> <span class="n">zz</span><span class="p">)</span>
+            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">zz</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+                <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;Missing definition in </span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> \
+                      <span class="p">(</span> <span class="n">fpath</span><span class="p">[</span><span class="n">pathlen</span><span class="p">:],</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">zz</span><span class="p">)</span> <span class="p">)</span>
+                <span class="n">retcode</span> <span class="o">=</span> <span class="mi">1</span>
+
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="n">retcode</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;&lt;OK&gt;&quot;</span> <span class="o">+</span> <span class="n">skip</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;&lt;KO&gt;&quot;</span> <span class="o">+</span> <span class="n">skip</span><span class="p">)</span>
+
+
+    <span class="c1"># clean up tmp file</span>
+    <span class="n">shutil</span><span class="o">.</span><span class="n">rmtree</span><span class="p">(</span><span class="n">tmpdir</span><span class="p">)</span>
+
+    <span class="k">return</span> <span class="n">retcode</span></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/_modules/commands/test.html b/doc/build/html/_modules/commands/test.html
new file mode 100644 (file)
index 0000000..eae4ada
--- /dev/null
@@ -0,0 +1,831 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands.test &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../../genindex.html" />
+    <link rel="search" title="Search" href="../../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" />
+   
+  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for commands.test</h1><div class="highlight"><pre>
+<span></span><span class="ch">#!/usr/bin/env python</span>
+<span class="c1">#-*- coding:utf-8 -*-</span>
+
+<span class="c1">#  Copyright (C) 2010-2012  CEA/DEN</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is free software; you can redistribute it and/or</span>
+<span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
+<span class="c1">#  License as published by the Free Software Foundation; either</span>
+<span class="c1">#  version 2.1 of the License.</span>
+<span class="c1">#</span>
+<span class="c1">#  This library is distributed in the hope that it will be useful,</span>
+<span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="c1">#  Lesser General Public License for more details.</span>
+<span class="c1">#</span>
+<span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
+<span class="c1">#  License along with this library; if not, write to the Free Software</span>
+<span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
+
+<span class="kn">import</span> <span class="nn">os</span>
+<span class="kn">import</span> <span class="nn">sys</span>
+<span class="kn">import</span> <span class="nn">shutil</span>
+<span class="kn">import</span> <span class="nn">subprocess</span>
+<span class="kn">import</span> <span class="nn">datetime</span>
+<span class="kn">import</span> <span class="nn">gzip</span>
+
+<span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
+<span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
+<span class="kn">import</span> <span class="nn">src.utilsSat</span> <span class="k">as</span> <span class="nn">UTS</span>
+<span class="kn">from</span> <span class="nn">src.salomeTools</span> <span class="k">import</span> <span class="n">_BaseCommand</span>
+<span class="kn">import</span> <span class="nn">src.ElementTree</span> <span class="k">as</span> <span class="nn">etree</span>
+<span class="kn">import</span> <span class="nn">src.xmlManager</span> <span class="k">as</span> <span class="nn">XMLMGR</span>
+
+<span class="k">try</span><span class="p">:</span>
+    <span class="kn">from</span> <span class="nn">hashlib</span> <span class="k">import</span> <span class="n">sha1</span>
+<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
+    <span class="kn">from</span> <span class="nn">sha</span> <span class="k">import</span> <span class="n">sha</span> <span class="k">as</span> <span class="n">sha1</span>
+
+
+<span class="c1">########################################################################</span>
+<span class="c1"># Command class</span>
+<span class="c1">########################################################################</span>
+<div class="viewcode-block" id="Command"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.test.Command">[docs]</a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">_BaseCommand</span><span class="p">):</span>
+  <span class="sd">&quot;&quot;&quot;\</span>
+<span class="sd">  The test command runs a test base on a SALOME installation.</span>
+<span class="sd">  </span>
+<span class="sd">  examples:</span>
+<span class="sd">    &gt;&gt; sat test SALOME --grid GEOM --session light</span>
+<span class="sd">  &quot;&quot;&quot;</span>
+  
+  <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;test&quot;</span>
+  
+<div class="viewcode-block" id="Command.getParser"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.test.Command.getParser">[docs]</a>  <span class="k">def</span> <span class="nf">getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Define all options for command &#39;sat test &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getParserWithHelp</span><span class="p">()</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;b&#39;</span><span class="p">,</span> <span class="s1">&#39;base&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;base&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">Optional: Indicate the name of the test base to use.</span>
+<span class="s2">  This name has to be registered in your application and in a project.</span>
+<span class="s2">  A path to a test base can also be used.&quot;&quot;&quot;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;l&#39;</span><span class="p">,</span> <span class="s1">&#39;launcher&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;launcher&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Optional: Use this option to specify the path to a SALOME launcher to &quot;</span>
+          <span class="s2">&quot;use to launch the test scripts of the test base.&quot;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;g&#39;</span><span class="p">,</span> <span class="s1">&#39;grid&#39;</span><span class="p">,</span> <span class="s1">&#39;list&#39;</span><span class="p">,</span> <span class="s1">&#39;grids&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: Indicate which grid(s) to test (subdirectory of the test base).&#39;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;s&#39;</span><span class="p">,</span> <span class="s1">&#39;session&#39;</span><span class="p">,</span> <span class="s1">&#39;list&#39;</span><span class="p">,</span> <span class="s1">&#39;sessions&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s1">&#39;Optional: indicate which session(s) to test (subdirectory of the grid).&#39;</span><span class="p">))</span>
+    <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;display&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">,</span> <span class="s1">&#39;display&#39;</span><span class="p">,</span>
+        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">Optional: set the display where to launch SALOME.</span>
+<span class="s2">  If value is NO then option --show-desktop=0 will be used to launch SALOME.&quot;&quot;&quot;</span><span class="p">))</span>
+    <span class="k">return</span> <span class="n">parser</span></div>
+
+<div class="viewcode-block" id="Command.check_option"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.test.Command.check_option">[docs]</a>  <span class="k">def</span> <span class="nf">check_option</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Check the options</span>
+<span class="sd">    </span>
+<span class="sd">    :param options: (Options) The options</span>
+<span class="sd">    :return: None</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">launcher</span><span class="p">:</span>
+        <span class="n">options</span><span class="o">.</span><span class="n">launcher</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+    <span class="k">elif</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isabs</span><span class="p">(</span><span class="n">options</span><span class="o">.</span><span class="n">launcher</span><span class="p">):</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="n">src</span><span class="o">.</span><span class="n">config_has_application</span><span class="p">(</span><span class="n">config</span><span class="p">):</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span>
+                <span class="n">_</span><span class="p">(</span><span class="s2">&quot;An application is required to use a relative path with option --appli&quot;</span><span class="p">)</span> <span class="p">)</span>
+        <span class="n">options</span><span class="o">.</span><span class="n">launcher</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span> <span class="n">options</span><span class="o">.</span><span class="n">launcher</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">options</span><span class="o">.</span><span class="n">launcher</span><span class="p">):</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span>
+                <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Launcher not found: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">options</span><span class="o">.</span><span class="n">launcher</span> <span class="p">)</span>
+    <span class="k">return</span></div>
+
+<div class="viewcode-block" id="Command.run"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.test.Command.run">[docs]</a>  <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd_arguments</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;method called for command &#39;sat test &lt;options&gt;&#39;&quot;&quot;&quot;</span>
+    <span class="n">argList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">cmd_arguments</span><span class="p">)</span>
+
+    <span class="c1"># print general help and returns</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;No arguments, as &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+      
+    <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parseArguments</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_options</span><span class="o">.</span><span class="n">help</span><span class="p">:</span>
+      <span class="bp">self</span><span class="o">.</span><span class="n">print_help</span><span class="p">()</span>
+      <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Done &#39;sat </span><span class="si">%s</span><span class="s2"> --help&#39;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+   
+    <span class="c1"># shortcuts</span>
+    <span class="n">runner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getRunner</span><span class="p">()</span>
+    <span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getConfig</span><span class="p">()</span>
+    <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span>
+    <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getOptions</span><span class="p">()</span>
+
+    <span class="bp">self</span><span class="o">.</span><span class="n">check_option</span><span class="p">(</span><span class="n">options</span><span class="p">)</span>
+
+    <span class="c1"># the test base is specified either by the application, or by the --base option</span>
+    <span class="n">with_application</span> <span class="o">=</span> <span class="kc">False</span>
+    <span class="k">if</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span> <span class="o">!=</span> <span class="s1">&#39;None&#39;</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Running tests on application </span><span class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span> <span class="o">%</span> 
+                     <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">))</span>
+        <span class="n">with_application</span> <span class="o">=</span> <span class="kc">True</span>
+    <span class="k">elif</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">base</span><span class="p">:</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span>
+          <span class="n">_</span><span class="p">(</span><span class="s1">&#39;A test base is required. Use the --base option&#39;</span><span class="p">)</span> <span class="p">)</span>
+
+    <span class="c1"># the launcher is specified either by the application, or by the --launcher option</span>
+    <span class="k">if</span> <span class="n">with_application</span><span class="p">:</span>
+        <span class="c1"># check if environment is loaded</span>
+        <span class="k">if</span> <span class="s1">&#39;KERNEL_ROOT_DIR&#39;</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;SALOME environment already sourced&quot;</span><span class="p">))</span>
+              
+    <span class="k">elif</span> <span class="n">options</span><span class="o">.</span><span class="n">launcher</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Running SALOME application.&quot;</span><span class="p">))</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">Impossible to find any launcher.</span>
+<span class="s2">Please specify an application or a launcher</span>
+<span class="s2">&quot;&quot;&quot;</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="k">return</span> <span class="mi">1</span>
+
+    <span class="c1"># set the display</span>
+    <span class="n">show_desktop</span> <span class="o">=</span> <span class="p">(</span><span class="n">options</span><span class="o">.</span><span class="n">display</span> <span class="ow">and</span> <span class="n">options</span><span class="o">.</span><span class="n">display</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">&quot;NO&quot;</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">display</span> <span class="ow">and</span> <span class="n">options</span><span class="o">.</span><span class="n">display</span> <span class="o">!=</span> <span class="s2">&quot;NO&quot;</span><span class="p">:</span>
+        <span class="n">remote_name</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">display</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;:&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="k">if</span> <span class="n">remote_name</span> <span class="o">!=</span> <span class="s2">&quot;&quot;</span><span class="p">:</span>
+            <span class="n">check_remote_machine</span><span class="p">(</span><span class="n">remote_name</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
+        <span class="c1"># if explicitly set use user choice</span>
+        <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s1">&#39;DISPLAY&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">display</span>
+    <span class="k">elif</span> <span class="s1">&#39;DISPLAY&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
+        <span class="c1"># if no display set</span>
+        <span class="k">if</span> <span class="p">(</span><span class="s1">&#39;test&#39;</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">LOCAL</span> <span class="ow">and</span>
+                <span class="s1">&#39;display&#39;</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">test</span> <span class="ow">and</span> 
+                <span class="nb">len</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">test</span><span class="o">.</span><span class="n">display</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">):</span>
+            <span class="c1"># use default value for test tool</span>
+            <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s1">&#39;DISPLAY&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">test</span><span class="o">.</span><span class="n">display</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s1">&#39;DISPLAY&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;localhost:0.0&quot;</span>
+
+    <span class="c1"># initialization</span>
+    <span class="c1">#################</span>
+    <span class="k">if</span> <span class="n">with_application</span><span class="p">:</span>
+        <span class="n">tmp_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">tmp_root</span><span class="p">,</span>
+                               <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
+                               <span class="s2">&quot;test&quot;</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">tmp_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">tmp_root</span><span class="p">,</span>
+                               <span class="s2">&quot;test&quot;</span><span class="p">)</span>
+
+    <span class="c1"># remove previous tmp dir</span>
+    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">access</span><span class="p">(</span><span class="n">tmp_dir</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">F_OK</span><span class="p">):</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">shutil</span><span class="o">.</span><span class="n">rmtree</span><span class="p">(</span><span class="n">tmp_dir</span><span class="p">)</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span>
+                <span class="n">_</span><span class="p">(</span><span class="s2">&quot;error removing TT_TMP_RESULT </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">tmp_dir</span><span class="p">)</span>
+
+    <span class="n">lines</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="n">lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;date = &#39;</span><span class="si">%s</span><span class="s2">&#39;&quot;</span> <span class="o">%</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">date</span><span class="p">)</span>
+    <span class="n">lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;hour = &#39;</span><span class="si">%s</span><span class="s2">&#39;&quot;</span> <span class="o">%</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">hour</span><span class="p">)</span>
+    <span class="n">lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;node = &#39;</span><span class="si">%s</span><span class="s2">&#39;&quot;</span> <span class="o">%</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">node</span><span class="p">)</span>
+    <span class="n">lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;arch = &#39;</span><span class="si">%s</span><span class="s2">&#39;&quot;</span> <span class="o">%</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">dist</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="s1">&#39;APPLICATION&#39;</span> <span class="ow">in</span> <span class="n">config</span><span class="p">:</span>
+        <span class="n">lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;application_info = </span><span class="si">{}</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;application_info[&#39;name&#39;] = &#39;</span><span class="si">%s</span><span class="s2">&#39;&quot;</span> <span class="o">%</span> 
+                     <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+        <span class="n">lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;application_info[&#39;tag&#39;] = &#39;</span><span class="si">%s</span><span class="s2">&#39;&quot;</span> <span class="o">%</span> 
+                     <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
+        <span class="n">lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;application_info[&#39;products&#39;] = </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> 
+                     <span class="nb">str</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">))</span>
+
+    <span class="n">content</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">lines</span><span class="p">)</span>
+
+    <span class="c1"># create hash from context information</span>
+    <span class="n">dirname</span> <span class="o">=</span> <span class="n">sha1</span><span class="p">(</span><span class="n">content</span><span class="o">.</span><span class="n">encode</span><span class="p">())</span><span class="o">.</span><span class="n">hexdigest</span><span class="p">()</span>
+    <span class="n">base_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">tmp_dir</span><span class="p">,</span> <span class="n">dirname</span><span class="p">)</span>
+    <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">base_dir</span><span class="p">)</span>
+    <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s1">&#39;TT_TMP_RESULT&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">base_dir</span>
+
+    <span class="c1"># create env_info file</span>
+    <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">base_dir</span><span class="p">,</span> <span class="s1">&#39;env_info.py&#39;</span><span class="p">),</span> <span class="s2">&quot;w&quot;</span><span class="p">)</span>
+    <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">content</span><span class="p">)</span>
+    <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+    <span class="c1"># create working dir and bases dir</span>
+    <span class="n">working_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">base_dir</span><span class="p">,</span> <span class="s1">&#39;WORK&#39;</span><span class="p">)</span>
+    <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">working_dir</span><span class="p">)</span>
+    <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">base_dir</span><span class="p">,</span> <span class="s1">&#39;BASES&#39;</span><span class="p">))</span>
+    <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="n">working_dir</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="s1">&#39;PYTHONPATH&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
+        <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s1">&#39;PYTHONPATH&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="k">for</span> <span class="n">var</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s1">&#39;PYTHONPATH&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;:&#39;</span><span class="p">):</span>
+            <span class="k">if</span> <span class="n">var</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="p">:</span>
+                <span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">var</span><span class="p">)</span>
+
+    <span class="c1"># launch of the tests</span>
+    <span class="c1">#####################</span>
+    <span class="n">test_base</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+    <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">base</span><span class="p">:</span>
+        <span class="n">test_base</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">base</span>
+    <span class="k">elif</span> <span class="n">with_application</span> <span class="ow">and</span> <span class="s2">&quot;test_base&quot;</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="p">:</span>
+        <span class="n">test_base</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">test_base</span><span class="o">.</span><span class="n">name</span>
+
+    <span class="n">fmt</span> <span class="o">=</span> <span class="s2">&quot;  </span><span class="si">%s</span><span class="s2"> = </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span>
+    <span class="n">msg</span>  <span class="o">=</span> <span class="n">fmt</span> <span class="o">%</span> <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Display&#39;</span><span class="p">),</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s1">&#39;DISPLAY&#39;</span><span class="p">])</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="n">fmt</span> <span class="o">%</span> <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Timeout&#39;</span><span class="p">),</span> <span class="n">src</span><span class="o">.</span><span class="n">test_module</span><span class="o">.</span><span class="n">DEFAULT_TIMEOUT</span><span class="p">)</span>
+    <span class="n">msg</span> <span class="o">+=</span> <span class="n">fmt</span> <span class="o">%</span> <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Working dir&quot;</span><span class="p">),</span> <span class="n">base_dir</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+
+    <span class="c1"># create the test object</span>
+    <span class="n">test_runner</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">test_module</span><span class="o">.</span><span class="n">Test</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                                  <span class="n">logger</span><span class="p">,</span>
+                                  <span class="n">base_dir</span><span class="p">,</span>
+                                  <span class="n">testbase</span><span class="o">=</span><span class="n">test_base</span><span class="p">,</span>
+                                  <span class="n">grids</span><span class="o">=</span><span class="n">options</span><span class="o">.</span><span class="n">grids</span><span class="p">,</span>
+                                  <span class="n">sessions</span><span class="o">=</span><span class="n">options</span><span class="o">.</span><span class="n">sessions</span><span class="p">,</span>
+                                  <span class="n">launcher</span><span class="o">=</span><span class="n">options</span><span class="o">.</span><span class="n">launcher</span><span class="p">,</span>
+                                  <span class="n">show_desktop</span><span class="o">=</span><span class="n">show_desktop</span><span class="p">)</span>
+    
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">test_runner</span><span class="o">.</span><span class="n">test_base_found</span><span class="p">:</span>
+        <span class="c1"># Fail </span>
+        <span class="k">return</span> <span class="mi">1</span>
+        
+    <span class="c1"># run the test</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">allowPrintLevel</span> <span class="o">=</span> <span class="kc">False</span>
+    <span class="n">retcode</span> <span class="o">=</span> <span class="n">test_runner</span><span class="o">.</span><span class="n">run_all_tests</span><span class="p">()</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">allowPrintLevel</span> <span class="o">=</span> <span class="kc">True</span>
+
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Tests finished</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">))</span>
+    
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Generate the specific test log</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">))</span>
+    <span class="n">log_dir</span> <span class="o">=</span> <span class="n">UTS</span><span class="o">.</span><span class="n">get_log_path</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
+    <span class="n">out_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">log_dir</span><span class="p">,</span> <span class="s2">&quot;TEST&quot;</span><span class="p">)</span>
+    <span class="n">UTS</span><span class="o">.</span><span class="n">ensure_path_exists</span><span class="p">(</span><span class="n">out_dir</span><span class="p">)</span>
+    <span class="n">name_xml_board</span> <span class="o">=</span> <span class="n">logger</span><span class="o">.</span><span class="n">logFileName</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s2">&quot;board&quot;</span> <span class="o">+</span> <span class="s2">&quot;.xml&quot;</span>
+    <span class="n">historic_xml_path</span> <span class="o">=</span> <span class="n">generate_history_xml_path</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">test_base</span><span class="p">)</span>
+    
+    <span class="n">create_test_report</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                       <span class="n">historic_xml_path</span><span class="p">,</span>
+                       <span class="n">out_dir</span><span class="p">,</span>
+                       <span class="n">retcode</span><span class="p">,</span>
+                       <span class="n">xmlname</span> <span class="o">=</span> <span class="n">name_xml_board</span><span class="p">)</span>
+    <span class="n">xml_board_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">out_dir</span><span class="p">,</span> <span class="n">name_xml_board</span><span class="p">)</span>
+
+    <span class="c1"># OP 14/11/2017 Ajout de traces pour essayer de decouvrir le pb</span>
+    <span class="c1">#               de remontee de log des tests</span>
+    <span class="nb">print</span> <span class="s2">&quot;TRACES OP - test.py/run() : historic_xml_path = &#39;#</span><span class="si">%s</span><span class="s2">#&#39;&quot;</span> <span class="o">%</span><span class="n">historic_xml_path</span>
+    <span class="nb">print</span> <span class="s2">&quot;TRACES OP - test.py/run() : log_dir           = &#39;#</span><span class="si">%s</span><span class="s2">#&#39;&quot;</span> <span class="o">%</span><span class="n">log_dir</span>
+    <span class="nb">print</span> <span class="s2">&quot;TRACES OP - test.py/run() : name_xml_board    = &#39;#</span><span class="si">%s</span><span class="s2">#&#39;&quot;</span> <span class="o">%</span><span class="n">name_xml_board</span>
+
+    <span class="n">logger</span><span class="o">.</span><span class="n">l_logFiles</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">xml_board_path</span><span class="p">)</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">add_link</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="s2">&quot;TEST&quot;</span><span class="p">,</span> <span class="n">name_xml_board</span><span class="p">),</span>
+                    <span class="s2">&quot;board&quot;</span><span class="p">,</span>
+                    <span class="n">retcode</span><span class="p">,</span>
+                    <span class="s2">&quot;Click on the link to get the detailed test results&quot;</span><span class="p">)</span>
+    
+    <span class="c1"># Add the historic files into the log files list of the command</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">l_logFiles</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">historic_xml_path</span><span class="p">)</span>
+    
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Removing the temporary directory: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">test_runner</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">test_runner</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">):</span>
+        <span class="n">shutil</span><span class="o">.</span><span class="n">rmtree</span><span class="p">(</span><span class="n">test_runner</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">)</span>
+
+    <span class="k">return</span> <span class="n">retcode</span></div></div>
+   
+
+<div class="viewcode-block" id="ask_a_path"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.test.ask_a_path">[docs]</a><span class="k">def</span> <span class="nf">ask_a_path</span><span class="p">():</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    interactive as using &#39;raw_input&#39;</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">path</span> <span class="o">=</span> <span class="n">raw_input</span><span class="p">(</span><span class="s2">&quot;enter a path where to save the result: &quot;</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">path</span> <span class="o">==</span> <span class="s2">&quot;&quot;</span><span class="p">:</span>
+        <span class="n">result</span> <span class="o">=</span> <span class="n">raw_input</span><span class="p">(</span><span class="s2">&quot;the result will be not save. Are you sure to &quot;</span>
+                           <span class="s2">&quot;continue ? [y/n] &quot;</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">result</span> <span class="o">==</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">path</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">ask_a_path</span><span class="p">()</span>
+
+    <span class="k">elif</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
+        <span class="n">result</span> <span class="o">=</span> <span class="n">raw_input</span><span class="p">(</span><span class="s2">&quot;WARNING: the content of </span><span class="si">%s</span><span class="s2"> will be deleted. Are you&quot;</span>
+                           <span class="s2">&quot; sure to continue ? [y/n] &quot;</span> <span class="o">%</span> <span class="n">path</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">result</span> <span class="o">==</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">path</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">ask_a_path</span><span class="p">()</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="k">return</span> <span class="n">path</span></div>
+
+<div class="viewcode-block" id="save_file"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.test.save_file">[docs]</a><span class="k">def</span> <span class="nf">save_file</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">base</span><span class="p">):</span>
+    <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span>
+    <span class="n">content</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
+    <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+    <span class="n">objectname</span> <span class="o">=</span> <span class="n">sha1</span><span class="p">(</span><span class="n">content</span><span class="p">)</span><span class="o">.</span><span class="n">hexdigest</span><span class="p">()</span>
+
+    <span class="n">f</span> <span class="o">=</span> <span class="n">gzip</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">base</span><span class="p">,</span> <span class="s1">&#39;.objects&#39;</span><span class="p">,</span> <span class="n">objectname</span><span class="p">),</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span>
+    <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">content</span><span class="p">)</span>
+    <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+    <span class="k">return</span> <span class="n">objectname</span></div>
+
+<div class="viewcode-block" id="move_test_results"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.test.move_test_results">[docs]</a><span class="k">def</span> <span class="nf">move_test_results</span><span class="p">(</span><span class="n">in_dir</span><span class="p">,</span> <span class="n">what</span><span class="p">,</span> <span class="n">out_dir</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="k">if</span> <span class="n">out_dir</span> <span class="o">==</span> <span class="n">in_dir</span><span class="p">:</span>
+        <span class="k">return</span>
+
+    <span class="n">finalPath</span> <span class="o">=</span> <span class="n">out_dir</span>
+    <span class="n">pathIsOk</span> <span class="o">=</span> <span class="kc">False</span>
+    <span class="k">while</span> <span class="ow">not</span> <span class="n">pathIsOk</span><span class="p">:</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="c1"># create test results directory if necessary</span>
+            <span class="c1">#logger.debug(&quot;FINAL = %s\n&quot; % finalPath)</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">access</span><span class="p">(</span><span class="n">finalPath</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">F_OK</span><span class="p">):</span>
+                <span class="c1">#shutil.rmtree(finalPath)</span>
+                <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">finalPath</span><span class="p">)</span>
+            <span class="n">pathIsOk</span> <span class="o">=</span> <span class="kc">True</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> cannot be created.&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">finalPath</span><span class="p">)</span>
+            <span class="n">finalPath</span> <span class="o">=</span> <span class="n">ask_a_path</span><span class="p">()</span>
+
+    <span class="k">if</span> <span class="n">finalPath</span> <span class="o">!=</span> <span class="s2">&quot;&quot;</span><span class="p">:</span>
+        <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">finalPath</span><span class="p">,</span> <span class="n">what</span><span class="p">,</span> <span class="s1">&#39;BASES&#39;</span><span class="p">))</span>
+
+        <span class="c1"># check if .objects directory exists</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">access</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">finalPath</span><span class="p">,</span> <span class="s1">&#39;.objects&#39;</span><span class="p">),</span> <span class="n">os</span><span class="o">.</span><span class="n">F_OK</span><span class="p">):</span>
+            <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">finalPath</span><span class="p">,</span> <span class="s1">&#39;.objects&#39;</span><span class="p">))</span>
+
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;copy tests results to </span><span class="si">%s</span><span class="s1"> ... &#39;</span><span class="p">)</span> <span class="o">%</span> <span class="n">finalPath</span><span class="p">)</span>
+
+        <span class="c1"># copy env_info.py</span>
+        <span class="n">shutil</span><span class="o">.</span><span class="n">copy2</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">in_dir</span><span class="p">,</span> <span class="n">what</span><span class="p">,</span> <span class="s1">&#39;env_info.py&#39;</span><span class="p">),</span>
+                     <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">finalPath</span><span class="p">,</span> <span class="n">what</span><span class="p">,</span> <span class="s1">&#39;env_info.py&#39;</span><span class="p">))</span>
+
+        <span class="c1"># for all sub directory (ie testbase) in the BASES directory</span>
+        <span class="k">for</span> <span class="n">testbase</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">in_dir</span><span class="p">,</span> <span class="n">what</span><span class="p">,</span> <span class="s1">&#39;BASES&#39;</span><span class="p">)):</span>
+            <span class="n">outtestbase</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">finalPath</span><span class="p">,</span> <span class="n">what</span><span class="p">,</span> <span class="s1">&#39;BASES&#39;</span><span class="p">,</span> <span class="n">testbase</span><span class="p">)</span>
+            <span class="n">intestbase</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">in_dir</span><span class="p">,</span> <span class="n">what</span><span class="p">,</span> <span class="s1">&#39;BASES&#39;</span><span class="p">,</span> <span class="n">testbase</span><span class="p">)</span>
+
+            <span class="c1"># ignore files in root dir</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">intestbase</span><span class="p">):</span>
+                <span class="k">continue</span>
+
+            <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">outtestbase</span><span class="p">)</span>
+            <span class="c1">#logger.debug(&quot;copy testbase %s\n&quot; % testbase)</span>
+
+            <span class="k">for</span> <span class="n">grid_</span> <span class="ow">in</span> <span class="p">[</span><span class="n">m</span> <span class="k">for</span> <span class="n">m</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">intestbase</span><span class="p">)</span> <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span>
+                                                <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">intestbase</span><span class="p">,</span> <span class="n">m</span><span class="p">))]:</span>
+                <span class="c1"># ignore source configuration directories</span>
+                <span class="k">if</span> <span class="n">grid_</span><span class="p">[:</span><span class="mi">4</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;.git&#39;</span> <span class="ow">or</span> <span class="n">grid_</span> <span class="o">==</span> <span class="s1">&#39;CVS&#39;</span><span class="p">:</span>
+                    <span class="k">continue</span>
+
+                <span class="n">outgrid</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">outtestbase</span><span class="p">,</span> <span class="n">grid_</span><span class="p">)</span>
+                <span class="n">ingrid</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">intestbase</span><span class="p">,</span> <span class="n">grid_</span><span class="p">)</span>
+                <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">outgrid</span><span class="p">)</span>
+                <span class="c1">#logger.debug(&quot;copy grid %s&quot; % grid_)</span>
+
+                <span class="k">if</span> <span class="n">grid_</span> <span class="o">==</span> <span class="s1">&#39;RESSOURCES&#39;</span><span class="p">:</span>
+                    <span class="k">for</span> <span class="n">file_name</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">ingrid</span><span class="p">):</span>
+                        <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">ingrid</span><span class="p">,</span>
+                                                           <span class="n">file_name</span><span class="p">)):</span>
+                            <span class="k">continue</span>
+                        <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">outgrid</span><span class="p">,</span> <span class="n">file_name</span><span class="p">),</span> <span class="s2">&quot;w&quot;</span><span class="p">)</span>
+                        <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">save_file</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">ingrid</span><span class="p">,</span> <span class="n">file_name</span><span class="p">),</span>
+                                          <span class="n">finalPath</span><span class="p">))</span>
+                        <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="k">for</span> <span class="n">session_name</span> <span class="ow">in</span> <span class="p">[</span><span class="n">t</span> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">ingrid</span><span class="p">)</span> <span class="k">if</span> 
+                                      <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">ingrid</span><span class="p">,</span> <span class="n">t</span><span class="p">))]:</span>
+                        <span class="n">outsession</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">outgrid</span><span class="p">,</span> <span class="n">session_name</span><span class="p">)</span>
+                        <span class="n">insession</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">ingrid</span><span class="p">,</span> <span class="n">session_name</span><span class="p">)</span>
+                        <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">outsession</span><span class="p">)</span>
+                        
+                        <span class="k">for</span> <span class="n">file_name</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">insession</span><span class="p">):</span>
+                            <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">insession</span><span class="p">,</span>
+                                                               <span class="n">file_name</span><span class="p">)):</span>
+                                <span class="k">continue</span>
+                            <span class="k">if</span> <span class="n">file_name</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;result.py&#39;</span><span class="p">):</span>
+                                <span class="n">shutil</span><span class="o">.</span><span class="n">copy2</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">insession</span><span class="p">,</span> <span class="n">file_name</span><span class="p">),</span>
+                                             <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">outsession</span><span class="p">,</span> <span class="n">file_name</span><span class="p">))</span>
+                            <span class="k">else</span><span class="p">:</span>
+                                <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">outsession</span><span class="p">,</span> <span class="n">file_name</span><span class="p">),</span> <span class="s2">&quot;w&quot;</span><span class="p">)</span>
+                                <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">save_file</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">insession</span><span class="p">,</span>
+                                                               <span class="n">file_name</span><span class="p">),</span>
+                                                  <span class="n">finalPath</span><span class="p">))</span>
+                                <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;&lt;OK&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span></div>
+
+<div class="viewcode-block" id="check_remote_machine"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.test.check_remote_machine">[docs]</a><span class="k">def</span> <span class="nf">check_remote_machine</span><span class="p">(</span><span class="n">machine_name</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Check the display on </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">machine_name</span><span class="p">)</span>
+    <span class="n">ssh_cmd</span> <span class="o">=</span> <span class="s1">&#39;ssh -o &quot;StrictHostKeyChecking no&quot; </span><span class="si">%s</span><span class="s1"> &quot;ls&quot;&#39;</span> <span class="o">%</span> <span class="n">machine_name</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Executing the command : </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">ssh_cmd</span><span class="p">)</span>
+    <span class="n">p</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">ssh_cmd</span><span class="p">,</span> 
+                         <span class="n">shell</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+                         <span class="n">stdin</span> <span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span>
+                         <span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span>
+                         <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span>
+    <span class="n">p</span><span class="o">.</span><span class="n">wait</span><span class="p">()</span>
+    <span class="k">if</span> <span class="n">p</span><span class="o">.</span><span class="n">returncode</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;&lt;KO&gt; on &#39;</span><span class="si">%s</span><span class="s2">&#39;&quot;</span> <span class="o">%</span> <span class="n">ssh_cmd</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">critical</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="n">p</span><span class="o">.</span><span class="n">stderr</span><span class="o">.</span><span class="n">read</span><span class="p">()))</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;No ssh access to the display machine </span><span class="si">%s</span><span class="s2">.&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">machine_name</span><span class="p">))</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;&lt;OK&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span></div>
+
+
+<div class="viewcode-block" id="create_test_report"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.test.create_test_report">[docs]</a><span class="k">def</span> <span class="nf">create_test_report</span><span class="p">(</span><span class="n">config</span><span class="p">,</span>
+                       <span class="n">xml_history_path</span><span class="p">,</span>
+                       <span class="n">dest_path</span><span class="p">,</span>
+                       <span class="n">retcode</span><span class="p">,</span>
+                       <span class="n">xmlname</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Creates the XML report for a product.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c1"># get the date and hour of the launching of the command, in order to keep</span>
+    <span class="c1"># history</span>
+    <span class="n">date_hour</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">datehour</span>
+    
+    <span class="c1"># Get some information to put in the xml file</span>
+    <span class="n">application_name</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span>
+    <span class="n">withappli</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">config_has_application</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
+    
+    <span class="n">first_time</span> <span class="o">=</span> <span class="kc">False</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">xml_history_path</span><span class="p">):</span>
+        <span class="n">first_time</span> <span class="o">=</span> <span class="kc">True</span>
+        <span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">&quot;salome&quot;</span><span class="p">)</span>
+        <span class="n">prod_node</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">&quot;product&quot;</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="n">application_name</span><span class="p">,</span> <span class="n">build</span><span class="o">=</span><span class="n">xmlname</span><span class="p">)</span>
+        <span class="n">root</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">prod_node</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">xml_history_path</span><span class="p">)</span><span class="o">.</span><span class="n">getroot</span><span class="p">()</span>
+        <span class="n">prod_node</span> <span class="o">=</span> <span class="n">root</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">&quot;product&quot;</span><span class="p">)</span>
+    
+    <span class="n">prod_node</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s2">&quot;history_file&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">xml_history_path</span><span class="p">)</span>
+    <span class="n">prod_node</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s2">&quot;global_res&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">retcode</span>
+    
+    <span class="n">ASNODE</span> <span class="o">=</span> <span class="n">XMLMGR</span><span class="o">.</span><span class="n">add_simple_node</span> <span class="c1"># shortcut</span>
+    
+    <span class="k">if</span> <span class="n">withappli</span><span class="p">:</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="n">first_time</span><span class="p">:</span>
+            <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="p">(</span><span class="n">prod_node</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s2">&quot;version_to_download&quot;</span><span class="p">)</span> <span class="o">+</span> 
+                         <span class="n">prod_node</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s2">&quot;out_dir&quot;</span><span class="p">)):</span>
+                <span class="n">prod_node</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
+                
+        <span class="n">ASNODE</span><span class="p">(</span><span class="n">prod_node</span><span class="p">,</span> <span class="s2">&quot;version_to_download&quot;</span><span class="p">,</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+        
+        <span class="n">ASNODE</span><span class="p">(</span><span class="n">prod_node</span><span class="p">,</span> <span class="s2">&quot;out_dir&quot;</span><span class="p">,</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">)</span>
+
+    <span class="c1"># add environment</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">first_time</span><span class="p">:</span>
+        <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">prod_node</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s2">&quot;exec&quot;</span><span class="p">):</span>
+                <span class="n">prod_node</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
+        
+    <span class="n">exec_node</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">prod_node</span><span class="p">,</span> <span class="s2">&quot;exec&quot;</span><span class="p">)</span>
+    <span class="n">exec_node</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">&quot;env&quot;</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">&quot;Host&quot;</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">node</span><span class="p">))</span>
+    <span class="n">exec_node</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">&quot;env&quot;</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">&quot;Architecture&quot;</span><span class="p">,</span>
+                                   <span class="n">value</span><span class="o">=</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">dist</span><span class="p">))</span>
+    <span class="n">exec_node</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">&quot;env&quot;</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">&quot;Number of processors&quot;</span><span class="p">,</span>
+                                   <span class="n">value</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">nb_proc</span><span class="p">)))</span>    
+    <span class="n">exec_node</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">&quot;env&quot;</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">&quot;Begin date&quot;</span><span class="p">,</span>
+                                   <span class="n">value</span><span class="o">=</span><span class="n">src</span><span class="o">.</span><span class="n">parse_date</span><span class="p">(</span><span class="n">date_hour</span><span class="p">)))</span>
+    <span class="n">exec_node</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">&quot;env&quot;</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">&quot;Command&quot;</span><span class="p">,</span>
+                                   <span class="n">value</span><span class="o">=</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">command</span><span class="p">))</span>
+    <span class="n">exec_node</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="s2">&quot;env&quot;</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">&quot;sat version&quot;</span><span class="p">,</span>
+                                   <span class="n">value</span><span class="o">=</span><span class="n">config</span><span class="o">.</span><span class="n">INTERNAL</span><span class="o">.</span><span class="n">sat_version</span><span class="p">))</span>
+
+    <span class="k">if</span> <span class="s1">&#39;TESTS&#39;</span> <span class="ow">in</span> <span class="n">config</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">first_time</span><span class="p">:</span>
+            <span class="n">tests</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">prod_node</span><span class="p">,</span> <span class="s2">&quot;tests&quot;</span><span class="p">)</span>
+            <span class="n">known_errors</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">prod_node</span><span class="p">,</span> <span class="s2">&quot;known_errors&quot;</span><span class="p">)</span>
+            <span class="n">new_errors</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">prod_node</span><span class="p">,</span> <span class="s2">&quot;new_errors&quot;</span><span class="p">)</span>
+            <span class="n">amend</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">prod_node</span><span class="p">,</span> <span class="s2">&quot;amend&quot;</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">tests</span> <span class="o">=</span> <span class="n">prod_node</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">&quot;tests&quot;</span><span class="p">)</span>
+            <span class="n">known_errors</span> <span class="o">=</span> <span class="n">prod_node</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">&quot;known_errors&quot;</span><span class="p">)</span>
+            <span class="n">new_errors</span> <span class="o">=</span> <span class="n">prod_node</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">&quot;new_errors&quot;</span><span class="p">)</span>
+            <span class="n">amend</span> <span class="o">=</span> <span class="n">prod_node</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">&quot;amend&quot;</span><span class="p">)</span>
+        
+        <span class="n">tt</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="k">for</span> <span class="n">test</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">TESTS</span><span class="p">:</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">tt</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">test</span><span class="o">.</span><span class="n">testbase</span><span class="p">):</span>
+                <span class="n">tt</span><span class="p">[</span><span class="n">test</span><span class="o">.</span><span class="n">testbase</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">test</span><span class="p">]</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">tt</span><span class="p">[</span><span class="n">test</span><span class="o">.</span><span class="n">testbase</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">test</span><span class="p">)</span>
+        
+        <span class="k">for</span> <span class="n">testbase</span> <span class="ow">in</span> <span class="n">tt</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
+            <span class="k">if</span> <span class="n">first_time</span><span class="p">:</span>
+                <span class="n">gn</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">tests</span><span class="p">,</span> <span class="s2">&quot;testbase&quot;</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">gn</span> <span class="o">=</span> <span class="n">tests</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">&quot;testbase&quot;</span><span class="p">)</span>
+                <span class="c1"># initialize all grids and session to &quot;not executed&quot;</span>
+                <span class="k">for</span> <span class="n">mn</span> <span class="ow">in</span> <span class="n">gn</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s2">&quot;grid&quot;</span><span class="p">):</span>
+                    <span class="n">mn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s2">&quot;executed_last_time&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;no&quot;</span>
+                    <span class="k">for</span> <span class="n">tyn</span> <span class="ow">in</span> <span class="n">mn</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s2">&quot;session&quot;</span><span class="p">):</span>
+                        <span class="n">tyn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s2">&quot;executed_last_time&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;no&quot;</span>
+                        <span class="k">for</span> <span class="n">test_node</span> <span class="ow">in</span> <span class="n">tyn</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s1">&#39;test&#39;</span><span class="p">):</span>
+                            <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">test_node</span><span class="o">.</span><span class="n">getchildren</span><span class="p">():</span>
+                                <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">tag</span> <span class="o">!=</span> <span class="s2">&quot;history&quot;</span><span class="p">:</span>
+                                    <span class="n">test_node</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
+                            
+                            <span class="n">attribs_to_pop</span> <span class="o">=</span> <span class="p">[]</span>    
+                            <span class="k">for</span> <span class="n">attribute</span> <span class="ow">in</span> <span class="n">test_node</span><span class="o">.</span><span class="n">attrib</span><span class="p">:</span>
+                                <span class="k">if</span> <span class="p">(</span><span class="n">attribute</span> <span class="o">!=</span> <span class="s2">&quot;script&quot;</span> <span class="ow">and</span> 
+                                                        <span class="n">attribute</span> <span class="o">!=</span> <span class="s2">&quot;res&quot;</span><span class="p">):</span>
+                                    <span class="n">attribs_to_pop</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">attribute</span><span class="p">)</span>
+                            <span class="k">for</span> <span class="n">attribute</span> <span class="ow">in</span> <span class="n">attribs_to_pop</span><span class="p">:</span>
+                                <span class="n">test_node</span><span class="o">.</span><span class="n">attrib</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">attribute</span><span class="p">)</span>
+            
+            <span class="n">gn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">testbase</span>
+            <span class="n">nb</span><span class="p">,</span> <span class="n">nb_pass</span><span class="p">,</span> <span class="n">nb_failed</span><span class="p">,</span> <span class="n">nb_timeout</span><span class="p">,</span> <span class="n">nb_not_run</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span>
+            <span class="n">grids</span> <span class="o">=</span> <span class="p">{}</span>
+            <span class="n">sessions</span> <span class="o">=</span> <span class="p">{}</span>
+            <span class="k">for</span> <span class="n">test</span> <span class="ow">in</span> <span class="n">tt</span><span class="p">[</span><span class="n">testbase</span><span class="p">]:</span>
+                <span class="k">if</span> <span class="ow">not</span> <span class="n">grids</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">test</span><span class="o">.</span><span class="n">grid</span><span class="p">):</span>
+                    <span class="k">if</span> <span class="n">first_time</span><span class="p">:</span>
+                        <span class="n">mn</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">gn</span><span class="p">,</span> <span class="s2">&quot;grid&quot;</span><span class="p">)</span>
+                        <span class="n">mn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">test</span><span class="o">.</span><span class="n">grid</span>
+                    <span class="k">else</span><span class="p">:</span>
+                        <span class="n">l_mn</span> <span class="o">=</span> <span class="n">gn</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s2">&quot;grid&quot;</span><span class="p">)</span>
+                        <span class="n">mn</span> <span class="o">=</span> <span class="kc">None</span>
+                        <span class="k">for</span> <span class="n">grid_node</span> <span class="ow">in</span> <span class="n">l_mn</span><span class="p">:</span>
+                            <span class="k">if</span> <span class="n">grid_node</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="n">test</span><span class="o">.</span><span class="n">grid</span><span class="p">:</span>
+                                <span class="n">mn</span> <span class="o">=</span> <span class="n">grid_node</span>
+                                <span class="k">break</span>
+                        <span class="k">if</span> <span class="n">mn</span> <span class="o">==</span> <span class="kc">None</span><span class="p">:</span>
+                            <span class="n">mn</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">gn</span><span class="p">,</span> <span class="s2">&quot;grid&quot;</span><span class="p">)</span>
+                            <span class="n">mn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">test</span><span class="o">.</span><span class="n">grid</span>
+                    
+                    <span class="n">grids</span><span class="p">[</span><span class="n">test</span><span class="o">.</span><span class="n">grid</span><span class="p">]</span> <span class="o">=</span> <span class="n">mn</span>
+                
+                <span class="n">mn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s2">&quot;executed_last_time&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;yes&quot;</span>
+                
+                <span class="k">if</span> <span class="ow">not</span> <span class="n">sessions</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">test</span><span class="o">.</span><span class="n">grid</span><span class="p">,</span> <span class="n">test</span><span class="o">.</span><span class="n">session</span><span class="p">)):</span>
+                    <span class="k">if</span> <span class="n">first_time</span><span class="p">:</span>
+                        <span class="n">tyn</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">mn</span><span class="p">,</span> <span class="s2">&quot;session&quot;</span><span class="p">)</span>
+                        <span class="n">tyn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">test</span><span class="o">.</span><span class="n">session</span>
+                    <span class="k">else</span><span class="p">:</span>
+                        <span class="n">l_tyn</span> <span class="o">=</span> <span class="n">mn</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s2">&quot;session&quot;</span><span class="p">)</span>
+                        <span class="n">tyn</span> <span class="o">=</span> <span class="kc">None</span>
+                        <span class="k">for</span> <span class="n">session_node</span> <span class="ow">in</span> <span class="n">l_tyn</span><span class="p">:</span>
+                            <span class="k">if</span> <span class="n">session_node</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="n">test</span><span class="o">.</span><span class="n">session</span><span class="p">:</span>
+                                <span class="n">tyn</span> <span class="o">=</span> <span class="n">session_node</span>
+                                <span class="k">break</span>
+                        <span class="k">if</span> <span class="n">tyn</span> <span class="o">==</span> <span class="kc">None</span><span class="p">:</span>
+                            <span class="n">tyn</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">mn</span><span class="p">,</span> <span class="s2">&quot;session&quot;</span><span class="p">)</span>
+                            <span class="n">tyn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">test</span><span class="o">.</span><span class="n">session</span>
+                        
+                    <span class="n">sessions</span><span class="p">[</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">test</span><span class="o">.</span><span class="n">grid</span><span class="p">,</span> <span class="n">test</span><span class="o">.</span><span class="n">session</span><span class="p">)]</span> <span class="o">=</span> <span class="n">tyn</span>
+
+                <span class="n">tyn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s2">&quot;executed_last_time&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;yes&quot;</span>
+
+                <span class="k">for</span> <span class="n">script</span> <span class="ow">in</span> <span class="n">test</span><span class="o">.</span><span class="n">script</span><span class="p">:</span>
+                    <span class="k">if</span> <span class="n">first_time</span><span class="p">:</span>
+                        <span class="n">tn</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">sessions</span><span class="p">[</span>
+                                           <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">test</span><span class="o">.</span><span class="n">grid</span><span class="p">,</span> <span class="n">test</span><span class="o">.</span><span class="n">session</span><span class="p">)],</span>
+                                             <span class="s2">&quot;test&quot;</span><span class="p">)</span>
+                        <span class="n">tn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;session&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">test</span><span class="o">.</span><span class="n">session</span>
+                        <span class="n">tn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;script&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">script</span><span class="o">.</span><span class="n">name</span>
+                        <span class="n">hn</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">tn</span><span class="p">,</span> <span class="s2">&quot;history&quot;</span><span class="p">)</span>
+                    <span class="k">else</span><span class="p">:</span>
+                        <span class="n">l_tn</span> <span class="o">=</span> <span class="n">sessions</span><span class="p">[</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">test</span><span class="o">.</span><span class="n">grid</span><span class="p">,</span> <span class="n">test</span><span class="o">.</span><span class="n">session</span><span class="p">)]</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span>
+                                                                         <span class="s2">&quot;test&quot;</span><span class="p">)</span>
+                        <span class="n">tn</span> <span class="o">=</span> <span class="kc">None</span>
+                        <span class="k">for</span> <span class="n">test_node</span> <span class="ow">in</span> <span class="n">l_tn</span><span class="p">:</span>
+                            <span class="k">if</span> <span class="n">test_node</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;script&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="n">script</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]:</span>
+                                <span class="n">tn</span> <span class="o">=</span> <span class="n">test_node</span>
+                                <span class="k">break</span>
+                        
+                        <span class="k">if</span> <span class="n">tn</span> <span class="o">==</span> <span class="kc">None</span><span class="p">:</span>
+                            <span class="n">tn</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">sessions</span><span class="p">[</span>
+                                           <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">test</span><span class="o">.</span><span class="n">grid</span><span class="p">,</span> <span class="n">test</span><span class="o">.</span><span class="n">session</span><span class="p">)],</span>
+                                             <span class="s2">&quot;test&quot;</span><span class="p">)</span>
+                            <span class="n">tn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;session&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">test</span><span class="o">.</span><span class="n">session</span>
+                            <span class="n">tn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;script&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">script</span><span class="o">.</span><span class="n">name</span>
+                            <span class="n">hn</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">tn</span><span class="p">,</span> <span class="s2">&quot;history&quot;</span><span class="p">)</span>
+                        <span class="k">else</span><span class="p">:</span>
+                            <span class="c1"># Get or create the history node for the current test</span>
+                            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">tn</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s2">&quot;history&quot;</span><span class="p">))</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+                                <span class="n">hn</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">tn</span><span class="p">,</span> <span class="s2">&quot;history&quot;</span><span class="p">)</span>
+                            <span class="k">else</span><span class="p">:</span>
+                                <span class="n">hn</span> <span class="o">=</span> <span class="n">tn</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">&quot;history&quot;</span><span class="p">)</span>
+                            <span class="c1"># Put the last test data into the history</span>
+                            <span class="k">if</span> <span class="s1">&#39;res&#39;</span> <span class="ow">in</span> <span class="n">tn</span><span class="o">.</span><span class="n">attrib</span><span class="p">:</span>
+                                <span class="n">attributes</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;date_hour&quot;</span> <span class="p">:</span> <span class="n">date_hour</span><span class="p">,</span>
+                                              <span class="s2">&quot;res&quot;</span> <span class="p">:</span> <span class="n">tn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;res&#39;</span><span class="p">]</span> <span class="p">}</span>
+                                <span class="n">ASNODE</span><span class="p">(</span><span class="n">hn</span><span class="p">,</span>
+                                                <span class="s2">&quot;previous_test&quot;</span><span class="p">,</span>
+                                                <span class="n">attrib</span><span class="o">=</span><span class="n">attributes</span><span class="p">)</span>
+                            <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">tn</span><span class="p">:</span>
+                                <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">tag</span> <span class="o">!=</span> <span class="s2">&quot;history&quot;</span><span class="p">:</span>
+                                    <span class="n">tn</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
+                    
+                    <span class="k">if</span> <span class="s1">&#39;callback&#39;</span> <span class="ow">in</span> <span class="n">script</span><span class="p">:</span>
+                        <span class="k">try</span><span class="p">:</span>
+                            <span class="n">cnode</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">tn</span><span class="p">,</span> <span class="s2">&quot;callback&quot;</span><span class="p">)</span>
+                            <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">architecture</span><span class="o">.</span><span class="n">is_windows</span><span class="p">():</span>
+                                <span class="kn">import</span> <span class="nn">string</span>
+                                <span class="n">cnode</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span>
+                                                <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">string</span><span class="o">.</span><span class="n">printable</span><span class="p">,</span>
+                                                <span class="n">script</span><span class="o">.</span><span class="n">callback</span><span class="p">)</span>
+                            <span class="k">else</span><span class="p">:</span>
+                                <span class="n">cnode</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="n">script</span><span class="o">.</span><span class="n">callback</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span>
+                                                                <span class="s1">&#39;string_escape&#39;</span><span class="p">)</span>
+                        <span class="k">except</span> <span class="ne">UnicodeDecodeError</span> <span class="k">as</span> <span class="n">exc</span><span class="p">:</span>
+                            <span class="n">zz</span> <span class="o">=</span> <span class="p">(</span><span class="n">script</span><span class="o">.</span><span class="n">callback</span><span class="p">[:</span><span class="n">exc</span><span class="o">.</span><span class="n">start</span><span class="p">]</span> <span class="o">+</span>
+                                  <span class="s1">&#39;?&#39;</span> <span class="o">+</span>
+                                  <span class="n">script</span><span class="o">.</span><span class="n">callback</span><span class="p">[</span><span class="n">exc</span><span class="o">.</span><span class="n">end</span><span class="o">-</span><span class="mi">2</span><span class="p">:])</span>
+                            <span class="n">cnode</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">tn</span><span class="p">,</span> <span class="s2">&quot;callback&quot;</span><span class="p">)</span>
+                            <span class="n">cnode</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="n">zz</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s2">&quot;UTF-8&quot;</span><span class="p">)</span>
+                    
+                    <span class="c1"># Add the script content</span>
+                    <span class="n">cnode</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">tn</span><span class="p">,</span> <span class="s2">&quot;content&quot;</span><span class="p">)</span>
+                    <span class="n">cnode</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="n">script</span><span class="o">.</span><span class="n">content</span>
+                    
+                    <span class="c1"># Add the script execution log</span>
+                    <span class="n">cnode</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">tn</span><span class="p">,</span> <span class="s2">&quot;out&quot;</span><span class="p">)</span>
+                    <span class="n">cnode</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="n">script</span><span class="o">.</span><span class="n">out</span>
+                    
+                    <span class="k">if</span> <span class="s1">&#39;amend&#39;</span> <span class="ow">in</span> <span class="n">script</span><span class="p">:</span>
+                        <span class="n">cnode</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">tn</span><span class="p">,</span> <span class="s2">&quot;amend&quot;</span><span class="p">)</span>
+                        <span class="n">cnode</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="n">script</span><span class="o">.</span><span class="n">amend</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s2">&quot;UTF-8&quot;</span><span class="p">)</span>
+
+                    <span class="k">if</span> <span class="n">script</span><span class="o">.</span><span class="n">time</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">:</span>
+                        <span class="n">tn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;exec_time&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;?&quot;</span>
+                    <span class="k">else</span><span class="p">:</span>
+                        <span class="n">tn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;exec_time&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%.3f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">script</span><span class="o">.</span><span class="n">time</span>
+                    <span class="n">tn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;res&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">script</span><span class="o">.</span><span class="n">res</span>
+
+                    <span class="k">if</span> <span class="s2">&quot;amend&quot;</span> <span class="ow">in</span> <span class="n">script</span><span class="p">:</span>
+                        <span class="n">amend_test</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">amend</span><span class="p">,</span> <span class="s2">&quot;atest&quot;</span><span class="p">)</span>
+                        <span class="n">amend_test</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">test</span><span class="o">.</span><span class="n">grid</span><span class="p">,</span>
+                                                                 <span class="n">test</span><span class="o">.</span><span class="n">session</span><span class="p">,</span>
+                                                                 <span class="n">script</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+                        <span class="n">amend_test</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;reason&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">script</span><span class="o">.</span><span class="n">amend</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span>
+                                                                        <span class="s2">&quot;UTF-8&quot;</span><span class="p">)</span>
+
+                    <span class="c1"># calculate status</span>
+                    <span class="n">nb</span> <span class="o">+=</span> <span class="mi">1</span>
+                    <span class="k">if</span> <span class="n">script</span><span class="o">.</span><span class="n">res</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">OK_STATUS</span><span class="p">:</span> <span class="n">nb_pass</span> <span class="o">+=</span> <span class="mi">1</span>
+                    <span class="k">elif</span> <span class="n">script</span><span class="o">.</span><span class="n">res</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">TIMEOUT_STATUS</span><span class="p">:</span> <span class="n">nb_timeout</span> <span class="o">+=</span> <span class="mi">1</span>
+                    <span class="k">elif</span> <span class="n">script</span><span class="o">.</span><span class="n">res</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">KO_STATUS</span><span class="p">:</span> <span class="n">nb_failed</span> <span class="o">+=</span> <span class="mi">1</span>
+                    <span class="k">else</span><span class="p">:</span> <span class="n">nb_not_run</span> <span class="o">+=</span> <span class="mi">1</span>
+
+                    <span class="k">if</span> <span class="s2">&quot;known_error&quot;</span> <span class="ow">in</span> <span class="n">script</span><span class="p">:</span>
+                        <span class="n">kf_script</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">known_errors</span><span class="p">,</span> <span class="s2">&quot;error&quot;</span><span class="p">)</span>
+                        <span class="n">kf_script</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">test</span><span class="o">.</span><span class="n">grid</span><span class="p">,</span>
+                                                                <span class="n">test</span><span class="o">.</span><span class="n">session</span><span class="p">,</span>
+                                                                <span class="n">script</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+                        <span class="n">kf_script</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;date&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">script</span><span class="o">.</span><span class="n">known_error</span><span class="o">.</span><span class="n">date</span>
+                        <span class="n">kf_script</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span>
+                                    <span class="s1">&#39;expected&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">script</span><span class="o">.</span><span class="n">known_error</span><span class="o">.</span><span class="n">expected</span>
+                        <span class="n">kf_script</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span>
+                         <span class="s1">&#39;comment&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">script</span><span class="o">.</span><span class="n">known_error</span><span class="o">.</span><span class="n">comment</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s2">&quot;UTF-8&quot;</span><span class="p">)</span>
+                        <span class="n">kf_script</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;fixed&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span>
+                                                       <span class="n">script</span><span class="o">.</span><span class="n">known_error</span><span class="o">.</span><span class="n">fixed</span><span class="p">)</span>
+                        <span class="n">overdue</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">today</span><span class="p">()</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">&quot;%Y-%m-&quot;</span>
+                                            <span class="s2">&quot;</span><span class="si">%d</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">&gt;</span> <span class="n">script</span><span class="o">.</span><span class="n">known_error</span><span class="o">.</span><span class="n">expected</span>
+                        <span class="k">if</span> <span class="n">overdue</span><span class="p">:</span>
+                            <span class="n">kf_script</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;overdue&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">overdue</span><span class="p">)</span>
+                        
+                    <span class="k">elif</span> <span class="n">script</span><span class="o">.</span><span class="n">res</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">KO_STATUS</span><span class="p">:</span>
+                        <span class="n">new_err</span> <span class="o">=</span> <span class="n">ASNODE</span><span class="p">(</span><span class="n">new_errors</span><span class="p">,</span> <span class="s2">&quot;new_error&quot;</span><span class="p">)</span>
+                        <span class="n">script_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">test</span><span class="o">.</span><span class="n">grid</span><span class="p">,</span>
+                                                   <span class="n">test</span><span class="o">.</span><span class="n">session</span><span class="p">,</span> <span class="n">script</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+                        <span class="n">new_err</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">script_path</span>
+                        <span class="n">new_err</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;cmd&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;sat testerror </span><span class="si">%s</span><span class="s2"> -s </span><span class="si">%s</span><span class="s2"> -c &#39;my&quot;</span>
+                                                 <span class="s2">&quot; comment&#39; -p </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> \
+                            <span class="p">(</span><span class="n">application_name</span><span class="p">,</span> <span class="n">script_path</span><span class="p">,</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">dist</span><span class="p">))</span>
+
+
+            <span class="n">gn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;total&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">nb</span><span class="p">)</span>
+            <span class="n">gn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;pass&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">nb_pass</span><span class="p">)</span>
+            <span class="n">gn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;failed&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">nb_failed</span><span class="p">)</span>
+            <span class="n">gn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;timeout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">nb_timeout</span><span class="p">)</span>
+            <span class="n">gn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;not_run&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">nb_not_run</span><span class="p">)</span>
+            
+            <span class="c1"># Remove the res attribute of all tests that were not launched </span>
+            <span class="c1"># this time</span>
+            <span class="k">for</span> <span class="n">mn</span> <span class="ow">in</span> <span class="n">gn</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s2">&quot;grid&quot;</span><span class="p">):</span>
+                <span class="k">if</span> <span class="n">mn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s2">&quot;executed_last_time&quot;</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;no&quot;</span><span class="p">:</span>
+                    <span class="k">for</span> <span class="n">tyn</span> <span class="ow">in</span> <span class="n">mn</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s2">&quot;session&quot;</span><span class="p">):</span>
+                        <span class="k">if</span> <span class="n">tyn</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s2">&quot;executed_last_time&quot;</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;no&quot;</span><span class="p">:</span>
+                            <span class="k">for</span> <span class="n">test_node</span> <span class="ow">in</span> <span class="n">tyn</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s1">&#39;test&#39;</span><span class="p">):</span>
+                                <span class="k">if</span> <span class="s2">&quot;res&quot;</span> <span class="ow">in</span> <span class="n">test_node</span><span class="o">.</span><span class="n">attrib</span><span class="p">:</span>
+                                    <span class="n">test_node</span><span class="o">.</span><span class="n">attrib</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">&quot;res&quot;</span><span class="p">)</span>          
+    
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">xmlname</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">xmlname</span> <span class="o">=</span> <span class="n">application_name</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">xmlname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s2">&quot;.xml&quot;</span><span class="p">):</span>
+        <span class="n">xmlname</span> <span class="o">+=</span> <span class="s2">&quot;.xml&quot;</span>
+
+    <span class="n">XMLMGR</span><span class="o">.</span><span class="n">write_report</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">dest_path</span><span class="p">,</span> <span class="n">xmlname</span><span class="p">),</span> <span class="n">root</span><span class="p">,</span> <span class="s2">&quot;test.xsl&quot;</span><span class="p">)</span>
+    <span class="n">XMLMGR</span><span class="o">.</span><span class="n">write_report</span><span class="p">(</span><span class="n">xml_history_path</span><span class="p">,</span> <span class="n">root</span><span class="p">,</span> <span class="s2">&quot;test_history.xsl&quot;</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">src</span><span class="o">.</span><span class="n">OK_STATUS</span></div>
+
+<div class="viewcode-block" id="generate_history_xml_path"><a class="viewcode-back" href="../../apidoc_commands/commands.html#commands.test.generate_history_xml_path">[docs]</a><span class="k">def</span> <span class="nf">generate_history_xml_path</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">test_base</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Generate the name of the xml file that contain the history of the tests</span>
+<span class="sd">    on the machine with the current APPLICATION and the current test base.</span>
+<span class="sd">    </span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param test_base: (str) The test base name (or path)</span>
+<span class="sd">    :return: (str) the full path of the history xml file</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">history_xml_name</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+    <span class="k">if</span> <span class="s2">&quot;APPLICATION&quot;</span> <span class="ow">in</span> <span class="n">config</span><span class="p">:</span>
+        <span class="n">history_xml_name</span> <span class="o">+=</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">name</span>
+        <span class="n">history_xml_name</span> <span class="o">+=</span> <span class="s2">&quot;-&quot;</span> 
+    <span class="n">history_xml_name</span> <span class="o">+=</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">dist</span>
+    <span class="n">history_xml_name</span> <span class="o">+=</span> <span class="s2">&quot;-&quot;</span>
+    <span class="n">test_base_name</span> <span class="o">=</span> <span class="n">test_base</span>
+    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">test_base</span><span class="p">):</span>
+        <span class="n">test_base_name</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">test_base</span><span class="p">)</span>
+    <span class="n">history_xml_name</span> <span class="o">+=</span> <span class="n">test_base_name</span>
+    <span class="n">history_xml_name</span> <span class="o">+=</span> <span class="s2">&quot;.xml&quot;</span>
+    <span class="n">log_dir</span> <span class="o">=</span> <span class="n">UTS</span><span class="o">.</span><span class="n">get_log_path</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">log_dir</span><span class="p">,</span> <span class="s2">&quot;TEST&quot;</span><span class="p">,</span> <span class="n">history_xml_name</span><span class="p">)</span></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../../index.html">
+              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../../index.html">Documentation overview</a><ul>
+  <li><a href="../index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
index d373b6cfbaa2f3470eb237a3b03fce6f5a31de9b..2f61f88d97a4901a0644306840e3bf81372926da 100644 (file)
           <div class="body" role="main">
             
   <h1>All modules for which code is available</h1>
-<ul><li><a href="src/ElementTree.html">src.ElementTree</a></li>
+<ul><li><a href="commands/application.html">commands.application</a></li>
+<li><a href="commands/check.html">commands.check</a></li>
+<li><a href="commands/clean.html">commands.clean</a></li>
+<li><a href="commands/compile.html">commands.compile</a></li>
+<li><a href="commands/config.html">commands.config</a></li>
+<li><a href="commands/configure.html">commands.configure</a></li>
+<li><a href="commands/environ.html">commands.environ</a></li>
+<li><a href="commands/find_duplicates.html">commands.find_duplicates</a></li>
+<li><a href="commands/generate.html">commands.generate</a></li>
+<li><a href="commands/init.html">commands.init</a></li>
+<li><a href="commands/job.html">commands.job</a></li>
+<li><a href="commands/jobs.html">commands.jobs</a></li>
+<li><a href="commands/launcher.html">commands.launcher</a></li>
+<li><a href="commands/log.html">commands.log</a></li>
+<li><a href="commands/make.html">commands.make</a></li>
+<li><a href="commands/makeinstall.html">commands.makeinstall</a></li>
+<li><a href="commands/package.html">commands.package</a></li>
+<li><a href="commands/patch.html">commands.patch</a></li>
+<li><a href="commands/prepare.html">commands.prepare</a></li>
+<li><a href="commands/profile.html">commands.profile</a></li>
+<li><a href="commands/run.html">commands.run</a></li>
+<li><a href="commands/script.html">commands.script</a></li>
+<li><a href="commands/shell.html">commands.shell</a></li>
+<li><a href="commands/source.html">commands.source</a></li>
+<li><a href="commands/template.html">commands.template</a></li>
+<li><a href="commands/test.html">commands.test</a></li>
+<li><a href="src/ElementTree.html">src.ElementTree</a></li>
 <li><a href="src/architecture.html">src.architecture</a></li>
 <li><a href="src/catchAll.html">src.catchAll</a></li>
 <li><a href="src/colorama/ansi.html">src.colorama.ansi</a></li>
index 8eeb90a5864b2982fcd5e102a2697e1eb583e8d2..ecc849f4cbab28c4ece96447638deecde6bc2ebc 100644 (file)
 <span class="c1"># @return An element instance.</span>
 <span class="c1"># @defreturn Element</span>
 
-<div class="viewcode-block" id="Element"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.Element">[docs]</a><span class="k">def</span> <span class="nf">Element</span><span class="p">(</span><span class="n">tag</span><span class="p">,</span> <span class="n">attrib</span><span class="o">=</span><span class="p">{},</span> <span class="o">**</span><span class="n">extra</span><span class="p">):</span>
+<div class="viewcode-block" id="Element"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.Element">[docs]</a><span class="k">def</span> <span class="nf">Element</span><span class="p">(</span><span class="n">tag</span><span class="p">,</span> <span class="n">attrib</span><span class="o">=</span><span class="p">{},</span> <span class="o">**</span><span class="n">extra</span><span class="p">):</span>
     <span class="n">attrib</span> <span class="o">=</span> <span class="n">attrib</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
     <span class="n">attrib</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">extra</span><span class="p">)</span>
     <span class="k">return</span> <span class="n">_ElementInterface</span><span class="p">(</span><span class="n">tag</span><span class="p">,</span> <span class="n">attrib</span><span class="p">)</span></div>
 <span class="c1"># @return An element instance.</span>
 <span class="c1"># @defreturn Element</span>
 
-<div class="viewcode-block" id="SubElement"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.SubElement">[docs]</a><span class="k">def</span> <span class="nf">SubElement</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">attrib</span><span class="o">=</span><span class="p">{},</span> <span class="o">**</span><span class="n">extra</span><span class="p">):</span>
+<div class="viewcode-block" id="SubElement"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.SubElement">[docs]</a><span class="k">def</span> <span class="nf">SubElement</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">attrib</span><span class="o">=</span><span class="p">{},</span> <span class="o">**</span><span class="n">extra</span><span class="p">):</span>
     <span class="n">attrib</span> <span class="o">=</span> <span class="n">attrib</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
     <span class="n">attrib</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">extra</span><span class="p">)</span>
     <span class="n">element</span> <span class="o">=</span> <span class="n">parent</span><span class="o">.</span><span class="n">makeelement</span><span class="p">(</span><span class="n">tag</span><span class="p">,</span> <span class="n">attrib</span><span class="p">)</span>
 <span class="c1"># @return An element instance, representing a comment.</span>
 <span class="c1"># @defreturn Element</span>
 
-<div class="viewcode-block" id="Comment"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.Comment">[docs]</a><span class="k">def</span> <span class="nf">Comment</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="Comment"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.Comment">[docs]</a><span class="k">def</span> <span class="nf">Comment</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
     <span class="n">element</span> <span class="o">=</span> <span class="n">Element</span><span class="p">(</span><span class="n">Comment</span><span class="p">)</span>
     <span class="n">element</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="n">text</span>
     <span class="k">return</span> <span class="n">element</span></div>
 <span class="c1"># @return An element instance, representing a PI.</span>
 <span class="c1"># @defreturn Element</span>
 
-<div class="viewcode-block" id="ProcessingInstruction"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.ProcessingInstruction">[docs]</a><span class="k">def</span> <span class="nf">ProcessingInstruction</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="ProcessingInstruction"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.ProcessingInstruction">[docs]</a><span class="k">def</span> <span class="nf">ProcessingInstruction</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
     <span class="n">element</span> <span class="o">=</span> <span class="n">Element</span><span class="p">(</span><span class="n">ProcessingInstruction</span><span class="p">)</span>
     <span class="n">element</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="n">target</span>
     <span class="k">if</span> <span class="n">text</span><span class="p">:</span>
 <span class="c1">#     an URI, and this argument is interpreted as a local name.</span>
 <span class="c1"># @return An opaque object, representing the QName.</span>
 
-<div class="viewcode-block" id="QName"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.QName">[docs]</a><span class="k">class</span> <span class="nc">QName</span><span class="p">:</span>
+<div class="viewcode-block" id="QName"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.QName">[docs]</a><span class="k">class</span> <span class="nc">QName</span><span class="p">:</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text_or_uri</span><span class="p">,</span> <span class="n">tag</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="k">if</span> <span class="n">tag</span><span class="p">:</span>
             <span class="n">text_or_uri</span> <span class="o">=</span> <span class="s2">&quot;{</span><span class="si">%s</span><span class="s2">}</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">text_or_uri</span><span class="p">,</span> <span class="n">tag</span><span class="p">)</span>
 <span class="c1"># @keyparam file Optional file handle or name.  If given, the</span>
 <span class="c1">#     tree is initialized with the contents of this XML file.</span>
 
-<div class="viewcode-block" id="ElementTree"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.ElementTree">[docs]</a><span class="k">class</span> <span class="nc">ElementTree</span><span class="p">:</span>
+<div class="viewcode-block" id="ElementTree"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.ElementTree">[docs]</a><span class="k">class</span> <span class="nc">ElementTree</span><span class="p">:</span>
 
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">file</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="k">assert</span> <span class="n">element</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="n">iselement</span><span class="p">(</span><span class="n">element</span><span class="p">)</span>
     <span class="c1"># @return An element instance.</span>
     <span class="c1"># @defreturn Element</span>
 
-<div class="viewcode-block" id="ElementTree.getroot"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.ElementTree.getroot">[docs]</a>    <span class="k">def</span> <span class="nf">getroot</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="ElementTree.getroot"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.ElementTree.getroot">[docs]</a>    <span class="k">def</span> <span class="nf">getroot</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_root</span></div>
 
     <span class="c1">##</span>
     <span class="c1"># @return The document root element.</span>
     <span class="c1"># @defreturn Element</span>
 
-<div class="viewcode-block" id="ElementTree.parse"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.ElementTree.parse">[docs]</a>    <span class="k">def</span> <span class="nf">parse</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source</span><span class="p">,</span> <span class="n">parser</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="ElementTree.parse"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.ElementTree.parse">[docs]</a>    <span class="k">def</span> <span class="nf">parse</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source</span><span class="p">,</span> <span class="n">parser</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="s2">&quot;read&quot;</span><span class="p">):</span>
             <span class="n">source</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="s2">&quot;rb&quot;</span><span class="p">)</span>
         <span class="k">if</span> <span class="ow">not</span> <span class="n">parser</span><span class="p">:</span>
     <span class="c1"># @return An iterator.</span>
     <span class="c1"># @defreturn iterator</span>
 
-<div class="viewcode-block" id="ElementTree.getiterator"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.ElementTree.getiterator">[docs]</a>    <span class="k">def</span> <span class="nf">getiterator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="ElementTree.getiterator"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.ElementTree.getiterator">[docs]</a>    <span class="k">def</span> <span class="nf">getiterator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">_root</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_root</span><span class="o">.</span><span class="n">getiterator</span><span class="p">(</span><span class="n">tag</span><span class="p">)</span></div>
 
     <span class="c1"># @return The first matching element, or None if no element was found.</span>
     <span class="c1"># @defreturn Element or None</span>
 
-<div class="viewcode-block" id="ElementTree.find"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.ElementTree.find">[docs]</a>    <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
+<div class="viewcode-block" id="ElementTree.find"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.ElementTree.find">[docs]</a>    <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
         <span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">_root</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
         <span class="k">if</span> <span class="n">path</span><span class="p">[:</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;/&quot;</span><span class="p">:</span>
             <span class="n">path</span> <span class="o">=</span> <span class="s2">&quot;.&quot;</span> <span class="o">+</span> <span class="n">path</span>
     <span class="c1">#     empty string.</span>
     <span class="c1"># @defreturn string</span>
 
-<div class="viewcode-block" id="ElementTree.findtext"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.ElementTree.findtext">[docs]</a>    <span class="k">def</span> <span class="nf">findtext</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="ElementTree.findtext"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.ElementTree.findtext">[docs]</a>    <span class="k">def</span> <span class="nf">findtext</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">_root</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
         <span class="k">if</span> <span class="n">path</span><span class="p">[:</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;/&quot;</span><span class="p">:</span>
             <span class="n">path</span> <span class="o">=</span> <span class="s2">&quot;.&quot;</span> <span class="o">+</span> <span class="n">path</span>
     <span class="c1">#    in document order.</span>
     <span class="c1"># @defreturn list of Element instances</span>
 
-<div class="viewcode-block" id="ElementTree.findall"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.ElementTree.findall">[docs]</a>    <span class="k">def</span> <span class="nf">findall</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
+<div class="viewcode-block" id="ElementTree.findall"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.ElementTree.findall">[docs]</a>    <span class="k">def</span> <span class="nf">findall</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
         <span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">_root</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
         <span class="k">if</span> <span class="n">path</span><span class="p">[:</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;/&quot;</span><span class="p">:</span>
             <span class="n">path</span> <span class="o">=</span> <span class="s2">&quot;.&quot;</span> <span class="o">+</span> <span class="n">path</span>
     <span class="c1"># @param file A file name, or a file object opened for writing.</span>
     <span class="c1"># @param encoding Optional output encoding (default is US-ASCII).</span>
 
-<div class="viewcode-block" id="ElementTree.write"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.ElementTree.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">&quot;us-ascii&quot;</span><span class="p">):</span>
+<div class="viewcode-block" id="ElementTree.write"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.ElementTree.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">&quot;us-ascii&quot;</span><span class="p">):</span>
         <span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">_root</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
         <span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">file</span><span class="p">,</span> <span class="s2">&quot;write&quot;</span><span class="p">):</span>
             <span class="n">file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">file</span><span class="p">,</span> <span class="s2">&quot;wb&quot;</span><span class="p">)</span>
 <span class="c1"># @return A true value if this is an element object.</span>
 <span class="c1"># @defreturn flag</span>
 
-<div class="viewcode-block" id="iselement"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.iselement">[docs]</a><span class="k">def</span> <span class="nf">iselement</span><span class="p">(</span><span class="n">element</span><span class="p">):</span>
+<div class="viewcode-block" id="iselement"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.iselement">[docs]</a><span class="k">def</span> <span class="nf">iselement</span><span class="p">(</span><span class="n">element</span><span class="p">):</span>
     <span class="c1"># FIXME: not sure about this; might be a better idea to look</span>
     <span class="c1"># for tag/attrib/text attributes</span>
     <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">element</span><span class="p">,</span> <span class="n">_ElementInterface</span><span class="p">)</span> <span class="ow">or</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">element</span><span class="p">,</span> <span class="s2">&quot;tag&quot;</span><span class="p">)</span></div>
 <span class="c1">#</span>
 <span class="c1"># @param elem An element tree or an individual element.</span>
 
-<div class="viewcode-block" id="dump"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.dump">[docs]</a><span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="n">elem</span><span class="p">):</span>
+<div class="viewcode-block" id="dump"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.dump">[docs]</a><span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="n">elem</span><span class="p">):</span>
     <span class="c1"># debugging</span>
     <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">elem</span><span class="p">,</span> <span class="n">ElementTree</span><span class="p">):</span>
         <span class="n">elem</span> <span class="o">=</span> <span class="n">ElementTree</span><span class="p">(</span><span class="n">elem</span><span class="p">)</span>
 <span class="c1">#     standard {@link XMLTreeBuilder} parser is used.</span>
 <span class="c1"># @return An ElementTree instance</span>
 
-<div class="viewcode-block" id="parse"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.parse">[docs]</a><span class="k">def</span> <span class="nf">parse</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">parser</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="parse"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.parse">[docs]</a><span class="k">def</span> <span class="nf">parse</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">parser</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
     <span class="n">tree</span> <span class="o">=</span> <span class="n">ElementTree</span><span class="p">()</span>
     <span class="n">tree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
     <span class="k">return</span> <span class="n">tree</span></div>
 <span class="c1">#     events are reported.</span>
 <span class="c1"># @return A (event, elem) iterator.</span>
 
-<div class="viewcode-block" id="iterparse"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.iterparse">[docs]</a><span class="k">class</span> <span class="nc">iterparse</span><span class="p">:</span>
+<div class="viewcode-block" id="iterparse"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.iterparse">[docs]</a><span class="k">class</span> <span class="nc">iterparse</span><span class="p">:</span>
 
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source</span><span class="p">,</span> <span class="n">events</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="s2">&quot;read&quot;</span><span class="p">):</span>
                     <span class="n">append</span><span class="p">((</span><span class="n">event</span><span class="p">,</span> <span class="kc">None</span><span class="p">))</span>
                 <span class="n">parser</span><span class="o">.</span><span class="n">EndNamespaceDeclHandler</span> <span class="o">=</span> <span class="n">handler</span>
 
-<div class="viewcode-block" id="iterparse.next"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.iterparse.next">[docs]</a>    <span class="k">def</span> <span class="nf">next</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="iterparse.next"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.iterparse.next">[docs]</a>    <span class="k">def</span> <span class="nf">next</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">while</span> <span class="mi">1</span><span class="p">:</span>
             <span class="k">try</span><span class="p">:</span>
                 <span class="n">item</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_events</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_index</span><span class="p">]</span>
 <span class="c1"># @return An Element instance.</span>
 <span class="c1"># @defreturn Element</span>
 
-<div class="viewcode-block" id="XML"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.XML">[docs]</a><span class="k">def</span> <span class="nf">XML</span><span class="p">(</span><span class="n">text</span><span class="p">):</span>
+<div class="viewcode-block" id="XML"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.XML">[docs]</a><span class="k">def</span> <span class="nf">XML</span><span class="p">(</span><span class="n">text</span><span class="p">):</span>
     <span class="n">parser</span> <span class="o">=</span> <span class="n">XMLTreeBuilder</span><span class="p">()</span>
     <span class="n">parser</span><span class="o">.</span><span class="n">feed</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
     <span class="k">return</span> <span class="n">parser</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div>
 <span class="c1"># @return An encoded string containing the XML data.</span>
 <span class="c1"># @defreturn string</span>
 
-<div class="viewcode-block" id="tostring"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.tostring">[docs]</a><span class="k">def</span> <span class="nf">tostring</span><span class="p">(</span><span class="n">element</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="tostring"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.tostring">[docs]</a><span class="k">def</span> <span class="nf">tostring</span><span class="p">(</span><span class="n">element</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
     <span class="k">class</span> <span class="nc">dummy</span><span class="p">:</span>
         <span class="k">pass</span>
     <span class="n">data</span> <span class="o">=</span> <span class="p">[]</span>
 <span class="c1"># @param element_factory Optional element factory.  This factory</span>
 <span class="c1">#    is called to create new Element instances, as necessary.</span>
 
-<div class="viewcode-block" id="TreeBuilder"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.TreeBuilder">[docs]</a><span class="k">class</span> <span class="nc">TreeBuilder</span><span class="p">:</span>
+<div class="viewcode-block" id="TreeBuilder"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.TreeBuilder">[docs]</a><span class="k">class</span> <span class="nc">TreeBuilder</span><span class="p">:</span>
 
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element_factory</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_data</span> <span class="o">=</span> <span class="p">[]</span> <span class="c1"># data collector</span>
     <span class="c1"># @return An Element instance.</span>
     <span class="c1"># @defreturn Element</span>
 
-<div class="viewcode-block" id="TreeBuilder.close"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.TreeBuilder.close">[docs]</a>    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="TreeBuilder.close"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.TreeBuilder.close">[docs]</a>    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_elem</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">&quot;missing end tags&quot;</span>
         <span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">_last</span> <span class="o">!=</span> <span class="kc">None</span><span class="p">,</span> <span class="s2">&quot;missing toplevel element&quot;</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_last</span></div>
     <span class="c1"># @param data A string.  This should be either an 8-bit string</span>
     <span class="c1">#    containing ASCII text, or a Unicode string.</span>
 
-<div class="viewcode-block" id="TreeBuilder.data"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.TreeBuilder.data">[docs]</a>    <span class="k">def</span> <span class="nf">data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">):</span>
+<div class="viewcode-block" id="TreeBuilder.data"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.TreeBuilder.data">[docs]</a>    <span class="k">def</span> <span class="nf">data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">data</span><span class="p">)</span></div>
 
     <span class="c1">##</span>
     <span class="c1"># @return The opened element.</span>
     <span class="c1"># @defreturn Element</span>
 
-<div class="viewcode-block" id="TreeBuilder.start"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.TreeBuilder.start">[docs]</a>    <span class="k">def</span> <span class="nf">start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">attrs</span><span class="p">):</span>
+<div class="viewcode-block" id="TreeBuilder.start"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.TreeBuilder.start">[docs]</a>    <span class="k">def</span> <span class="nf">start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">attrs</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_flush</span><span class="p">()</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_last</span> <span class="o">=</span> <span class="n">elem</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_factory</span><span class="p">(</span><span class="n">tag</span><span class="p">,</span> <span class="n">attrs</span><span class="p">)</span>
         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_elem</span><span class="p">:</span>
     <span class="c1"># @return The closed element.</span>
     <span class="c1"># @defreturn Element</span>
 
-<div class="viewcode-block" id="TreeBuilder.end"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.TreeBuilder.end">[docs]</a>    <span class="k">def</span> <span class="nf">end</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">):</span>
+<div class="viewcode-block" id="TreeBuilder.end"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.TreeBuilder.end">[docs]</a>    <span class="k">def</span> <span class="nf">end</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_flush</span><span class="p">()</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_last</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_elem</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span>
         <span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">_last</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="n">tag</span><span class="p">,</span>\
 <span class="c1"># @see #ElementTree</span>
 <span class="c1"># @see #TreeBuilder</span>
 
-<div class="viewcode-block" id="XMLTreeBuilder"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.XMLTreeBuilder">[docs]</a><span class="k">class</span> <span class="nc">XMLTreeBuilder</span><span class="p">:</span>
+<div class="viewcode-block" id="XMLTreeBuilder"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.XMLTreeBuilder">[docs]</a><span class="k">class</span> <span class="nc">XMLTreeBuilder</span><span class="p">:</span>
 
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">html</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="k">try</span><span class="p">:</span>
     <span class="c1"># @param pubid Public identifier.</span>
     <span class="c1"># @param system System identifier.</span>
 
-<div class="viewcode-block" id="XMLTreeBuilder.doctype"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.XMLTreeBuilder.doctype">[docs]</a>    <span class="k">def</span> <span class="nf">doctype</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">pubid</span><span class="p">,</span> <span class="n">system</span><span class="p">):</span>
+<div class="viewcode-block" id="XMLTreeBuilder.doctype"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.XMLTreeBuilder.doctype">[docs]</a>    <span class="k">def</span> <span class="nf">doctype</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">pubid</span><span class="p">,</span> <span class="n">system</span><span class="p">):</span>
         <span class="k">pass</span></div>
 
     <span class="c1">##</span>
     <span class="c1">#</span>
     <span class="c1"># @param data Encoded data.</span>
 
-<div class="viewcode-block" id="XMLTreeBuilder.feed"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.XMLTreeBuilder.feed">[docs]</a>    <span class="k">def</span> <span class="nf">feed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">):</span>
+<div class="viewcode-block" id="XMLTreeBuilder.feed"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.XMLTreeBuilder.feed">[docs]</a>    <span class="k">def</span> <span class="nf">feed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_parser</span><span class="o">.</span><span class="n">Parse</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span></div>
 
     <span class="c1">##</span>
     <span class="c1"># @return An element structure.</span>
     <span class="c1"># @defreturn Element</span>
 
-<div class="viewcode-block" id="XMLTreeBuilder.close"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.ElementTree.XMLTreeBuilder.close">[docs]</a>    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="XMLTreeBuilder.close"><a class="viewcode-back" href="../../apidoc_src/src.html#src.ElementTree.XMLTreeBuilder.close">[docs]</a>    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_parser</span><span class="o">.</span><span class="n">Parse</span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="c1"># end of data</span>
         <span class="n">tree</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_target</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
         <span class="k">del</span> <span class="bp">self</span><span class="o">.</span><span class="n">_target</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parser</span> <span class="c1"># get rid of circular references</span>
index 686246632777b4eec1c20ece3783dffb585853b3..e486727443825e5c14c49e23697d8e20e955bb26 100644 (file)
 <span class="c1">#  License along with this library; if not, write to the Free Software</span>
 <span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
 
-<span class="sd">&#39;&#39;&#39;</span>
-<span class="sd">In this file : all the stuff that can change with the architecture </span>
+<span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">Contains all the stuff that can change with the architecture </span>
 <span class="sd">on which SAT is running</span>
-<span class="sd">&#39;&#39;&#39;</span>
+<span class="sd">&quot;&quot;&quot;</span>
 
 <span class="kn">import</span> <span class="nn">os</span>
 <span class="kn">import</span> <span class="nn">sys</span>
 <span class="kn">import</span> <span class="nn">platform</span>
 
-<div class="viewcode-block" id="is_windows"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.architecture.is_windows">[docs]</a><span class="k">def</span> <span class="nf">is_windows</span><span class="p">():</span>
-    <span class="sd">&#39;&#39;&#39;method that checks windows OS</span>
+<div class="viewcode-block" id="is_windows"><a class="viewcode-back" href="../../apidoc_src/src.html#src.architecture.is_windows">[docs]</a><span class="k">def</span> <span class="nf">is_windows</span><span class="p">():</span>
+    <span class="sd">&quot;&quot;&quot;Checks windows OS</span>
 <span class="sd">      </span>
-<span class="sd">    :rtype: boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :return: (bool) True if system is Windows</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">return</span> <span class="n">platform</span><span class="o">.</span><span class="n">system</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;Windows&#39;</span></div>
 
-<div class="viewcode-block" id="get_user"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.architecture.get_user">[docs]</a><span class="k">def</span> <span class="nf">get_user</span><span class="p">():</span>
-    <span class="sd">&#39;&#39;&#39;method that gets the username that launched sat  </span>
+<div class="viewcode-block" id="get_user"><a class="viewcode-back" href="../../apidoc_src/src.html#src.architecture.get_user">[docs]</a><span class="k">def</span> <span class="nf">get_user</span><span class="p">():</span>
+    <span class="sd">&quot;&quot;&quot;Gets the username that launched sat  </span>
 <span class="sd">    </span>
-<span class="sd">    :rtype: str</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :return: (str) environ var USERNAME</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="c1"># In windows case, the USERNAME environment variable has to be set</span>
     <span class="k">if</span> <span class="n">is_windows</span><span class="p">():</span>
         <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="s1">&#39;USERNAME&#39;</span><span class="p">):</span>
         <span class="k">return</span> <span class="n">pwd</span><span class="o">.</span><span class="n">getpwuid</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">getuid</span><span class="p">())[</span><span class="mi">0</span><span class="p">]</span></div>
 
 <span class="k">def</span> <span class="nf">_lsb_release</span><span class="p">(</span><span class="n">args</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Get system information with lsb_release.</span>
+    <span class="sd">&quot;&quot;&quot;Get system information with lsb_release.</span>
 <span class="sd">    </span>
-<span class="sd">    :param args str: The arguments to give to lsb_release.</span>
-<span class="sd">    :return: The distribution.</span>
-<span class="sd">    :rtype: str</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param args: (str) The CLI arguments to give to lsb_release.</span>
+<span class="sd">    :return: (str) The distribution.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">try</span><span class="p">:</span>
         <span class="n">path</span> <span class="o">=</span> <span class="s1">&#39;/usr/local/bin:/usr/bin:/bin&#39;</span>
         <span class="n">lsb_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s2">&quot;LSB_PATH&quot;</span><span class="p">)</span>
                            <span class="s2">&quot; the path to lsb_release</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">))</span>
         <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
 
-<div class="viewcode-block" id="get_distribution"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.architecture.get_distribution">[docs]</a><span class="k">def</span> <span class="nf">get_distribution</span><span class="p">(</span><span class="n">codes</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Gets the code for the distribution</span>
+<div class="viewcode-block" id="get_distribution"><a class="viewcode-back" href="../../apidoc_src/src.html#src.architecture.get_distribution">[docs]</a><span class="k">def</span> <span class="nf">get_distribution</span><span class="p">(</span><span class="n">codes</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Gets the code for the distribution</span>
 <span class="sd">    </span>
-<span class="sd">    :param codes L{Mapping}: The map containing distribution correlation table.</span>
-<span class="sd">    :return: The distribution on which salomeTools is running, regarding the </span>
-<span class="sd">             distribution correlation table contained in codes variable.</span>
-<span class="sd">    :rtype: str</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param codes: (L{Mapping}) </span>
+<span class="sd">      The map containing distribution correlation table.</span>
+<span class="sd">    :return: (str)</span>
+<span class="sd">      The distribution on which salomeTools is running, regarding the </span>
+<span class="sd">      distribution correlation table contained in codes variable.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="n">is_windows</span><span class="p">():</span>
         <span class="k">return</span> <span class="s2">&quot;Win&quot;</span>
 
     <span class="k">return</span> <span class="n">distrib</span></div>
 
 
-<div class="viewcode-block" id="get_distrib_version"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.architecture.get_distrib_version">[docs]</a><span class="k">def</span> <span class="nf">get_distrib_version</span><span class="p">(</span><span class="n">distrib</span><span class="p">,</span> <span class="n">codes</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Gets the version of the distribution</span>
+<div class="viewcode-block" id="get_distrib_version"><a class="viewcode-back" href="../../apidoc_src/src.html#src.architecture.get_distrib_version">[docs]</a><span class="k">def</span> <span class="nf">get_distrib_version</span><span class="p">(</span><span class="n">distrib</span><span class="p">,</span> <span class="n">codes</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Gets the version of the distribution</span>
 <span class="sd">    </span>
-<span class="sd">    :param distrib str: The distribution on which the version will be found.</span>
-<span class="sd">    :param codes L{Mapping}: The map containing distribution correlation table.</span>
-<span class="sd">    :return: The version of the distribution on which salomeTools is running, </span>
-<span class="sd">             regarding the distribution correlation table contained in codes </span>
-<span class="sd">             variable.</span>
-<span class="sd">    :rtype: str</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param distrib: (str) </span>
+<span class="sd">      The distribution on which the version will be found.</span>
+<span class="sd">    :param codes: (L{Mapping}) </span>
+<span class="sd">      The map containing distribution correlation table.</span>
+<span class="sd">    :return: (str)</span>
+<span class="sd">      The version of the distribution on which </span>
+<span class="sd">      salomeTools is running, regarding the distribution </span>
+<span class="sd">      correlation table contained in codes variable.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="k">if</span> <span class="n">is_windows</span><span class="p">():</span>
         <span class="k">return</span> <span class="n">platform</span><span class="o">.</span><span class="n">release</span><span class="p">()</span>
         <span class="n">version</span><span class="o">=</span><span class="n">version</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>  <span class="c1">#for centos, we only care for major version</span>
     <span class="k">return</span> <span class="n">version</span></div>
 
-<div class="viewcode-block" id="get_python_version"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.architecture.get_python_version">[docs]</a><span class="k">def</span> <span class="nf">get_python_version</span><span class="p">():</span>
-    <span class="sd">&#39;&#39;&#39;Gets the version of the running python.</span>
+<div class="viewcode-block" id="get_python_version"><a class="viewcode-back" href="../../apidoc_src/src.html#src.architecture.get_python_version">[docs]</a><span class="k">def</span> <span class="nf">get_python_version</span><span class="p">():</span>
+    <span class="sd">&quot;&quot;&quot;Gets the version of the running python.</span>
 <span class="sd">    </span>
-<span class="sd">    :return: the version of the running python.</span>
-<span class="sd">    :rtype: str</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :return: (str) The version of the running python.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     
     <span class="c1"># The platform python module gives the answer</span>
     <span class="k">return</span> <span class="n">platform</span><span class="o">.</span><span class="n">python_version</span><span class="p">()</span></div>
 
-<div class="viewcode-block" id="get_nb_proc"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.architecture.get_nb_proc">[docs]</a><span class="k">def</span> <span class="nf">get_nb_proc</span><span class="p">():</span>
-    <span class="sd">&#39;&#39;&#39;Gets the number of processors of the machine </span>
-<span class="sd">       on which salomeTools is running.</span>
+<div class="viewcode-block" id="get_nb_proc"><a class="viewcode-back" href="../../apidoc_src/src.html#src.architecture.get_nb_proc">[docs]</a><span class="k">def</span> <span class="nf">get_nb_proc</span><span class="p">():</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Gets the number of processors of the machine </span>
+<span class="sd">    on which salomeTools is running.</span>
 <span class="sd">    </span>
-<span class="sd">    :return: the number of processors.</span>
-<span class="sd">    :rtype: str</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :return: (str) The number of processors.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     
     <span class="k">try</span> <span class="p">:</span>
         <span class="kn">import</span> <span class="nn">multiprocessing</span>
index 206219658bc7048ae92e494462f834f37d296705..147512826da9c32c02205839923aa74d84c19e2b 100644 (file)
 <span class="c1">########################################################################################</span>
 <span class="c1"># json utils</span>
 <span class="c1">########################################################################################</span>
-<div class="viewcode-block" id="dumper"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.catchAll.dumper">[docs]</a><span class="k">def</span> <span class="nf">dumper</span><span class="p">(</span><span class="n">obj</span><span class="p">):</span>
+<div class="viewcode-block" id="dumper"><a class="viewcode-back" href="../../apidoc_src/src.html#src.catchAll.dumper">[docs]</a><span class="k">def</span> <span class="nf">dumper</span><span class="p">(</span><span class="n">obj</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;to json explore subclass object as dict&quot;&quot;&quot;</span>
     <span class="k">return</span> <span class="n">obj</span><span class="o">.</span><span class="vm">__dict__</span></div>
 
-<div class="viewcode-block" id="dumperType"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.catchAll.dumperType">[docs]</a><span class="k">def</span> <span class="nf">dumperType</span><span class="p">(</span><span class="n">obj</span><span class="p">):</span>
+<div class="viewcode-block" id="dumperType"><a class="viewcode-back" href="../../apidoc_src/src.html#src.catchAll.dumperType">[docs]</a><span class="k">def</span> <span class="nf">dumperType</span><span class="p">(</span><span class="n">obj</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;\</span>
 <span class="sd">    to get a &quot;_type&quot; to trace json subclass object,</span>
 <span class="sd">    but ignore all attributes begining with &#39;_&#39;</span>
     <span class="k">if</span> <span class="ow">not</span> <span class="n">aDict</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">typeatt</span><span class="p">):</span> <span class="n">aDict</span><span class="p">[</span><span class="n">typeatt</span><span class="p">]</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span>
     <span class="k">return</span> <span class="n">aDict</span></div>
 
-<div class="viewcode-block" id="jsonDumps"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.catchAll.jsonDumps">[docs]</a><span class="k">def</span> <span class="nf">jsonDumps</span><span class="p">(</span><span class="n">obj</span><span class="p">):</span>
+<div class="viewcode-block" id="jsonDumps"><a class="viewcode-back" href="../../apidoc_src/src.html#src.catchAll.jsonDumps">[docs]</a><span class="k">def</span> <span class="nf">jsonDumps</span><span class="p">(</span><span class="n">obj</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;to get direct default jsonDumps method&quot;&quot;&quot;</span>
     <span class="k">return</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="n">dumperType</span><span class="p">,</span> <span class="n">sort_keys</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span></div>
 
 
 <span class="c1">########################################################################################</span>
-<div class="viewcode-block" id="CatchAll"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.catchAll.CatchAll">[docs]</a><span class="k">class</span> <span class="nc">CatchAll</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="CatchAll"><a class="viewcode-back" href="../../apidoc_src/src.html#src.catchAll.CatchAll">[docs]</a><span class="k">class</span> <span class="nc">CatchAll</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
   <span class="sd">&quot;&quot;&quot;\</span>
 <span class="sd">  class as simple dynamic dictionary </span>
 <span class="sd">  with predefined keys as properties in</span>
       <span class="k">return</span> <span class="n">txt</span>
     
 
-<div class="viewcode-block" id="CatchAll.jsonDumps"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.catchAll.CatchAll.jsonDumps">[docs]</a>  <span class="k">def</span> <span class="nf">jsonDumps</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="CatchAll.jsonDumps"><a class="viewcode-back" href="../../apidoc_src/src.html#src.catchAll.CatchAll.jsonDumps">[docs]</a>  <span class="k">def</span> <span class="nf">jsonDumps</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
     <span class="k">return</span> <span class="n">jsonDumps</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span></div></div>
 
 </pre></div>
index 0515de7fe2a59800bf1763b532219f4f1740a669..5d8e975148448466a994e45c3d1855cc09fcaec9 100644 (file)
 <span class="n">BEL</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="se">\007</span><span class="s1">&#39;</span>
 
 
-<div class="viewcode-block" id="code_to_chars"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansi.code_to_chars">[docs]</a><span class="k">def</span> <span class="nf">code_to_chars</span><span class="p">(</span><span class="n">code</span><span class="p">):</span>
+<div class="viewcode-block" id="code_to_chars"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansi.code_to_chars">[docs]</a><span class="k">def</span> <span class="nf">code_to_chars</span><span class="p">(</span><span class="n">code</span><span class="p">):</span>
     <span class="k">return</span> <span class="n">CSI</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">code</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;m&#39;</span></div>
 
-<div class="viewcode-block" id="set_title"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansi.set_title">[docs]</a><span class="k">def</span> <span class="nf">set_title</span><span class="p">(</span><span class="n">title</span><span class="p">):</span>
+<div class="viewcode-block" id="set_title"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansi.set_title">[docs]</a><span class="k">def</span> <span class="nf">set_title</span><span class="p">(</span><span class="n">title</span><span class="p">):</span>
     <span class="k">return</span> <span class="n">OSC</span> <span class="o">+</span> <span class="s1">&#39;2;&#39;</span> <span class="o">+</span> <span class="n">title</span> <span class="o">+</span> <span class="n">BEL</span></div>
 
-<div class="viewcode-block" id="clear_screen"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansi.clear_screen">[docs]</a><span class="k">def</span> <span class="nf">clear_screen</span><span class="p">(</span><span class="n">mode</span><span class="o">=</span><span class="mi">2</span><span class="p">):</span>
+<div class="viewcode-block" id="clear_screen"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansi.clear_screen">[docs]</a><span class="k">def</span> <span class="nf">clear_screen</span><span class="p">(</span><span class="n">mode</span><span class="o">=</span><span class="mi">2</span><span class="p">):</span>
     <span class="k">return</span> <span class="n">CSI</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">mode</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;J&#39;</span></div>
 
-<div class="viewcode-block" id="clear_line"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansi.clear_line">[docs]</a><span class="k">def</span> <span class="nf">clear_line</span><span class="p">(</span><span class="n">mode</span><span class="o">=</span><span class="mi">2</span><span class="p">):</span>
+<div class="viewcode-block" id="clear_line"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansi.clear_line">[docs]</a><span class="k">def</span> <span class="nf">clear_line</span><span class="p">(</span><span class="n">mode</span><span class="o">=</span><span class="mi">2</span><span class="p">):</span>
     <span class="k">return</span> <span class="n">CSI</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">mode</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;K&#39;</span></div>
 
 
-<div class="viewcode-block" id="AnsiCodes"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiCodes">[docs]</a><span class="k">class</span> <span class="nc">AnsiCodes</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiCodes"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansi.AnsiCodes">[docs]</a><span class="k">class</span> <span class="nc">AnsiCodes</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="c1"># the subclasses declare class attributes which are numbers.</span>
         <span class="c1"># Upon instantiation we define instance attributes, which are the same</span>
                 <span class="nb">setattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">code_to_chars</span><span class="p">(</span><span class="n">value</span><span class="p">))</span></div>
 
 
-<div class="viewcode-block" id="AnsiCursor"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiCursor">[docs]</a><span class="k">class</span> <span class="nc">AnsiCursor</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
-<div class="viewcode-block" id="AnsiCursor.UP"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiCursor.UP">[docs]</a>    <span class="k">def</span> <span class="nf">UP</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiCursor"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansi.AnsiCursor">[docs]</a><span class="k">class</span> <span class="nc">AnsiCursor</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiCursor.UP"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansi.AnsiCursor.UP">[docs]</a>    <span class="k">def</span> <span class="nf">UP</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
         <span class="k">return</span> <span class="n">CSI</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;A&#39;</span></div>
-<div class="viewcode-block" id="AnsiCursor.DOWN"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiCursor.DOWN">[docs]</a>    <span class="k">def</span> <span class="nf">DOWN</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiCursor.DOWN"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansi.AnsiCursor.DOWN">[docs]</a>    <span class="k">def</span> <span class="nf">DOWN</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
         <span class="k">return</span> <span class="n">CSI</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;B&#39;</span></div>
-<div class="viewcode-block" id="AnsiCursor.FORWARD"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiCursor.FORWARD">[docs]</a>    <span class="k">def</span> <span class="nf">FORWARD</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiCursor.FORWARD"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansi.AnsiCursor.FORWARD">[docs]</a>    <span class="k">def</span> <span class="nf">FORWARD</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
         <span class="k">return</span> <span class="n">CSI</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;C&#39;</span></div>
-<div class="viewcode-block" id="AnsiCursor.BACK"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiCursor.BACK">[docs]</a>    <span class="k">def</span> <span class="nf">BACK</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiCursor.BACK"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansi.AnsiCursor.BACK">[docs]</a>    <span class="k">def</span> <span class="nf">BACK</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
         <span class="k">return</span> <span class="n">CSI</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;D&#39;</span></div>
-<div class="viewcode-block" id="AnsiCursor.POS"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiCursor.POS">[docs]</a>    <span class="k">def</span> <span class="nf">POS</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiCursor.POS"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansi.AnsiCursor.POS">[docs]</a>    <span class="k">def</span> <span class="nf">POS</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
         <span class="k">return</span> <span class="n">CSI</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">y</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;;&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;H&#39;</span></div></div>
 
 
-<div class="viewcode-block" id="AnsiFore"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiFore">[docs]</a><span class="k">class</span> <span class="nc">AnsiFore</span><span class="p">(</span><span class="n">AnsiCodes</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiFore"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansi.AnsiFore">[docs]</a><span class="k">class</span> <span class="nc">AnsiFore</span><span class="p">(</span><span class="n">AnsiCodes</span><span class="p">):</span>
     <span class="n">BLACK</span>           <span class="o">=</span> <span class="mi">30</span>
     <span class="n">RED</span>             <span class="o">=</span> <span class="mi">31</span>
     <span class="n">GREEN</span>           <span class="o">=</span> <span class="mi">32</span>
     <span class="n">LIGHTWHITE_EX</span>   <span class="o">=</span> <span class="mi">97</span></div>
 
 
-<div class="viewcode-block" id="AnsiBack"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiBack">[docs]</a><span class="k">class</span> <span class="nc">AnsiBack</span><span class="p">(</span><span class="n">AnsiCodes</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiBack"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansi.AnsiBack">[docs]</a><span class="k">class</span> <span class="nc">AnsiBack</span><span class="p">(</span><span class="n">AnsiCodes</span><span class="p">):</span>
     <span class="n">BLACK</span>           <span class="o">=</span> <span class="mi">40</span>
     <span class="n">RED</span>             <span class="o">=</span> <span class="mi">41</span>
     <span class="n">GREEN</span>           <span class="o">=</span> <span class="mi">42</span>
     <span class="n">LIGHTWHITE_EX</span>   <span class="o">=</span> <span class="mi">107</span></div>
 
 
-<div class="viewcode-block" id="AnsiStyle"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiStyle">[docs]</a><span class="k">class</span> <span class="nc">AnsiStyle</span><span class="p">(</span><span class="n">AnsiCodes</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiStyle"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansi.AnsiStyle">[docs]</a><span class="k">class</span> <span class="nc">AnsiStyle</span><span class="p">(</span><span class="n">AnsiCodes</span><span class="p">):</span>
     <span class="n">BRIGHT</span>    <span class="o">=</span> <span class="mi">1</span>
     <span class="n">DIM</span>       <span class="o">=</span> <span class="mi">2</span>
     <span class="n">NORMAL</span>    <span class="o">=</span> <span class="mi">22</span>
index 94dbe4658c9fc5980df0a074601bb541b00bb22a..5fb649bdc722ed2633d188847058fed3db0c0251 100644 (file)
     <span class="n">winterm</span> <span class="o">=</span> <span class="n">WinTerm</span><span class="p">()</span>
 
 
-<div class="viewcode-block" id="is_stream_closed"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansitowin32.is_stream_closed">[docs]</a><span class="k">def</span> <span class="nf">is_stream_closed</span><span class="p">(</span><span class="n">stream</span><span class="p">):</span>
+<div class="viewcode-block" id="is_stream_closed"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansitowin32.is_stream_closed">[docs]</a><span class="k">def</span> <span class="nf">is_stream_closed</span><span class="p">(</span><span class="n">stream</span><span class="p">):</span>
     <span class="k">return</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">stream</span><span class="p">,</span> <span class="s1">&#39;closed&#39;</span><span class="p">)</span> <span class="ow">or</span> <span class="n">stream</span><span class="o">.</span><span class="n">closed</span></div>
 
 
-<div class="viewcode-block" id="is_a_tty"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansitowin32.is_a_tty">[docs]</a><span class="k">def</span> <span class="nf">is_a_tty</span><span class="p">(</span><span class="n">stream</span><span class="p">):</span>
+<div class="viewcode-block" id="is_a_tty"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansitowin32.is_a_tty">[docs]</a><span class="k">def</span> <span class="nf">is_a_tty</span><span class="p">(</span><span class="n">stream</span><span class="p">):</span>
     <span class="k">return</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">stream</span><span class="p">,</span> <span class="s1">&#39;isatty&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="n">stream</span><span class="o">.</span><span class="n">isatty</span><span class="p">()</span></div>
 
 
-<div class="viewcode-block" id="StreamWrapper"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansitowin32.StreamWrapper">[docs]</a><span class="k">class</span> <span class="nc">StreamWrapper</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="StreamWrapper"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansitowin32.StreamWrapper">[docs]</a><span class="k">class</span> <span class="nc">StreamWrapper</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
     <span class="sd">&#39;&#39;&#39;</span>
 <span class="sd">    Wraps a stream (such as stdout), acting as a transparent proxy for all</span>
 <span class="sd">    attribute access apart from method &#39;write()&#39;, which is delegated to our</span>
     <span class="k">def</span> <span class="nf">__getattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
         <span class="k">return</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__wrapped</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
 
-<div class="viewcode-block" id="StreamWrapper.write"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansitowin32.StreamWrapper.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
+<div class="viewcode-block" id="StreamWrapper.write"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansitowin32.StreamWrapper.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">__convertor</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">text</span><span class="p">)</span></div></div>
 
 
-<div class="viewcode-block" id="AnsiToWin32"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32">[docs]</a><span class="k">class</span> <span class="nc">AnsiToWin32</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiToWin32"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32">[docs]</a><span class="k">class</span> <span class="nc">AnsiToWin32</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
     <span class="sd">&#39;&#39;&#39;</span>
 <span class="sd">    Implements a &#39;write()&#39; method which, on Windows, will strip ANSI character</span>
 <span class="sd">    sequences from the text, and if outputting to a tty, will convert them into</span>
         <span class="c1"># are we wrapping stderr?</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">on_stderr</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrapped</span> <span class="ow">is</span> <span class="n">sys</span><span class="o">.</span><span class="n">stderr</span>
 
-<div class="viewcode-block" id="AnsiToWin32.should_wrap"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.should_wrap">[docs]</a>    <span class="k">def</span> <span class="nf">should_wrap</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiToWin32.should_wrap"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.should_wrap">[docs]</a>    <span class="k">def</span> <span class="nf">should_wrap</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="sd">&#39;&#39;&#39;</span>
 <span class="sd">        True if this class is actually needed. If false, then the output</span>
 <span class="sd">        stream will not be affected, nor will win32 calls be issued, so</span>
 <span class="sd">        &#39;&#39;&#39;</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">convert</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">strip</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">autoreset</span></div>
 
-<div class="viewcode-block" id="AnsiToWin32.get_win32_calls"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.get_win32_calls">[docs]</a>    <span class="k">def</span> <span class="nf">get_win32_calls</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiToWin32.get_win32_calls"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.get_win32_calls">[docs]</a>    <span class="k">def</span> <span class="nf">get_win32_calls</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">convert</span> <span class="ow">and</span> <span class="n">winterm</span><span class="p">:</span>
             <span class="k">return</span> <span class="p">{</span>
                 <span class="n">AnsiStyle</span><span class="o">.</span><span class="n">RESET_ALL</span><span class="p">:</span> <span class="p">(</span><span class="n">winterm</span><span class="o">.</span><span class="n">reset_all</span><span class="p">,</span> <span class="p">),</span>
             <span class="p">}</span>
         <span class="k">return</span> <span class="nb">dict</span><span class="p">()</span></div>
 
-<div class="viewcode-block" id="AnsiToWin32.write"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiToWin32.write"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">strip</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">convert</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">write_and_convert</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
         <span class="k">else</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">reset_all</span><span class="p">()</span></div>
 
 
-<div class="viewcode-block" id="AnsiToWin32.reset_all"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.reset_all">[docs]</a>    <span class="k">def</span> <span class="nf">reset_all</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiToWin32.reset_all"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.reset_all">[docs]</a>    <span class="k">def</span> <span class="nf">reset_all</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">convert</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">call_win32</span><span class="p">(</span><span class="s1">&#39;m&#39;</span><span class="p">,</span> <span class="p">(</span><span class="mi">0</span><span class="p">,))</span>
         <span class="k">elif</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">strip</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">is_stream_closed</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">wrapped</span><span class="p">):</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">wrapped</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">Style</span><span class="o">.</span><span class="n">RESET_ALL</span><span class="p">)</span></div>
 
 
-<div class="viewcode-block" id="AnsiToWin32.write_and_convert"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.write_and_convert">[docs]</a>    <span class="k">def</span> <span class="nf">write_and_convert</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiToWin32.write_and_convert"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.write_and_convert">[docs]</a>    <span class="k">def</span> <span class="nf">write_and_convert</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
         <span class="sd">&#39;&#39;&#39;</span>
 <span class="sd">        Write the given text to our wrapped stream, stripping any ANSI</span>
 <span class="sd">        sequences from the text, and optionally converting them into win32</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">write_plain_text</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">cursor</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">text</span><span class="p">))</span></div>
 
 
-<div class="viewcode-block" id="AnsiToWin32.write_plain_text"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.write_plain_text">[docs]</a>    <span class="k">def</span> <span class="nf">write_plain_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">start</span><span class="p">,</span> <span class="n">end</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiToWin32.write_plain_text"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.write_plain_text">[docs]</a>    <span class="k">def</span> <span class="nf">write_plain_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">start</span><span class="p">,</span> <span class="n">end</span><span class="p">):</span>
         <span class="k">if</span> <span class="n">start</span> <span class="o">&lt;</span> <span class="n">end</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">wrapped</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">text</span><span class="p">[</span><span class="n">start</span><span class="p">:</span><span class="n">end</span><span class="p">])</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">wrapped</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span></div>
 
 
-<div class="viewcode-block" id="AnsiToWin32.convert_ansi"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.convert_ansi">[docs]</a>    <span class="k">def</span> <span class="nf">convert_ansi</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">paramstring</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiToWin32.convert_ansi"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.convert_ansi">[docs]</a>    <span class="k">def</span> <span class="nf">convert_ansi</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">paramstring</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">convert</span><span class="p">:</span>
             <span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">extract_params</span><span class="p">(</span><span class="n">command</span><span class="p">,</span> <span class="n">paramstring</span><span class="p">)</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">call_win32</span><span class="p">(</span><span class="n">command</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span></div>
 
 
-<div class="viewcode-block" id="AnsiToWin32.extract_params"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.extract_params">[docs]</a>    <span class="k">def</span> <span class="nf">extract_params</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">command</span><span class="p">,</span> <span class="n">paramstring</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiToWin32.extract_params"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.extract_params">[docs]</a>    <span class="k">def</span> <span class="nf">extract_params</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">command</span><span class="p">,</span> <span class="n">paramstring</span><span class="p">):</span>
         <span class="k">if</span> <span class="n">command</span> <span class="ow">in</span> <span class="s1">&#39;Hf&#39;</span><span class="p">:</span>
             <span class="n">params</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> <span class="o">!=</span> <span class="mi">0</span> <span class="k">else</span> <span class="mi">1</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">paramstring</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;;&#39;</span><span class="p">))</span>
             <span class="k">while</span> <span class="nb">len</span><span class="p">(</span><span class="n">params</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">2</span><span class="p">:</span>
         <span class="k">return</span> <span class="n">params</span></div>
 
 
-<div class="viewcode-block" id="AnsiToWin32.call_win32"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.call_win32">[docs]</a>    <span class="k">def</span> <span class="nf">call_win32</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">command</span><span class="p">,</span> <span class="n">params</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiToWin32.call_win32"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.call_win32">[docs]</a>    <span class="k">def</span> <span class="nf">call_win32</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">command</span><span class="p">,</span> <span class="n">params</span><span class="p">):</span>
         <span class="k">if</span> <span class="n">command</span> <span class="o">==</span> <span class="s1">&#39;m&#39;</span><span class="p">:</span>
             <span class="k">for</span> <span class="n">param</span> <span class="ow">in</span> <span class="n">params</span><span class="p">:</span>
                 <span class="k">if</span> <span class="n">param</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">win32_calls</span><span class="p">:</span>
             <span class="n">winterm</span><span class="o">.</span><span class="n">cursor_adjust</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">on_stderr</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">on_stderr</span><span class="p">)</span></div>
 
 
-<div class="viewcode-block" id="AnsiToWin32.convert_osc"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.convert_osc">[docs]</a>    <span class="k">def</span> <span class="nf">convert_osc</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
+<div class="viewcode-block" id="AnsiToWin32.convert_osc"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.convert_osc">[docs]</a>    <span class="k">def</span> <span class="nf">convert_osc</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
         <span class="k">for</span> <span class="n">match</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">ANSI_OSC_RE</span><span class="o">.</span><span class="n">finditer</span><span class="p">(</span><span class="n">text</span><span class="p">):</span>
             <span class="n">start</span><span class="p">,</span> <span class="n">end</span> <span class="o">=</span> <span class="n">match</span><span class="o">.</span><span class="n">span</span><span class="p">()</span>
             <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="p">[:</span><span class="n">start</span><span class="p">]</span> <span class="o">+</span> <span class="n">text</span><span class="p">[</span><span class="n">end</span><span class="p">:]</span>
index 347da846b12edcff65b2182f4a025dda315390fc..1062ef279eaf6f6f136c6294639b87021bd93a24 100644 (file)
 <span class="n">atexit_done</span> <span class="o">=</span> <span class="kc">False</span>
 
 
-<div class="viewcode-block" id="reset_all"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.initialise.reset_all">[docs]</a><span class="k">def</span> <span class="nf">reset_all</span><span class="p">():</span>
+<div class="viewcode-block" id="reset_all"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.initialise.reset_all">[docs]</a><span class="k">def</span> <span class="nf">reset_all</span><span class="p">():</span>
     <span class="k">if</span> <span class="n">AnsiToWin32</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>    <span class="c1"># Issue #74: objects might become None at exit</span>
         <span class="n">AnsiToWin32</span><span class="p">(</span><span class="n">orig_stdout</span><span class="p">)</span><span class="o">.</span><span class="n">reset_all</span><span class="p">()</span></div>
 
 
-<div class="viewcode-block" id="init"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.initialise.init">[docs]</a><span class="k">def</span> <span class="nf">init</span><span class="p">(</span><span class="n">autoreset</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">convert</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">strip</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">wrap</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+<div class="viewcode-block" id="init"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.initialise.init">[docs]</a><span class="k">def</span> <span class="nf">init</span><span class="p">(</span><span class="n">autoreset</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">convert</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">strip</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">wrap</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
 
     <span class="k">if</span> <span class="ow">not</span> <span class="n">wrap</span> <span class="ow">and</span> <span class="nb">any</span><span class="p">([</span><span class="n">autoreset</span><span class="p">,</span> <span class="n">convert</span><span class="p">,</span> <span class="n">strip</span><span class="p">]):</span>
         <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s1">&#39;wrap=False conflicts with any other arg=True&#39;</span><span class="p">)</span>
@@ -94,7 +94,7 @@
         <span class="n">atexit_done</span> <span class="o">=</span> <span class="kc">True</span></div>
 
 
-<div class="viewcode-block" id="deinit"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.initialise.deinit">[docs]</a><span class="k">def</span> <span class="nf">deinit</span><span class="p">():</span>
+<div class="viewcode-block" id="deinit"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.initialise.deinit">[docs]</a><span class="k">def</span> <span class="nf">deinit</span><span class="p">():</span>
     <span class="k">if</span> <span class="n">orig_stdout</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
         <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span> <span class="o">=</span> <span class="n">orig_stdout</span>
     <span class="k">if</span> <span class="n">orig_stderr</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
 
 
 <span class="nd">@contextlib</span><span class="o">.</span><span class="n">contextmanager</span>
-<div class="viewcode-block" id="colorama_text"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.initialise.colorama_text">[docs]</a><span class="k">def</span> <span class="nf">colorama_text</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+<div class="viewcode-block" id="colorama_text"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.initialise.colorama_text">[docs]</a><span class="k">def</span> <span class="nf">colorama_text</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
     <span class="n">init</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
     <span class="k">try</span><span class="p">:</span>
         <span class="k">yield</span>
         <span class="n">deinit</span><span class="p">()</span></div>
 
 
-<div class="viewcode-block" id="reinit"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.initialise.reinit">[docs]</a><span class="k">def</span> <span class="nf">reinit</span><span class="p">():</span>
+<div class="viewcode-block" id="reinit"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.initialise.reinit">[docs]</a><span class="k">def</span> <span class="nf">reinit</span><span class="p">():</span>
     <span class="k">if</span> <span class="n">wrapped_stdout</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
         <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span> <span class="o">=</span> <span class="n">wrapped_stdout</span>
     <span class="k">if</span> <span class="n">wrapped_stderr</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
         <span class="n">sys</span><span class="o">.</span><span class="n">stderr</span> <span class="o">=</span> <span class="n">wrapped_stderr</span></div>
 
 
-<div class="viewcode-block" id="wrap_stream"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.initialise.wrap_stream">[docs]</a><span class="k">def</span> <span class="nf">wrap_stream</span><span class="p">(</span><span class="n">stream</span><span class="p">,</span> <span class="n">convert</span><span class="p">,</span> <span class="n">strip</span><span class="p">,</span> <span class="n">autoreset</span><span class="p">,</span> <span class="n">wrap</span><span class="p">):</span>
+<div class="viewcode-block" id="wrap_stream"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.initialise.wrap_stream">[docs]</a><span class="k">def</span> <span class="nf">wrap_stream</span><span class="p">(</span><span class="n">stream</span><span class="p">,</span> <span class="n">convert</span><span class="p">,</span> <span class="n">strip</span><span class="p">,</span> <span class="n">autoreset</span><span class="p">,</span> <span class="n">wrap</span><span class="p">):</span>
     <span class="k">if</span> <span class="n">wrap</span><span class="p">:</span>
         <span class="n">wrapper</span> <span class="o">=</span> <span class="n">AnsiToWin32</span><span class="p">(</span><span class="n">stream</span><span class="p">,</span>
             <span class="n">convert</span><span class="o">=</span><span class="n">convert</span><span class="p">,</span> <span class="n">strip</span><span class="o">=</span><span class="n">strip</span><span class="p">,</span> <span class="n">autoreset</span><span class="o">=</span><span class="n">autoreset</span><span class="p">)</span>
index 50b3a539866c62b198ea1e27a0bd5dcec414baed..f86854c69e8c0639d25ef5b69ec90a06eb5c31c5 100644 (file)
         <span class="n">STDERR</span><span class="p">:</span> <span class="n">_GetStdHandle</span><span class="p">(</span><span class="n">STDERR</span><span class="p">),</span>
     <span class="p">}</span>
 
-<div class="viewcode-block" id="winapi_test"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.win32.winapi_test">[docs]</a>    <span class="k">def</span> <span class="nf">winapi_test</span><span class="p">():</span>
+<div class="viewcode-block" id="winapi_test"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.win32.winapi_test">[docs]</a>    <span class="k">def</span> <span class="nf">winapi_test</span><span class="p">():</span>
         <span class="n">handle</span> <span class="o">=</span> <span class="n">handles</span><span class="p">[</span><span class="n">STDOUT</span><span class="p">]</span>
         <span class="n">csbi</span> <span class="o">=</span> <span class="n">CONSOLE_SCREEN_BUFFER_INFO</span><span class="p">()</span>
         <span class="n">success</span> <span class="o">=</span> <span class="n">_GetConsoleScreenBufferInfo</span><span class="p">(</span>
             <span class="n">handle</span><span class="p">,</span> <span class="n">byref</span><span class="p">(</span><span class="n">csbi</span><span class="p">))</span>
         <span class="k">return</span> <span class="n">csbi</span>
 
-<div class="viewcode-block" id="SetConsoleTextAttribute"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.win32.SetConsoleTextAttribute">[docs]</a>    <span class="k">def</span> <span class="nf">SetConsoleTextAttribute</span><span class="p">(</span><span class="n">stream_id</span><span class="p">,</span> <span class="n">attrs</span><span class="p">):</span>
+<div class="viewcode-block" id="SetConsoleTextAttribute"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.win32.SetConsoleTextAttribute">[docs]</a>    <span class="k">def</span> <span class="nf">SetConsoleTextAttribute</span><span class="p">(</span><span class="n">stream_id</span><span class="p">,</span> <span class="n">attrs</span><span class="p">):</span>
         <span class="n">handle</span> <span class="o">=</span> <span class="n">handles</span><span class="p">[</span><span class="n">stream_id</span><span class="p">]</span>
         <span class="k">return</span> <span class="n">_SetConsoleTextAttribute</span><span class="p">(</span><span class="n">handle</span><span class="p">,</span> <span class="n">attrs</span><span class="p">)</span></div>
 
index ff1d0d4f2bfd310194ccf9bc60a637f07f1e890b..ba789038420f94f647e95ff49815209ff6c7528f 100644 (file)
@@ -49,7 +49,7 @@
 
 
 <span class="c1"># from wincon.h</span>
-<div class="viewcode-block" id="WinColor"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.winterm.WinColor">[docs]</a><span class="k">class</span> <span class="nc">WinColor</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="WinColor"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.winterm.WinColor">[docs]</a><span class="k">class</span> <span class="nc">WinColor</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
     <span class="n">BLACK</span>   <span class="o">=</span> <span class="mi">0</span>
     <span class="n">BLUE</span>    <span class="o">=</span> <span class="mi">1</span>
     <span class="n">GREEN</span>   <span class="o">=</span> <span class="mi">2</span>
     <span class="n">GREY</span>    <span class="o">=</span> <span class="mi">7</span></div>
 
 <span class="c1"># from wincon.h</span>
-<div class="viewcode-block" id="WinStyle"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.winterm.WinStyle">[docs]</a><span class="k">class</span> <span class="nc">WinStyle</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="WinStyle"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.winterm.WinStyle">[docs]</a><span class="k">class</span> <span class="nc">WinStyle</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
     <span class="n">NORMAL</span>              <span class="o">=</span> <span class="mh">0x00</span> <span class="c1"># dim text, dim background</span>
     <span class="n">BRIGHT</span>              <span class="o">=</span> <span class="mh">0x08</span> <span class="c1"># bright text, dim background</span>
     <span class="n">BRIGHT_BACKGROUND</span>   <span class="o">=</span> <span class="mh">0x80</span> <span class="c1"># dim text, bright background</span></div>
 
-<div class="viewcode-block" id="WinTerm"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm">[docs]</a><span class="k">class</span> <span class="nc">WinTerm</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="WinTerm"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm">[docs]</a><span class="k">class</span> <span class="nc">WinTerm</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
 
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_default</span> <span class="o">=</span> <span class="n">win32</span><span class="o">.</span><span class="n">GetConsoleScreenBufferInfo</span><span class="p">(</span><span class="n">win32</span><span class="o">.</span><span class="n">STDOUT</span><span class="p">)</span><span class="o">.</span><span class="n">wAttributes</span>
         <span class="c1"># and BRIGHT is overwritten by Style codes.</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_light</span> <span class="o">=</span> <span class="mi">0</span>
 
-<div class="viewcode-block" id="WinTerm.get_attrs"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.get_attrs">[docs]</a>    <span class="k">def</span> <span class="nf">get_attrs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="WinTerm.get_attrs"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.get_attrs">[docs]</a>    <span class="k">def</span> <span class="nf">get_attrs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_fore</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">_back</span> <span class="o">*</span> <span class="mi">16</span> <span class="o">+</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_style</span> <span class="o">|</span> <span class="bp">self</span><span class="o">.</span><span class="n">_light</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="WinTerm.set_attrs"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.set_attrs">[docs]</a>    <span class="k">def</span> <span class="nf">set_attrs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
+<div class="viewcode-block" id="WinTerm.set_attrs"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.set_attrs">[docs]</a>    <span class="k">def</span> <span class="nf">set_attrs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_fore</span> <span class="o">=</span> <span class="n">value</span> <span class="o">&amp;</span> <span class="mi">7</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_back</span> <span class="o">=</span> <span class="p">(</span><span class="n">value</span> <span class="o">&gt;&gt;</span> <span class="mi">4</span><span class="p">)</span> <span class="o">&amp;</span> <span class="mi">7</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_style</span> <span class="o">=</span> <span class="n">value</span> <span class="o">&amp;</span> <span class="p">(</span><span class="n">WinStyle</span><span class="o">.</span><span class="n">BRIGHT</span> <span class="o">|</span> <span class="n">WinStyle</span><span class="o">.</span><span class="n">BRIGHT_BACKGROUND</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="WinTerm.reset_all"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.reset_all">[docs]</a>    <span class="k">def</span> <span class="nf">reset_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">on_stderr</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="WinTerm.reset_all"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.reset_all">[docs]</a>    <span class="k">def</span> <span class="nf">reset_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">on_stderr</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">set_attrs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_default</span><span class="p">)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">set_console</span><span class="p">(</span><span class="n">attrs</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_default</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="WinTerm.fore"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.fore">[docs]</a>    <span class="k">def</span> <span class="nf">fore</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fore</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">light</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">on_stderr</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+<div class="viewcode-block" id="WinTerm.fore"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.fore">[docs]</a>    <span class="k">def</span> <span class="nf">fore</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fore</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">light</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">on_stderr</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
         <span class="k">if</span> <span class="n">fore</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
             <span class="n">fore</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_default_fore</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_fore</span> <span class="o">=</span> <span class="n">fore</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">_light</span> <span class="o">&amp;=</span> <span class="o">~</span><span class="n">WinStyle</span><span class="o">.</span><span class="n">BRIGHT</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">set_console</span><span class="p">(</span><span class="n">on_stderr</span><span class="o">=</span><span class="n">on_stderr</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="WinTerm.back"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.back">[docs]</a>    <span class="k">def</span> <span class="nf">back</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">back</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">light</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">on_stderr</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+<div class="viewcode-block" id="WinTerm.back"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.back">[docs]</a>    <span class="k">def</span> <span class="nf">back</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">back</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">light</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">on_stderr</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
         <span class="k">if</span> <span class="n">back</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
             <span class="n">back</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_default_back</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_back</span> <span class="o">=</span> <span class="n">back</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">_light</span> <span class="o">&amp;=</span> <span class="o">~</span><span class="n">WinStyle</span><span class="o">.</span><span class="n">BRIGHT_BACKGROUND</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">set_console</span><span class="p">(</span><span class="n">on_stderr</span><span class="o">=</span><span class="n">on_stderr</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="WinTerm.style"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.style">[docs]</a>    <span class="k">def</span> <span class="nf">style</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">on_stderr</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+<div class="viewcode-block" id="WinTerm.style"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.style">[docs]</a>    <span class="k">def</span> <span class="nf">style</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">on_stderr</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
         <span class="k">if</span> <span class="n">style</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
             <span class="n">style</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_default_style</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_style</span> <span class="o">=</span> <span class="n">style</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">set_console</span><span class="p">(</span><span class="n">on_stderr</span><span class="o">=</span><span class="n">on_stderr</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="WinTerm.set_console"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.set_console">[docs]</a>    <span class="k">def</span> <span class="nf">set_console</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">attrs</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">on_stderr</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+<div class="viewcode-block" id="WinTerm.set_console"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.set_console">[docs]</a>    <span class="k">def</span> <span class="nf">set_console</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">attrs</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">on_stderr</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
         <span class="k">if</span> <span class="n">attrs</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
             <span class="n">attrs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_attrs</span><span class="p">()</span>
         <span class="n">handle</span> <span class="o">=</span> <span class="n">win32</span><span class="o">.</span><span class="n">STDOUT</span>
             <span class="n">handle</span> <span class="o">=</span> <span class="n">win32</span><span class="o">.</span><span class="n">STDERR</span>
         <span class="n">win32</span><span class="o">.</span><span class="n">SetConsoleTextAttribute</span><span class="p">(</span><span class="n">handle</span><span class="p">,</span> <span class="n">attrs</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="WinTerm.get_position"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.get_position">[docs]</a>    <span class="k">def</span> <span class="nf">get_position</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">handle</span><span class="p">):</span>
+<div class="viewcode-block" id="WinTerm.get_position"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.get_position">[docs]</a>    <span class="k">def</span> <span class="nf">get_position</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">handle</span><span class="p">):</span>
         <span class="n">position</span> <span class="o">=</span> <span class="n">win32</span><span class="o">.</span><span class="n">GetConsoleScreenBufferInfo</span><span class="p">(</span><span class="n">handle</span><span class="p">)</span><span class="o">.</span><span class="n">dwCursorPosition</span>
         <span class="c1"># Because Windows coordinates are 0-based,</span>
         <span class="c1"># and win32.SetConsoleCursorPosition expects 1-based.</span>
         <span class="n">position</span><span class="o">.</span><span class="n">Y</span> <span class="o">+=</span> <span class="mi">1</span>
         <span class="k">return</span> <span class="n">position</span></div>
 
-<div class="viewcode-block" id="WinTerm.set_cursor_position"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.set_cursor_position">[docs]</a>    <span class="k">def</span> <span class="nf">set_cursor_position</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">position</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">on_stderr</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+<div class="viewcode-block" id="WinTerm.set_cursor_position"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.set_cursor_position">[docs]</a>    <span class="k">def</span> <span class="nf">set_cursor_position</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">position</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">on_stderr</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
         <span class="k">if</span> <span class="n">position</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
             <span class="c1"># I&#39;m not currently tracking the position, so there is no default.</span>
             <span class="c1"># position = self.get_position()</span>
             <span class="n">handle</span> <span class="o">=</span> <span class="n">win32</span><span class="o">.</span><span class="n">STDERR</span>
         <span class="n">win32</span><span class="o">.</span><span class="n">SetConsoleCursorPosition</span><span class="p">(</span><span class="n">handle</span><span class="p">,</span> <span class="n">position</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="WinTerm.cursor_adjust"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.cursor_adjust">[docs]</a>    <span class="k">def</span> <span class="nf">cursor_adjust</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">on_stderr</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+<div class="viewcode-block" id="WinTerm.cursor_adjust"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.cursor_adjust">[docs]</a>    <span class="k">def</span> <span class="nf">cursor_adjust</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">on_stderr</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
         <span class="n">handle</span> <span class="o">=</span> <span class="n">win32</span><span class="o">.</span><span class="n">STDOUT</span>
         <span class="k">if</span> <span class="n">on_stderr</span><span class="p">:</span>
             <span class="n">handle</span> <span class="o">=</span> <span class="n">win32</span><span class="o">.</span><span class="n">STDERR</span>
         <span class="n">adjusted_position</span> <span class="o">=</span> <span class="p">(</span><span class="n">position</span><span class="o">.</span><span class="n">Y</span> <span class="o">+</span> <span class="n">y</span><span class="p">,</span> <span class="n">position</span><span class="o">.</span><span class="n">X</span> <span class="o">+</span> <span class="n">x</span><span class="p">)</span>
         <span class="n">win32</span><span class="o">.</span><span class="n">SetConsoleCursorPosition</span><span class="p">(</span><span class="n">handle</span><span class="p">,</span> <span class="n">adjusted_position</span><span class="p">,</span> <span class="n">adjust</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="WinTerm.erase_screen"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.erase_screen">[docs]</a>    <span class="k">def</span> <span class="nf">erase_screen</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">on_stderr</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+<div class="viewcode-block" id="WinTerm.erase_screen"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.erase_screen">[docs]</a>    <span class="k">def</span> <span class="nf">erase_screen</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">on_stderr</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
         <span class="c1"># 0 should clear from the cursor to the end of the screen.</span>
         <span class="c1"># 1 should clear from the cursor to the beginning of the screen.</span>
         <span class="c1"># 2 should clear the entire screen, and move cursor to (1,1)</span>
             <span class="c1"># put the cursor where needed</span>
             <span class="n">win32</span><span class="o">.</span><span class="n">SetConsoleCursorPosition</span><span class="p">(</span><span class="n">handle</span><span class="p">,</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span></div>
 
-<div class="viewcode-block" id="WinTerm.erase_line"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.erase_line">[docs]</a>    <span class="k">def</span> <span class="nf">erase_line</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">on_stderr</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+<div class="viewcode-block" id="WinTerm.erase_line"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.erase_line">[docs]</a>    <span class="k">def</span> <span class="nf">erase_line</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">on_stderr</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
         <span class="c1"># 0 should clear from the cursor to the end of the line.</span>
         <span class="c1"># 1 should clear from the cursor to the beginning of the line.</span>
         <span class="c1"># 2 should clear the entire line.</span>
         <span class="c1"># now set the buffer&#39;s attributes accordingly</span>
         <span class="n">win32</span><span class="o">.</span><span class="n">FillConsoleOutputAttribute</span><span class="p">(</span><span class="n">handle</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_attrs</span><span class="p">(),</span> <span class="n">cells_to_erase</span><span class="p">,</span> <span class="n">from_coord</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="WinTerm.set_title"><a class="viewcode-back" href="../../../commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.set_title">[docs]</a>    <span class="k">def</span> <span class="nf">set_title</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">title</span><span class="p">):</span>
+<div class="viewcode-block" id="WinTerm.set_title"><a class="viewcode-back" href="../../../apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.set_title">[docs]</a>    <span class="k">def</span> <span class="nf">set_title</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">title</span><span class="p">):</span>
         <span class="n">win32</span><span class="o">.</span><span class="n">SetConsoleTitle</span><span class="p">(</span><span class="n">title</span><span class="p">)</span></div></div>
 </pre></div>
 
index b84094dd88354bca4541341c2eee79e0e59c73b4..86b5dc871e96308b9ed714fa45a1b474bf9ef476 100644 (file)
   <span class="p">(</span><span class="s2">&quot;&lt;KO&gt;&quot;</span><span class="p">,</span> <span class="s2">&quot;KO&quot;</span><span class="p">),</span>
 <span class="p">)</span> <span class="p">)</span>
 
-<div class="viewcode-block" id="indent"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.coloringSat.indent">[docs]</a><span class="k">def</span> <span class="nf">indent</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">nb</span><span class="p">,</span> <span class="n">car</span><span class="o">=</span><span class="s2">&quot; &quot;</span><span class="p">):</span>
+<div class="viewcode-block" id="indent"><a class="viewcode-back" href="../../apidoc_src/src.html#src.coloringSat.indent">[docs]</a><span class="k">def</span> <span class="nf">indent</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">nb</span><span class="p">,</span> <span class="n">car</span><span class="o">=</span><span class="s2">&quot; &quot;</span><span class="p">):</span>
   <span class="sd">&quot;&quot;&quot;indent nb car (spaces) multi lines message except first one&quot;&quot;&quot;</span>
   <span class="n">s</span> <span class="o">=</span> <span class="n">msg</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
   <span class="n">res</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">+</span><span class="n">car</span><span class="o">*</span><span class="n">nb</span><span class="p">)</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
   <span class="k">return</span> <span class="n">res</span></div>
 
-<div class="viewcode-block" id="log"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.coloringSat.log">[docs]</a><span class="k">def</span> <span class="nf">log</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="log"><a class="viewcode-back" href="../../apidoc_src/src.html#src.coloringSat.log">[docs]</a><span class="k">def</span> <span class="nf">log</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
   <span class="sd">&quot;&quot;&quot;elementary log stdout for debug if _verbose&quot;&quot;&quot;</span>
   <span class="n">prefix</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">.log: &quot;</span> <span class="o">%</span> <span class="n">_name</span>
   <span class="n">nb</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">prefix</span><span class="p">)</span>
       <span class="n">res</span> <span class="o">=</span> <span class="n">res</span> <span class="o">+</span> <span class="n">toColor</span><span class="p">(</span><span class="s2">&quot;&lt;reset&gt;&quot;</span><span class="p">)</span>
     <span class="nb">print</span><span class="p">(</span><span class="n">res</span><span class="p">)</span></div>
   
-<div class="viewcode-block" id="ColoringStream"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.coloringSat.ColoringStream">[docs]</a><span class="k">class</span> <span class="nc">ColoringStream</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="ColoringStream"><a class="viewcode-back" href="../../apidoc_src/src.html#src.coloringSat.ColoringStream">[docs]</a><span class="k">class</span> <span class="nc">ColoringStream</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
   <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">  write my stream class</span>
 <span class="sd">  only write and flush are used for the streaming</span>
   <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
     <span class="bp">self</span><span class="o">.</span><span class="n">logs</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
 
-<div class="viewcode-block" id="ColoringStream.write"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.coloringSat.ColoringStream.write">[docs]</a>  <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">astr</span><span class="p">):</span>
+<div class="viewcode-block" id="ColoringStream.write"><a class="viewcode-back" href="../../apidoc_src/src.html#src.coloringSat.ColoringStream.write">[docs]</a>  <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">astr</span><span class="p">):</span>
     <span class="c1"># log(&quot;UnittestStream.write(&#39;%s&#39;)&quot; % astr)</span>
     <span class="bp">self</span><span class="o">.</span><span class="n">logs</span> <span class="o">+=</span> <span class="n">astr</span></div>
 
-<div class="viewcode-block" id="ColoringStream.flush"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.coloringSat.ColoringStream.flush">[docs]</a>  <span class="k">def</span> <span class="nf">flush</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="ColoringStream.flush"><a class="viewcode-back" href="../../apidoc_src/src.html#src.coloringSat.ColoringStream.flush">[docs]</a>  <span class="k">def</span> <span class="nf">flush</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
     <span class="k">pass</span></div>
 
   <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
     <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">logs</span></div>
 
-<div class="viewcode-block" id="toColor"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.coloringSat.toColor">[docs]</a><span class="k">def</span> <span class="nf">toColor</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="toColor"><a class="viewcode-back" href="../../apidoc_src/src.html#src.coloringSat.toColor">[docs]</a><span class="k">def</span> <span class="nf">toColor</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
   <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">  automatically clean the message of color tags &#39;&lt;red&gt; ... </span>
 <span class="sd">  if the terminal output stdout is redirected by user</span>
   <span class="k">else</span><span class="p">:</span>
     <span class="k">return</span> <span class="n">replace</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">_tags</span><span class="p">)</span></div>
     
-<div class="viewcode-block" id="cleanColors"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.coloringSat.cleanColors">[docs]</a><span class="k">def</span> <span class="nf">cleanColors</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="cleanColors"><a class="viewcode-back" href="../../apidoc_src/src.html#src.coloringSat.cleanColors">[docs]</a><span class="k">def</span> <span class="nf">cleanColors</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
   <span class="sd">&quot;&quot;&quot;clean the message of color tags &#39;&lt;red&gt; ... &quot;&quot;&quot;</span>
   <span class="k">return</span> <span class="n">replace</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">_tagsNone</span><span class="p">)</span></div>
   
-<div class="viewcode-block" id="toColor_AnsiToWin32"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.coloringSat.toColor_AnsiToWin32">[docs]</a><span class="k">def</span> <span class="nf">toColor_AnsiToWin32</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="toColor_AnsiToWin32"><a class="viewcode-back" href="../../apidoc_src/src.html#src.coloringSat.toColor_AnsiToWin32">[docs]</a><span class="k">def</span> <span class="nf">toColor_AnsiToWin32</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
   <span class="sd">&quot;&quot;&quot;for test debug no wrapping&quot;&quot;&quot;</span>
   <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="s1">&#39;isatty&#39;</span> <span class="ow">in</span> <span class="nb">dir</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">)</span> <span class="ow">and</span> <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">isatty</span><span class="p">()):</span>
     <span class="c1"># clean the message color if the terminal is redirected by user</span>
     <span class="c1"># print &quot;streamOut&quot;,str(streamOut)</span>
     <span class="k">return</span> <span class="nb">str</span><span class="p">(</span><span class="n">streamOut</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="replace"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.coloringSat.replace">[docs]</a><span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">tags</span><span class="p">):</span>
+<div class="viewcode-block" id="replace"><a class="viewcode-back" href="../../apidoc_src/src.html#src.coloringSat.replace">[docs]</a><span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">tags</span><span class="p">):</span>
   <span class="n">s</span> <span class="o">=</span> <span class="n">msg</span>
   <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">tags</span><span class="p">:</span>
     <span class="n">s</span> <span class="o">=</span> <span class="n">s</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="o">*</span><span class="n">r</span><span class="p">)</span>
index eb96ae8f5d9b2b02e044996bb326e41c02366fda..c7f6e700447a7571359d0b5572f564242312ceb6 100644 (file)
@@ -79,8 +79,9 @@
                       <span class="s2">&quot;LIBS&quot;</span><span class="p">,</span>
                       <span class="s2">&quot;LDFLAGS&quot;</span><span class="p">]</span>
 
-<div class="viewcode-block" id="Builder"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.compilation.Builder">[docs]</a><span class="k">class</span> <span class="nc">Builder</span><span class="p">:</span>
-    <span class="sd">&quot;&quot;&quot;Class to handle all construction steps, like cmake, configure, make, ...</span>
+<div class="viewcode-block" id="Builder"><a class="viewcode-back" href="../../apidoc_src/src.html#src.compilation.Builder">[docs]</a><span class="k">class</span> <span class="nc">Builder</span><span class="p">:</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Class to handle all construction steps, like cmake, configure, make, ...</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
                  <span class="n">config</span><span class="p">,</span>
         <span class="k">if</span> <span class="s2">&quot;debug&quot;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">product_info</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">product_info</span><span class="o">.</span><span class="n">debug</span> <span class="o">==</span> <span class="s2">&quot;yes&quot;</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">debug_mode</span> <span class="o">=</span> <span class="kc">True</span>
 
-<div class="viewcode-block" id="Builder.log"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.compilation.Builder.log">[docs]</a>    <span class="k">def</span> <span class="nf">log</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">level</span><span class="p">,</span> <span class="n">showInfo</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+<div class="viewcode-block" id="Builder.log"><a class="viewcode-back" href="../../apidoc_src/src.html#src.compilation.Builder.log">[docs]</a>    <span class="k">def</span> <span class="nf">log</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">level</span><span class="p">,</span> <span class="n">showInfo</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Shortcut method to log in log file.&quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">logTxtFile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">cleancolor</span><span class="p">(</span><span class="n">text</span><span class="p">))</span></div>
 
-<div class="viewcode-block" id="Builder.log_command"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.compilation.Builder.log_command">[docs]</a>    <span class="k">def</span> <span class="nf">log_command</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
+<div class="viewcode-block" id="Builder.log_command"><a class="viewcode-back" href="../../apidoc_src/src.html#src.compilation.Builder.log_command">[docs]</a>    <span class="k">def</span> <span class="nf">log_command</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Shortcut method to log a command.&quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="s2">&quot;&gt; </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">command</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Builder.prepare"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.compilation.Builder.prepare">[docs]</a>    <span class="k">def</span> <span class="nf">prepare</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="sd">&quot;&quot;&quot;\</span>
+<div class="viewcode-block" id="Builder.prepare"><a class="viewcode-back" href="../../apidoc_src/src.html#src.compilation.Builder.prepare">[docs]</a>    <span class="k">def</span> <span class="nf">prepare</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Prepares the environment.</span>
 <span class="sd">        Build two environment: one for building and one for testing (launch).</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
     <span class="c1">##</span>
     <span class="c1"># Runs cmake with the given options.</span>
-<div class="viewcode-block" id="Builder.cmake"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.compilation.Builder.cmake">[docs]</a>    <span class="k">def</span> <span class="nf">cmake</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
+<div class="viewcode-block" id="Builder.cmake"><a class="viewcode-back" href="../../apidoc_src/src.html#src.compilation.Builder.cmake">[docs]</a>    <span class="k">def</span> <span class="nf">cmake</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
 
         <span class="n">cmake_option</span> <span class="o">=</span> <span class="n">options</span>
         <span class="c1"># cmake_option +=&#39; -DCMAKE_VERBOSE_MAKEFILE=ON -DSALOME_CMAKE_DEBUG=ON&#39;</span>
 
     <span class="c1">##</span>
     <span class="c1"># Runs build_configure with the given options.</span>
-<div class="viewcode-block" id="Builder.build_configure"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.compilation.Builder.build_configure">[docs]</a>    <span class="k">def</span> <span class="nf">build_configure</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
+<div class="viewcode-block" id="Builder.build_configure"><a class="viewcode-back" href="../../apidoc_src/src.html#src.compilation.Builder.build_configure">[docs]</a>    <span class="k">def</span> <span class="nf">build_configure</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
 
         <span class="k">if</span> <span class="s1">&#39;buildconfigure_options&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">product_info</span><span class="p">:</span>
             <span class="n">options</span> <span class="o">+=</span> <span class="s2">&quot; </span><span class="si">%s</span><span class="s2"> &quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">product_info</span><span class="o">.</span><span class="n">buildconfigure_options</span>
 
     <span class="c1">##</span>
     <span class="c1"># Runs configure with the given options.</span>
-<div class="viewcode-block" id="Builder.configure"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.compilation.Builder.configure">[docs]</a>    <span class="k">def</span> <span class="nf">configure</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
+<div class="viewcode-block" id="Builder.configure"><a class="viewcode-back" href="../../apidoc_src/src.html#src.compilation.Builder.configure">[docs]</a>    <span class="k">def</span> <span class="nf">configure</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
 
         <span class="k">if</span> <span class="s1">&#39;configure_options&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">product_info</span><span class="p">:</span>
             <span class="n">options</span> <span class="o">+=</span> <span class="s2">&quot; </span><span class="si">%s</span><span class="s2"> &quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">product_info</span><span class="o">.</span><span class="n">configure_options</span>
         <span class="k">else</span><span class="p">:</span>
             <span class="k">return</span> <span class="mi">1</span></div>
 
-<div class="viewcode-block" id="Builder.hack_libtool"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.compilation.Builder.hack_libtool">[docs]</a>    <span class="k">def</span> <span class="nf">hack_libtool</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Builder.hack_libtool"><a class="viewcode-back" href="../../apidoc_src/src.html#src.compilation.Builder.hack_libtool">[docs]</a>    <span class="k">def</span> <span class="nf">hack_libtool</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">build_dir</span> <span class="o">+</span> <span class="s1">&#39;libtool&#39;</span><span class="p">)):</span>
             <span class="k">return</span>
 
 
     <span class="c1">##</span>
     <span class="c1"># Runs make to build the module.</span>
-<div class="viewcode-block" id="Builder.make"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.compilation.Builder.make">[docs]</a>    <span class="k">def</span> <span class="nf">make</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nb_proc</span><span class="p">,</span> <span class="n">make_opt</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
+<div class="viewcode-block" id="Builder.make"><a class="viewcode-back" href="../../apidoc_src/src.html#src.compilation.Builder.make">[docs]</a>    <span class="k">def</span> <span class="nf">make</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nb_proc</span><span class="p">,</span> <span class="n">make_opt</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
 
         <span class="c1"># make</span>
         <span class="n">command</span> <span class="o">=</span> <span class="s1">&#39;make&#39;</span>
     
     <span class="c1">##</span>
     <span class="c1"># Runs msbuild to build the module.</span>
-<div class="viewcode-block" id="Builder.wmake"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.compilation.Builder.wmake">[docs]</a>    <span class="k">def</span> <span class="nf">wmake</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">nb_proc</span><span class="p">,</span> <span class="n">opt_nb_proc</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="Builder.wmake"><a class="viewcode-back" href="../../apidoc_src/src.html#src.compilation.Builder.wmake">[docs]</a>    <span class="k">def</span> <span class="nf">wmake</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">nb_proc</span><span class="p">,</span> <span class="n">opt_nb_proc</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
 
         <span class="n">hh</span> <span class="o">=</span> <span class="s1">&#39;MSBUILD /m:</span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">nb_proc</span><span class="p">)</span>
         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">debug_mode</span><span class="p">:</span>
 
     <span class="c1">##</span>
     <span class="c1"># Runs &#39;make install&#39;.</span>
-<div class="viewcode-block" id="Builder.install"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.compilation.Builder.install">[docs]</a>    <span class="k">def</span> <span class="nf">install</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Builder.install"><a class="viewcode-back" href="../../apidoc_src/src.html#src.compilation.Builder.install">[docs]</a>    <span class="k">def</span> <span class="nf">install</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">dist_name</span><span class="o">==</span><span class="s2">&quot;Win&quot;</span><span class="p">:</span>
             <span class="n">command</span> <span class="o">=</span> <span class="s1">&#39;msbuild INSTALL.vcxproj&#39;</span>
             <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">debug_mode</span><span class="p">:</span>
 
     <span class="c1">##</span>
     <span class="c1"># Runs &#39;make_check&#39;.</span>
-<div class="viewcode-block" id="Builder.check"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.compilation.Builder.check">[docs]</a>    <span class="k">def</span> <span class="nf">check</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">command</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
+<div class="viewcode-block" id="Builder.check"><a class="viewcode-back" href="../../apidoc_src/src.html#src.compilation.Builder.check">[docs]</a>    <span class="k">def</span> <span class="nf">check</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">command</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
         <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">architecture</span><span class="o">.</span><span class="n">is_windows</span><span class="p">():</span>
             <span class="n">cmd</span> <span class="o">=</span> <span class="s1">&#39;msbuild RUN_TESTS.vcxproj&#39;</span>
         <span class="k">else</span> <span class="p">:</span>
       
     <span class="c1">##</span>
     <span class="c1"># Performs a default build for this module.</span>
-<div class="viewcode-block" id="Builder.do_default_build"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.compilation.Builder.do_default_build">[docs]</a>    <span class="k">def</span> <span class="nf">do_default_build</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
+<div class="viewcode-block" id="Builder.do_default_build"><a class="viewcode-back" href="../../apidoc_src/src.html#src.compilation.Builder.do_default_build">[docs]</a>    <span class="k">def</span> <span class="nf">do_default_build</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
                          <span class="n">build_conf_options</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span>
                          <span class="n">configure_options</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span>
                          <span class="n">show_warning</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
 
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_result</span><span class="p">()</span></div>
 
-<div class="viewcode-block" id="Builder.do_python_script_build"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.compilation.Builder.do_python_script_build">[docs]</a>    <span class="k">def</span> <span class="nf">do_python_script_build</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">script</span><span class="p">,</span> <span class="n">nb_proc</span><span class="p">):</span>
+<div class="viewcode-block" id="Builder.do_python_script_build"><a class="viewcode-back" href="../../apidoc_src/src.html#src.compilation.Builder.do_python_script_build">[docs]</a>    <span class="k">def</span> <span class="nf">do_python_script_build</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">script</span><span class="p">,</span> <span class="n">nb_proc</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Performs a build with a script.&quot;&quot;&quot;</span>
         <span class="c1"># script found</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Compile </span><span class="si">%s</span><span class="s2"> using script </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> \
             <span class="bp">self</span><span class="o">.</span><span class="n">put_txt_log_in_appli_log_dir</span><span class="p">(</span><span class="s2">&quot;script&quot;</span><span class="p">)</span>
         <span class="k">return</span> <span class="n">retcode</span></div>
 
-<div class="viewcode-block" id="Builder.complete_environment"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.compilation.Builder.complete_environment">[docs]</a>    <span class="k">def</span> <span class="nf">complete_environment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">make_options</span><span class="p">):</span>
+<div class="viewcode-block" id="Builder.complete_environment"><a class="viewcode-back" href="../../apidoc_src/src.html#src.compilation.Builder.complete_environment">[docs]</a>    <span class="k">def</span> <span class="nf">complete_environment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">make_options</span><span class="p">):</span>
         <span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">build_environ</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
         <span class="c1"># pass additional variables to environment </span>
         <span class="c1"># (may be used by the build script)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">build_environ</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;DIST&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">dist</span><span class="p">)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">build_environ</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;VERSION&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">product_info</span><span class="o">.</span><span class="n">version</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Builder.do_batch_script_build"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.compilation.Builder.do_batch_script_build">[docs]</a>    <span class="k">def</span> <span class="nf">do_batch_script_build</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">script</span><span class="p">,</span> <span class="n">nb_proc</span><span class="p">):</span>
+<div class="viewcode-block" id="Builder.do_batch_script_build"><a class="viewcode-back" href="../../apidoc_src/src.html#src.compilation.Builder.do_batch_script_build">[docs]</a>    <span class="k">def</span> <span class="nf">do_batch_script_build</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">script</span><span class="p">,</span> <span class="n">nb_proc</span><span class="p">):</span>
 
         <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">architecture</span><span class="o">.</span><span class="n">is_windows</span><span class="p">():</span>
             <span class="n">make_options</span> <span class="o">=</span> <span class="s2">&quot;/maxcpucount:</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">nb_proc</span>
         <span class="k">else</span><span class="p">:</span>
             <span class="k">return</span> <span class="mi">1</span></div>
     
-<div class="viewcode-block" id="Builder.do_script_build"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.compilation.Builder.do_script_build">[docs]</a>    <span class="k">def</span> <span class="nf">do_script_build</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">script</span><span class="p">,</span> <span class="n">number_of_proc</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+<div class="viewcode-block" id="Builder.do_script_build"><a class="viewcode-back" href="../../apidoc_src/src.html#src.compilation.Builder.do_script_build">[docs]</a>    <span class="k">def</span> <span class="nf">do_script_build</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">script</span><span class="p">,</span> <span class="n">number_of_proc</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
         <span class="c1"># define make options (may not be used by the script)</span>
         <span class="k">if</span> <span class="n">number_of_proc</span><span class="o">==</span><span class="mi">0</span><span class="p">:</span>
             <span class="n">nb_proc</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_cfg_param</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">product_info</span><span class="p">,</span><span class="s2">&quot;nb_proc&quot;</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
         <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;The script </span><span class="si">%s</span><span class="s2"> must have .sh, .bat or .py extension.&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">script</span>
         <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span></div>
     
-<div class="viewcode-block" id="Builder.put_txt_log_in_appli_log_dir"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.compilation.Builder.put_txt_log_in_appli_log_dir">[docs]</a>    <span class="k">def</span> <span class="nf">put_txt_log_in_appli_log_dir</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_name</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Put the txt log (that contain the system logs, like make command</span>
-<span class="sd">           output) in the directory &lt;APPLICATION DIR&gt;/LOGS/&lt;product_name&gt;/</span>
+<div class="viewcode-block" id="Builder.put_txt_log_in_appli_log_dir"><a class="viewcode-back" href="../../apidoc_src/src.html#src.compilation.Builder.put_txt_log_in_appli_log_dir">[docs]</a>    <span class="k">def</span> <span class="nf">put_txt_log_in_appli_log_dir</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_name</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Put the txt log (that contain the system logs, like make command output)</span>
+<span class="sd">        in the directory &lt;APPLICATION DIR&gt;/LOGS/&lt;product_name&gt;/</span>
 <span class="sd">    </span>
-<span class="sd">        :param file_name Str: the name of the file to write</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param file_name: (str) The name of the file to write</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">logTxtFile</span> <span class="o">==</span> <span class="n">sys</span><span class="o">.</span><span class="n">__stdout__</span><span class="p">:</span>
             <span class="k">return</span>
-        <span class="n">dir_where_to_put</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span>
-                                        <span class="s2">&quot;LOGS&quot;</span><span class="p">,</span>
-                                        <span class="bp">self</span><span class="o">.</span><span class="n">product_info</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+        <span class="n">dir_where_to_put</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span> <span class="s2">&quot;LOGS&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">product_info</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
         <span class="n">file_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">dir_where_to_put</span><span class="p">,</span> <span class="n">file_name</span><span class="p">)</span>
         <span class="n">UTS</span><span class="o">.</span><span class="n">ensure_path_exists</span><span class="p">(</span><span class="n">dir_where_to_put</span><span class="p">)</span>
         <span class="c1"># write the logTxtFile copy it to the destination, and then recreate </span>
index be2cf3cf3807cec99e4dd7e306662175782b79f4..e789a1b05f4f3cb91265dbe5a3de3644e72b722e 100644 (file)
 <span class="kn">import</span> <span class="nn">src.utilsSat</span> <span class="k">as</span> <span class="nn">UTS</span>
 <span class="kn">import</span> <span class="nn">src.pyconf</span> <span class="k">as</span> <span class="nn">PYCONF</span>
 
-<div class="viewcode-block" id="ConfigOpener"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.configManager.ConfigOpener">[docs]</a><span class="k">class</span> <span class="nc">ConfigOpener</span><span class="p">:</span>
+<div class="viewcode-block" id="ConfigOpener"><a class="viewcode-back" href="../../apidoc_src/src.html#src.configManager.ConfigOpener">[docs]</a><span class="k">class</span> <span class="nc">ConfigOpener</span><span class="p">:</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Class that helps to find an application pyconf </span>
 <span class="sd">    in all the possible directories (pathList)</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pathList</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Initialization</span>
+        <span class="sd">&quot;&quot;&quot;Initialization</span>
 <span class="sd">        </span>
-<span class="sd">        :param pathList list: The list of paths where to search a pyconf.</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param pathList: (list) </span>
+<span class="sd">          The list of paths where to search a pyconf.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">pathList</span> <span class="o">=</span> <span class="n">pathList</span>
 
     <span class="k">def</span> <span class="nf">__call__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
                         <span class="nb">open</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">name</span><span class="p">),</span> <span class="n">name</span> <span class="p">),</span> <span class="s1">&#39;rb&#39;</span><span class="p">)</span> <span class="p">)</span>
         <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Configuration file &#39;</span><span class="si">%s</span><span class="s2">&#39; not found&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">name</span><span class="p">)</span>
 
-<div class="viewcode-block" id="ConfigOpener.get_path"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.configManager.ConfigOpener.get_path">[docs]</a>    <span class="k">def</span> <span class="nf">get_path</span><span class="p">(</span> <span class="bp">self</span><span class="p">,</span> <span class="n">name</span> <span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;The method that returns the entire path of the pyconf searched</span>
-<span class="sd">        :param name str: The name of the searched pyconf.</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<div class="viewcode-block" id="ConfigOpener.get_path"><a class="viewcode-back" href="../../apidoc_src/src.html#src.configManager.ConfigOpener.get_path">[docs]</a>    <span class="k">def</span> <span class="nf">get_path</span><span class="p">(</span> <span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;The method that returns the entire path of the pyconf searched</span>
+<span class="sd">        </span>
+<span class="sd">        :param name: (str) The name of the searched pyconf.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">for</span> <span class="n">path</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">pathList</span><span class="p">:</span>
             <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">)):</span>
                 <span class="k">return</span> <span class="n">path</span>
         <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Configuration file &#39;</span><span class="si">%s</span><span class="s2">&#39; not found&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">name</span><span class="p">)</span></div></div>
 
-<div class="viewcode-block" id="ConfigManager"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.configManager.ConfigManager">[docs]</a><span class="k">class</span> <span class="nc">ConfigManager</span><span class="p">:</span>
-    <span class="sd">&quot;&quot;&quot;\</span>
+<div class="viewcode-block" id="ConfigManager"><a class="viewcode-back" href="../../apidoc_src/src.html#src.configManager.ConfigManager">[docs]</a><span class="k">class</span> <span class="nc">ConfigManager</span><span class="p">:</span>
+    <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Class that manages the read of all the config .pyconf files of salomeTools</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">runner</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">datadir</span> <span class="o">=</span> <span class="kc">None</span>
 
     <span class="k">def</span> <span class="nf">_create_vars</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">application</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">command</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">datadir</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-        <span class="sd">&quot;&quot;&quot;Create a dictionary that stores all information about machine,</span>
-<span class="sd">           user, date, repositories, etc...</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Create a dictionary that stores all information about machine,</span>
+<span class="sd">        user, date, repositories, etc...</span>
 <span class="sd">        </span>
-<span class="sd">        :param application str: The application for which salomeTools is called.</span>
-<span class="sd">        :param command str: The command that is called.</span>
-<span class="sd">        :param datadir str: The repository that contain external data </span>
-<span class="sd">                            for salomeTools.</span>
-<span class="sd">        :return: The dictionary that stores all information.</span>
-<span class="sd">        :rtype: dict</span>
+<span class="sd">        :param application: (str) </span>
+<span class="sd">          The application for which salomeTools is called.</span>
+<span class="sd">        :param command: (str) The command that is called.</span>
+<span class="sd">        :param datadir: (str) </span>
+<span class="sd">          The repository that contain external data for salomeTools.</span>
+<span class="sd">        :return: (dict) The dictionary that stores all information.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">var</span> <span class="o">=</span> <span class="p">{}</span>      
         <span class="n">var</span><span class="p">[</span><span class="s1">&#39;user&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ARCH</span><span class="o">.</span><span class="n">get_user</span><span class="p">()</span>
         
         <span class="k">return</span> <span class="n">var</span>
 
-<div class="viewcode-block" id="ConfigManager.get_command_line_overrides"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.configManager.ConfigManager.get_command_line_overrides">[docs]</a>    <span class="k">def</span> <span class="nf">get_command_line_overrides</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">sections</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;get all the overwrites that are in the command line</span>
+<div class="viewcode-block" id="ConfigManager.get_command_line_overrides"><a class="viewcode-back" href="../../apidoc_src/src.html#src.configManager.ConfigManager.get_command_line_overrides">[docs]</a>    <span class="k">def</span> <span class="nf">get_command_line_overrides</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">sections</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;get all the overwrites that are in the command line</span>
 <span class="sd">        </span>
-<span class="sd">        :param options: the options from salomeTools class </span>
-<span class="sd">                        initialization (like -l5 or --overwrite)</span>
-<span class="sd">        :param sections str: The config section to overwrite.</span>
-<span class="sd">        :return: The list of all the overwrites to apply.</span>
-<span class="sd">        :rtype: list</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param options:</span>
+<span class="sd">          The options from salomeTools class initialization </span>
+<span class="sd">          (as &#39;-l5&#39; or &#39;--overwrite&#39;)</span>
+<span class="sd">        :param sections: (str) The config section to overwrite.</span>
+<span class="sd">        :return: (list) The list of all the overwrites to apply.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="c1"># when there are no options or not the overwrite option, </span>
         <span class="c1"># return an empty list</span>
         <span class="k">if</span> <span class="n">options</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="n">options</span><span class="o">.</span><span class="n">overwrite</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
                                <span class="n">options</span><span class="o">.</span><span class="n">overwrite</span><span class="p">))</span>
         <span class="k">return</span> <span class="n">over</span></div>
 
-<div class="viewcode-block" id="ConfigManager.get_config"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.configManager.ConfigManager.get_config">[docs]</a>    <span class="k">def</span> <span class="nf">get_config</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">application</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">command</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+<div class="viewcode-block" id="ConfigManager.get_config"><a class="viewcode-back" href="../../apidoc_src/src.html#src.configManager.ConfigManager.get_config">[docs]</a>    <span class="k">def</span> <span class="nf">get_config</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">application</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">command</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
                     <span class="n">datadir</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;get the config from all the configuration files.</span>
+        <span class="sd">&quot;&quot;&quot;get the config from all the configuration files.</span>
 <span class="sd">        </span>
-<span class="sd">        :param application str: The application for which salomeTools is called.</span>
-<span class="sd">        :param options class Options: The general salomeTools</span>
-<span class="sd">                                      options (--overwrite or -v5, for example)</span>
-<span class="sd">        :param command str: The command that is called.</span>
-<span class="sd">        :param datadir str: The repository that contain </span>
-<span class="sd">                            external data for salomeTools.</span>
-<span class="sd">        :return: The final config.</span>
-<span class="sd">        :rtype: class &#39;PYCONF.Config&#39;</span>
-<span class="sd">        &#39;&#39;&#39;</span>        
-        
+<span class="sd">        :param application: (str) </span>
+<span class="sd">          The application for which salomeTools is called.</span>
+<span class="sd">        :param options: (Options) </span>
+<span class="sd">          The general salomeTools options </span>
+<span class="sd">          (as &#39;--overwrite&#39; or &#39;-v5&#39;)</span>
+<span class="sd">        :param command: (str) The command that is called.</span>
+<span class="sd">        :param datadir: (str) </span>
+<span class="sd">          The repository that contain external data for salomeTools.</span>
+<span class="sd">        :return: (Config) The final config.</span>
+<span class="sd">        &quot;&quot;&quot;</span>        
+        <span class="n">msgPb</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Problem in configuration file: &lt;red&gt;</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&lt;yellow&gt;</span><span class="si">%s</span><span class="s2">&lt;reset&gt;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="c1"># % (filename, exception)</span>
         <span class="c1"># create a ConfigMerger to handle merge</span>
         <span class="n">merger</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">ConfigMerger</span><span class="p">()</span> <span class="c1">#MergeHandler())</span>
         
         <span class="c1"># =====================================================================</span>
         <span class="c1"># Load INTERNAL config</span>
         <span class="c1"># read src/internal_config/salomeTools.pyconf</span>
-        <span class="n">PYCONF</span><span class="o">.</span><span class="n">streamOpener</span> <span class="o">=</span> <span class="n">ConfigOpener</span><span class="p">([</span>
-                            <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">srcDir</span><span class="p">,</span> <span class="s1">&#39;internal_config&#39;</span><span class="p">)])</span>
+        <span class="n">intDir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">srcDir</span><span class="p">,</span> <span class="s1">&#39;internal_config&#39;</span><span class="p">)</span>
+        <span class="n">PYCONF</span><span class="o">.</span><span class="n">streamOpener</span> <span class="o">=</span> <span class="n">ConfigOpener</span><span class="p">([</span><span class="n">intDir</span><span class="p">])</span>
         <span class="k">try</span><span class="p">:</span>
-            <span class="n">internal_cfg</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Config</span><span class="p">(</span><span class="nb">open</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">srcDir</span><span class="p">,</span> 
-                                    <span class="s1">&#39;internal_config&#39;</span><span class="p">,</span> <span class="s1">&#39;salomeTools.pyconf&#39;</span><span class="p">)))</span>
-        <span class="k">except</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">ConfigError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
-            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Error in configuration file:&quot;</span>
-                                     <span class="s2">&quot; salomeTools.pyconf</span><span class="se">\n</span><span class="s2">  </span><span class="si">%(error)s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> \
-                                   <span class="p">{</span><span class="s1">&#39;error&#39;</span><span class="p">:</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)</span> <span class="p">})</span>
+          <span class="n">afile</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">intDir</span><span class="p">,</span> <span class="s1">&#39;salomeTools.pyconf&#39;</span><span class="p">)</span>
+          <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">afile</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
+           <span class="n">internal_cfg</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Config</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
+        <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+          <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">msgPb</span> <span class="o">%</span> <span class="p">(</span><span class="n">afile</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)))</span>
         
         <span class="n">merger</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">cfg</span><span class="p">,</span> <span class="n">internal_cfg</span><span class="p">)</span>
 
         <span class="c1"># search only in the data directory</span>
         <span class="n">PYCONF</span><span class="o">.</span><span class="n">streamOpener</span> <span class="o">=</span> <span class="n">ConfigOpener</span><span class="p">([</span><span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">datadir</span><span class="p">])</span>
         <span class="k">try</span><span class="p">:</span>
-            <span class="n">local_cfg</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Config</span><span class="p">(</span><span class="nb">open</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">datadir</span><span class="p">,</span> 
-                                                           <span class="s1">&#39;local.pyconf&#39;</span><span class="p">)),</span>
-                                         <span class="n">PWD</span> <span class="o">=</span> <span class="p">(</span><span class="s1">&#39;LOCAL&#39;</span><span class="p">,</span> <span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">datadir</span><span class="p">)</span> <span class="p">)</span>
-        <span class="k">except</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">ConfigError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
-            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Error in configuration file: &quot;</span>
-                                     <span class="s2">&quot;local.pyconf</span><span class="se">\n</span><span class="s2">  </span><span class="si">%(error)s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> \
-                <span class="p">{</span><span class="s1">&#39;error&#39;</span><span class="p">:</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)</span> <span class="p">})</span>
-        <span class="k">except</span> <span class="ne">IOError</span> <span class="k">as</span> <span class="n">error</span><span class="p">:</span>
-            <span class="n">e</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">error</span><span class="p">)</span>
-            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span> <span class="n">e</span> <span class="p">);</span>
+          <span class="n">aFile</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">datadir</span><span class="p">,</span> <span class="s1">&#39;local.pyconf&#39;</span><span class="p">)</span>
+          <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">aFile</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
+            <span class="n">local_cfg</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Config</span><span class="p">(</span><span class="n">f</span><span class="p">,</span> <span class="n">PWD</span> <span class="o">=</span> <span class="p">(</span><span class="s1">&#39;LOCAL&#39;</span><span class="p">,</span> <span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">datadir</span><span class="p">)</span> <span class="p">)</span>
+        <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+          <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">msgPb</span> <span class="o">%</span> <span class="p">(</span><span class="n">aFile</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)))</span>
+        
         <span class="n">merger</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">cfg</span><span class="p">,</span> <span class="n">local_cfg</span><span class="p">)</span>
 
         <span class="c1"># When the key is &quot;default&quot;, put the default value</span>
+        <span class="n">sWay</span> <span class="o">=</span> <span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">salometoolsway</span>
         <span class="k">if</span> <span class="n">cfg</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">base</span> <span class="o">==</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span>
-            <span class="n">cfg</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">base</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span>
-                                        <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">salometoolsway</span><span class="p">,</span>
-                                                     <span class="s2">&quot;..&quot;</span><span class="p">,</span>
-                                                     <span class="s2">&quot;BASE&quot;</span><span class="p">))</span>
+            <span class="n">cfg</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">base</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sWay</span><span class="p">,</span> <span class="s2">&quot;..&quot;</span><span class="p">,</span> <span class="s2">&quot;BASE&quot;</span><span class="p">))</span>
         <span class="k">if</span> <span class="n">cfg</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">workdir</span> <span class="o">==</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span>
-            <span class="n">cfg</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">workdir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span>
-                                        <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">salometoolsway</span><span class="p">,</span>
-                                                     <span class="s2">&quot;..&quot;</span><span class="p">))</span>
+            <span class="n">cfg</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">workdir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sWay</span><span class="p">,</span> <span class="s2">&quot;..&quot;</span><span class="p">))</span>
         <span class="k">if</span> <span class="n">cfg</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">log_dir</span> <span class="o">==</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span>
-            <span class="n">cfg</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">log_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span>
-                                        <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">salometoolsway</span><span class="p">,</span>
-                                                     <span class="s2">&quot;..&quot;</span><span class="p">,</span>
-                                                     <span class="s2">&quot;LOGS&quot;</span><span class="p">))</span>
-
+            <span class="n">cfg</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">log_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sWay</span><span class="p">,</span> <span class="s2">&quot;..&quot;</span><span class="p">,</span> <span class="s2">&quot;LOGS&quot;</span><span class="p">))</span>
         <span class="k">if</span> <span class="n">cfg</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">archive_dir</span> <span class="o">==</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span>
-            <span class="n">cfg</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">archive_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span>
-                                        <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">salometoolsway</span><span class="p">,</span>
-                                                     <span class="s2">&quot;..&quot;</span><span class="p">,</span>
-                                                     <span class="s2">&quot;ARCHIVES&quot;</span><span class="p">))</span>
+            <span class="n">cfg</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">archive_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sWay</span><span class="p">,</span> <span class="s2">&quot;..&quot;</span><span class="p">,</span> <span class="s2">&quot;ARCHIVES&quot;</span><span class="p">))</span>
 
         <span class="c1"># apply overwrite from command line if needed</span>
         <span class="k">for</span> <span class="n">rule</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_command_line_overrides</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="p">[</span><span class="s2">&quot;LOCAL&quot;</span><span class="p">]):</span>
         <span class="c1"># =====================================================================</span>
         <span class="c1"># Load the PROJECTS</span>
         <span class="n">projects_cfg</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Config</span><span class="p">()</span>
-        <span class="n">projects_cfg</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s2">&quot;PROJECTS&quot;</span><span class="p">,</span>
-                                <span class="n">PYCONF</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(</span><span class="n">projects_cfg</span><span class="p">),</span>
-                                <span class="s2">&quot;The projects</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
-        <span class="n">projects_cfg</span><span class="o">.</span><span class="n">PROJECTS</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s2">&quot;projects&quot;</span><span class="p">,</span>
-                                <span class="n">PYCONF</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(</span><span class="n">cfg</span><span class="o">.</span><span class="n">PROJECTS</span><span class="p">),</span>
-                                <span class="s2">&quot;The projects definition</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">projects_cfg</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s2">&quot;PROJECTS&quot;</span><span class="p">,</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(</span><span class="n">projects_cfg</span><span class="p">),</span> <span class="s2">&quot;The projects</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">projects_cfg</span><span class="o">.</span><span class="n">PROJECTS</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s2">&quot;projects&quot;</span><span class="p">,</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(</span><span class="n">cfg</span><span class="o">.</span><span class="n">PROJECTS</span><span class="p">),</span> <span class="s2">&quot;The projects definition</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
         
         <span class="k">for</span> <span class="n">project_pyconf_path</span> <span class="ow">in</span> <span class="n">cfg</span><span class="o">.</span><span class="n">PROJECTS</span><span class="o">.</span><span class="n">project_file_paths</span><span class="p">:</span>
             <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">project_pyconf_path</span><span class="p">):</span>
-                <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Cannot find project file &lt;red&gt;</span><span class="si">%s</span><span class="s2">&lt;reset&gt;, Ignored.&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">project_pyconf_path</span>
+                <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Cannot find project file </span><span class="si">%s</span><span class="s2">, Ignored.&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="n">project_pyconf_path</span><span class="p">)</span>
                 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
                 <span class="k">continue</span>
             <span class="n">project_name</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">project_pyconf_path</span><span class="p">)[:</span><span class="o">-</span><span class="nb">len</span><span class="p">(</span><span class="s2">&quot;.pyconf&quot;</span><span class="p">)]</span>
             <span class="k">try</span><span class="p">:</span>
-                <span class="n">project_pyconf_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">project_pyconf_path</span><span class="p">)</span>
-                <span class="n">project_cfg</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Config</span><span class="p">(</span><span class="nb">open</span><span class="p">(</span><span class="n">project_pyconf_path</span><span class="p">),</span>
-                                                <span class="n">PWD</span><span class="o">=</span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">project_pyconf_dir</span><span class="p">))</span>
+              <span class="n">project_pyconf_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">project_pyconf_path</span><span class="p">)</span>
+              <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">project_pyconf_path</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
+                <span class="n">project_cfg</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Config</span><span class="p">(</span><span class="n">f</span><span class="p">,</span> <span class="n">PWD</span><span class="o">=</span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">project_pyconf_dir</span><span class="p">))</span>
             <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
-                <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;ERROR: Error in configuration file: </span><span class="si">%(file_path)s</span><span class="se">\n</span><span class="s2">  </span><span class="si">%(error)s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> \
-                       <span class="p">{</span><span class="s1">&#39;file_path&#39;</span> <span class="p">:</span> <span class="n">project_pyconf_path</span><span class="p">,</span> <span class="s1">&#39;error&#39;</span><span class="p">:</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)</span> <span class="p">}</span>
-                <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
-                <span class="k">continue</span>
-            <span class="n">projects_cfg</span><span class="o">.</span><span class="n">PROJECTS</span><span class="o">.</span><span class="n">projects</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="n">project_name</span><span class="p">,</span>
-                             <span class="n">PYCONF</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(</span><span class="n">projects_cfg</span><span class="o">.</span><span class="n">PROJECTS</span><span class="o">.</span><span class="n">projects</span><span class="p">),</span>
-                             <span class="s2">&quot;The </span><span class="si">%s</span><span class="s2"> project</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">project_name</span><span class="p">)</span>
-            <span class="n">projects_cfg</span><span class="o">.</span><span class="n">PROJECTS</span><span class="o">.</span><span class="n">projects</span><span class="p">[</span><span class="n">project_name</span><span class="p">]</span><span class="o">=</span><span class="n">project_cfg</span>
-            <span class="n">projects_cfg</span><span class="o">.</span><span class="n">PROJECTS</span><span class="o">.</span><span class="n">projects</span><span class="p">[</span><span class="n">project_name</span><span class="p">][</span><span class="s2">&quot;file_path&quot;</span><span class="p">]</span> <span class="o">=</span> \
-                                                        <span class="n">project_pyconf_path</span>
+              <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">msgPb</span> <span class="o">%</span> <span class="p">(</span><span class="n">project_pyconf_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)))</span>
+              <span class="k">continue</span>
+            <span class="n">PROJECTS</span> <span class="o">=</span> <span class="n">projects_cfg</span><span class="o">.</span><span class="n">PROJECTS</span>
+            <span class="n">PROJECTS</span><span class="o">.</span><span class="n">projects</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="n">project_name</span><span class="p">,</span> 
+                                         <span class="n">PYCONF</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(</span><span class="n">PROJECTS</span><span class="o">.</span><span class="n">projects</span><span class="p">),</span>
+                                         <span class="s2">&quot;The </span><span class="si">%s</span><span class="s2"> project</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">project_name</span><span class="p">)</span>
+            <span class="n">PROJECTS</span><span class="o">.</span><span class="n">projects</span><span class="p">[</span><span class="n">project_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">project_cfg</span>
+            <span class="n">PROJECTS</span><span class="o">.</span><span class="n">projects</span><span class="p">[</span><span class="n">project_name</span><span class="p">][</span><span class="s2">&quot;file_path&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">project_pyconf_path</span>
                    
         <span class="n">merger</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">cfg</span><span class="p">,</span> <span class="n">projects_cfg</span><span class="p">)</span>
 
             <span class="n">cp</span> <span class="o">=</span> <span class="n">cfg</span><span class="o">.</span><span class="n">PATHS</span><span class="o">.</span><span class="n">APPLICATIONPATH</span>
             <span class="n">PYCONF</span><span class="o">.</span><span class="n">streamOpener</span> <span class="o">=</span> <span class="n">ConfigOpener</span><span class="p">(</span><span class="n">cp</span><span class="p">)</span>
             <span class="n">do_merge</span> <span class="o">=</span> <span class="kc">True</span>
+            <span class="n">aFile</span> <span class="o">=</span> <span class="n">application</span> <span class="o">+</span> <span class="s1">&#39;.pyconf&#39;</span>
             <span class="k">try</span><span class="p">:</span>
-                <span class="n">application_cfg</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Config</span><span class="p">(</span><span class="n">application</span> <span class="o">+</span> <span class="s1">&#39;.pyconf&#39;</span><span class="p">)</span>
+              <span class="n">application_cfg</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Config</span><span class="p">(</span><span class="n">aFile</span><span class="p">)</span>
             <span class="k">except</span> <span class="ne">IOError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
-                <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="s2">(use &#39;config --list&#39; to get the&quot;</span>
-                                         <span class="s2">&quot; list of available applications)&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">e</span><span class="p">)</span>
+              <span class="n">msg</span> <span class="o">=</span> <span class="n">msgPb</span> <span class="o">%</span> <span class="p">(</span><span class="n">aFile</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
+              <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;(use &#39;sat config --list&#39; to get the list of available applications)&quot;</span><span class="p">)</span>
+              <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
             <span class="k">except</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">ConfigError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
-                <span class="k">if</span> <span class="p">(</span><span class="ow">not</span> <span class="p">(</span><span class="s1">&#39;-e&#39;</span> <span class="ow">in</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse_args</span><span class="p">()[</span><span class="mi">1</span><span class="p">])</span> 
-                                         <span class="ow">or</span> <span class="p">(</span><span class="s1">&#39;--edit&#39;</span> <span class="ow">in</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse_args</span><span class="p">()[</span><span class="mi">1</span><span class="p">])</span> 
-                                         <span class="ow">and</span> <span class="n">command</span> <span class="o">==</span> <span class="s1">&#39;config&#39;</span><span class="p">):</span>
-                    <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span>
-                        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Error in configuration file: (1)s.pyconf</span><span class="se">\n</span><span class="s2">  </span><span class="si">%(2)s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> \
-                        <span class="p">{</span> <span class="s1">&#39;application&#39;</span><span class="p">:</span> <span class="n">application</span><span class="p">,</span> <span class="s1">&#39;error&#39;</span><span class="p">:</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)</span> <span class="p">}</span> <span class="p">)</span>
-                <span class="k">else</span><span class="p">:</span>
-                    <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span>
-                        <span class="s2">&quot;There is an error in the file </span><span class="si">%s</span><span class="s2">.pyconf.</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> \
-                        <span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">))</span>
-                    <span class="n">do_merge</span> <span class="o">=</span> <span class="kc">False</span>
+              <span class="n">msg</span> <span class="o">=</span> <span class="n">msgPb</span> <span class="o">%</span> <span class="p">(</span><span class="n">aFile</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
+              <span class="k">if</span> <span class="p">(</span><span class="ow">not</span> <span class="p">(</span><span class="s1">&#39;-e&#39;</span> <span class="ow">in</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse_args</span><span class="p">()[</span><span class="mi">1</span><span class="p">])</span> 
+                  <span class="ow">or</span> <span class="p">(</span><span class="s1">&#39;--edit&#39;</span> <span class="ow">in</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse_args</span><span class="p">()[</span><span class="mi">1</span><span class="p">])</span> 
+                  <span class="ow">and</span> <span class="n">command</span> <span class="o">==</span> <span class="s1">&#39;config&#39;</span><span class="p">):</span>
+                  <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+              <span class="k">else</span><span class="p">:</span>
+                  <span class="bp">self</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+                  <span class="n">do_merge</span> <span class="o">=</span> <span class="kc">False</span>
             <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
-                <span class="k">if</span> <span class="p">(</span> <span class="ow">not</span><span class="p">(</span><span class="s1">&#39;-e&#39;</span> <span class="ow">in</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse_args</span><span class="p">()[</span><span class="mi">1</span><span class="p">])</span> <span class="ow">or</span>
-                     <span class="p">(</span><span class="s1">&#39;--edit&#39;</span> <span class="ow">in</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse_args</span><span class="p">()[</span><span class="mi">1</span><span class="p">])</span> <span class="ow">and</span>
-                     <span class="n">command</span> <span class="o">==</span> <span class="s1">&#39;config&#39;</span> <span class="p">):</span>
-                    <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)))</span>
-                    <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span>
-                        <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Error in configuration file: </span><span class="si">%s</span><span class="s2">.pyconf</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">application</span> <span class="p">)</span>
-                <span class="k">else</span><span class="p">:</span>
-                    <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span>
-                        <span class="s2">&quot;ERROR: in file </span><span class="si">%s</span><span class="s2">.pyconf. Opening the file with the default viewer</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> \
-                        <span class="n">cfg</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span><span class="p">))</span>
-                    <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">red</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)))</span>
-                    <span class="n">do_merge</span> <span class="o">=</span> <span class="kc">False</span>
+              <span class="n">msg</span> <span class="o">=</span> <span class="n">msgPb</span> <span class="o">%</span> <span class="p">(</span><span class="n">aFile</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
+              <span class="k">if</span> <span class="p">(</span><span class="ow">not</span><span class="p">(</span><span class="s1">&#39;-e&#39;</span> <span class="ow">in</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse_args</span><span class="p">()[</span><span class="mi">1</span><span class="p">])</span>
+                  <span class="ow">or</span> <span class="p">(</span><span class="s1">&#39;--edit&#39;</span> <span class="ow">in</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse_args</span><span class="p">()[</span><span class="mi">1</span><span class="p">])</span>
+                  <span class="ow">and</span> <span class="n">command</span> <span class="o">==</span> <span class="s1">&#39;config&#39;</span> <span class="p">):</span>
+                  <span class="bp">self</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+                  <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+              <span class="k">else</span><span class="p">:</span>
+                  <span class="bp">self</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">&quot;Opening the file </span><span class="si">%s</span><span class="s2"> with the default viewer&quot;</span> <span class="o">%</span> <span class="n">aFile</span><span class="p">)</span>
+                  <span class="n">do_merge</span> <span class="o">=</span> <span class="kc">False</span>
         
             <span class="k">else</span><span class="p">:</span>
                 <span class="n">cfg</span><span class="p">[</span><span class="s1">&#39;open_application&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;yes&#39;</span>
         <span class="c1"># =====================================================================</span>
         <span class="c1"># Load product config files in PRODUCTS section</span>
         <span class="n">products_cfg</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Config</span><span class="p">()</span>
-        <span class="n">products_cfg</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s2">&quot;PRODUCTS&quot;</span><span class="p">,</span>
-                                <span class="n">PYCONF</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(</span><span class="n">products_cfg</span><span class="p">),</span>
-                                <span class="s2">&quot;The products</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">products_cfg</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s2">&quot;PRODUCTS&quot;</span><span class="p">,</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(</span><span class="n">products_cfg</span><span class="p">),</span> <span class="s2">&quot;The products</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
         <span class="k">if</span> <span class="n">application</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
             <span class="n">PYCONF</span><span class="o">.</span><span class="n">streamOpener</span> <span class="o">=</span> <span class="n">ConfigOpener</span><span class="p">(</span><span class="n">cfg</span><span class="o">.</span><span class="n">PATHS</span><span class="o">.</span><span class="n">PRODUCTPATH</span><span class="p">)</span>
             <span class="k">for</span> <span class="n">product_name</span> <span class="ow">in</span> <span class="n">application_cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
                 <span class="k">if</span> <span class="n">product_file_path</span><span class="p">:</span>
                     <span class="n">products_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">product_file_path</span><span class="p">)</span>
                     <span class="k">try</span><span class="p">:</span>
-                        <span class="n">prod_cfg</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Config</span><span class="p">(</span><span class="nb">open</span><span class="p">(</span><span class="n">product_file_path</span><span class="p">),</span>
-                                                     <span class="n">PWD</span><span class="o">=</span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">products_dir</span><span class="p">))</span>
+                        <span class="n">prod_cfg</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Config</span><span class="p">(</span><span class="nb">open</span><span class="p">(</span><span class="n">product_file_path</span><span class="p">),</span> <span class="n">PWD</span><span class="o">=</span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">products_dir</span><span class="p">))</span>
                         <span class="n">prod_cfg</span><span class="o">.</span><span class="n">from_file</span> <span class="o">=</span> <span class="n">product_file_path</span>
                         <span class="n">products_cfg</span><span class="o">.</span><span class="n">PRODUCTS</span><span class="p">[</span><span class="n">product_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">prod_cfg</span>
                     <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
-                        <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span>
-                            <span class="s2">&quot;WARNING: Error in configuration file: </span><span class="si">%(prod)s</span><span class="se">\n</span><span class="s2">  </span><span class="si">%(error)s</span><span class="s2">&quot;</span> <span class="o">%</span> \
-                            <span class="p">{</span><span class="s1">&#39;prod&#39;</span> <span class="p">:</span>  <span class="n">product_name</span><span class="p">,</span> <span class="s1">&#39;error&#39;</span><span class="p">:</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)</span> <span class="p">})</span>
-                        <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+                        <span class="n">msg</span> <span class="o">=</span> <span class="n">msgPb</span> <span class="o">%</span> <span class="p">(</span><span class="n">product_name</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
+                        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
             
             <span class="n">merger</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">cfg</span><span class="p">,</span> <span class="n">products_cfg</span><span class="p">)</span>
             
         
         <span class="k">return</span> <span class="n">cfg</span></div>
 
-<div class="viewcode-block" id="ConfigManager.set_user_config_file"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.configManager.ConfigManager.set_user_config_file">[docs]</a>    <span class="k">def</span> <span class="nf">set_user_config_file</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">config</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Set the user config file name and path.</span>
+<div class="viewcode-block" id="ConfigManager.set_user_config_file"><a class="viewcode-back" href="../../apidoc_src/src.html#src.configManager.ConfigManager.set_user_config_file">[docs]</a>    <span class="k">def</span> <span class="nf">set_user_config_file</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">config</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Set the user config file name and path.</span>
 <span class="sd">        If necessary, build it from another one or create it from scratch.</span>
 <span class="sd">        </span>
-<span class="sd">        :param config class &#39;PYCONF.Config&#39;: The global config </span>
-<span class="sd">                                                 (containing all pyconf).</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param config: (Config) </span>
+<span class="sd">          The global config (containing all pyconf).</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="c1"># get the expected name and path of the file</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">config_file_name</span> <span class="o">=</span> <span class="s1">&#39;SAT.pyconf&#39;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">user_config_file_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">personalDir</span><span class="p">,</span>
         <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">user_config_file_path</span><span class="p">):</span> 
             <span class="bp">self</span><span class="o">.</span><span class="n">create_config_file</span><span class="p">(</span><span class="n">config</span><span class="p">)</span></div>
     
-<div class="viewcode-block" id="ConfigManager.create_config_file"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.configManager.ConfigManager.create_config_file">[docs]</a>    <span class="k">def</span> <span class="nf">create_config_file</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">config</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;This method is called when there are no user config file. </span>
-<span class="sd">           It build it from scratch.</span>
+<div class="viewcode-block" id="ConfigManager.create_config_file"><a class="viewcode-back" href="../../apidoc_src/src.html#src.configManager.ConfigManager.create_config_file">[docs]</a>    <span class="k">def</span> <span class="nf">create_config_file</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">config</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        This method is called when there are no user config file. </span>
+<span class="sd">        It build it from scratch.</span>
 <span class="sd">        </span>
-<span class="sd">        :param config class &#39;PYCONF.Config&#39;: The global config.</span>
-<span class="sd">        :return: the config corresponding to the file created.</span>
-<span class="sd">        :rtype: config class &#39;PYCONF.Config&#39;</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param config: (Config) The global config.</span>
+<span class="sd">        :return: (Config) </span>
+<span class="sd">          The config corresponding to the file created.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         
         <span class="n">cfg_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_user_config_file</span><span class="p">()</span>
-
-        <span class="n">user_cfg</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Config</span><span class="p">()</span>
-        <span class="c1">#</span>
-        <span class="n">user_cfg</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s1">&#39;USER&#39;</span><span class="p">,</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(</span><span class="n">user_cfg</span><span class="p">),</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
-
-        <span class="n">user_cfg</span><span class="o">.</span><span class="n">USER</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s1">&#39;cvs_user&#39;</span><span class="p">,</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">user</span><span class="p">,</span>
-            <span class="s2">&quot;This is the user name used to access salome cvs base.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
-        <span class="n">user_cfg</span><span class="o">.</span><span class="n">USER</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s1">&#39;svn_user&#39;</span><span class="p">,</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">user</span><span class="p">,</span>
-            <span class="s2">&quot;This is the user name used to access salome svn base.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
-        <span class="n">user_cfg</span><span class="o">.</span><span class="n">USER</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s1">&#39;output_verbose_level&#39;</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span>
-            <span class="s2">&quot;This is the default output_verbose_level you want.&quot;</span>
-            <span class="s2">&quot; 0=&gt;no output, 5=&gt;debug.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
-        <span class="n">user_cfg</span><span class="o">.</span><span class="n">USER</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s1">&#39;publish_dir&#39;</span><span class="p">,</span> 
-                                 <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expanduser</span><span class="p">(</span><span class="s1">&#39;~&#39;</span><span class="p">),</span>
-                                 <span class="s1">&#39;websupport&#39;</span><span class="p">,</span> 
-                                 <span class="s1">&#39;satreport&#39;</span><span class="p">),</span> 
-                                 <span class="s2">&quot;&quot;</span><span class="p">)</span>
-        <span class="n">user_cfg</span><span class="o">.</span><span class="n">USER</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s1">&#39;editor&#39;</span><span class="p">,</span>
-                                 <span class="s1">&#39;vi&#39;</span><span class="p">,</span> 
-                                 <span class="s2">&quot;This is the editor used to &quot;</span>
-                                 <span class="s2">&quot;modify configuration files</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
-        <span class="n">user_cfg</span><span class="o">.</span><span class="n">USER</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s1">&#39;browser&#39;</span><span class="p">,</span> 
-                                 <span class="s1">&#39;firefox&#39;</span><span class="p">,</span> 
-                                 <span class="s2">&quot;This is the browser used to &quot;</span>
-                                 <span class="s2">&quot;read html documentation</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
-        <span class="n">user_cfg</span><span class="o">.</span><span class="n">USER</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s1">&#39;pdf_viewer&#39;</span><span class="p">,</span> 
-                                 <span class="s1">&#39;evince&#39;</span><span class="p">,</span> 
-                                 <span class="s2">&quot;This is the pdf_viewer used &quot;</span>
-                                 <span class="s2">&quot;to read pdf documentation</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
-<span class="c1"># CNC 25/10/17 : plus nécessaire a priori</span>
-<span class="c1">#        user_cfg.USER.addMapping(&quot;base&quot;,</span>
-<span class="c1">#                                 PYCONF.Reference(</span>
-<span class="c1">#                                            user_cfg,</span>
-<span class="c1">#                                            PYCONF.DOLLAR,</span>
-<span class="c1">#                                            &#39;workdir  + $VARS.sep + &quot;BASE&quot;&#39;),</span>
-<span class="c1">#                                 &quot;The products installation base (could be &quot;</span>
-<span class="c1">#                                 &quot;ignored if this key exists in the local.pyconf&quot;</span>
-<span class="c1">#                                 &quot; file of salomTools).\n&quot;)</span>
+        <span class="n">cfg</span> <span class="o">=</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Config</span><span class="p">()</span>
+        <span class="n">cfg</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s1">&#39;USER&#39;</span><span class="p">,</span> <span class="n">PYCONF</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(</span><span class="n">user_cfg</span><span class="p">),</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
+        <span class="n">USER</span> <span class="o">=</span> <span class="n">cfg</span><span class="o">.</span><span class="n">USER</span>
+
+        <span class="n">USER</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s1">&#39;cvs_user&#39;</span><span class="p">,</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">user</span><span class="p">,</span> 
+                        <span class="s2">&quot;This is the user name used to access salome cvs base.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">USER</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s1">&#39;svn_user&#39;</span><span class="p">,</span> <span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">user</span><span class="p">,</span> 
+                        <span class="s2">&quot;This is the user name used to access salome svn base.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">USER</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s1">&#39;output_verbose_level&#39;</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span>
+                        <span class="s2">&quot;This is the default output_verbose_level you want. 0=&gt;no output, 5=&gt;debug.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">USER</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s1">&#39;publish_dir&#39;</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expanduser</span><span class="p">(</span><span class="s1">&#39;~&#39;</span><span class="p">),</span> <span class="s1">&#39;websupport&#39;</span><span class="p">,</span> <span class="s1">&#39;satreport&#39;</span><span class="p">),</span> 
+                        <span class="s2">&quot;&quot;</span><span class="p">)</span>
+        <span class="n">USER</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s1">&#39;editor&#39;</span><span class="p">,</span> <span class="s1">&#39;vi&#39;</span><span class="p">,</span> <span class="s2">&quot;This is the editor used to modify configuration files</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">USER</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s1">&#39;browser&#39;</span><span class="p">,</span> <span class="s1">&#39;firefox&#39;</span><span class="p">,</span> <span class="s2">&quot;This is the browser used to read html documentation</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">USER</span><span class="o">.</span><span class="n">addMapping</span><span class="p">(</span><span class="s1">&#39;pdf_viewer&#39;</span><span class="p">,</span> <span class="s1">&#39;evince&#39;</span><span class="p">,</span> <span class="s2">&quot;This is the pdf_viewer used to read pdf documentation</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
                
-        <span class="c1"># </span>
         <span class="n">UTS</span><span class="o">.</span><span class="n">ensure_path_exists</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">personalDir</span><span class="p">)</span>
-        <span class="n">UTS</span><span class="o">.</span><span class="n">ensure_path_exists</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">personalDir</span><span class="p">,</span> 
-                                            <span class="s1">&#39;Applications&#39;</span><span class="p">))</span>
+        <span class="n">UTS</span><span class="o">.</span><span class="n">ensure_path_exists</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">personalDir</span><span class="p">,</span> <span class="s1">&#39;Applications&#39;</span><span class="p">))</span>
 
-        <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">cfg_name</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span>
-        <span class="n">user_cfg</span><span class="o">.</span><span class="n">__save__</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
-        <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+        <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">cfg_name</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
+          <span class="n">cfg</span><span class="o">.</span><span class="n">__save__</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">cfg</span>   </div>
 
-        <span class="k">return</span> <span class="n">user_cfg</span>   </div>
-
-<div class="viewcode-block" id="ConfigManager.get_user_config_file"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.configManager.ConfigManager.get_user_config_file">[docs]</a>    <span class="k">def</span> <span class="nf">get_user_config_file</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Get the user config file</span>
-<span class="sd">        :return: path to the user config file.</span>
-<span class="sd">        :rtype: str</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<div class="viewcode-block" id="ConfigManager.get_user_config_file"><a class="viewcode-back" href="../../apidoc_src/src.html#src.configManager.ConfigManager.get_user_config_file">[docs]</a>    <span class="k">def</span> <span class="nf">get_user_config_file</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Get the user config file</span>
+<span class="sd">        </span>
+<span class="sd">        :return: (str) path to the user config file.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">user_config_file_path</span><span class="p">:</span>
-            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span>
-                <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Error in get_user_config_file: missing user config file path&quot;</span><span class="p">)</span> <span class="p">)</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;get_user_config_file: missing user config file path&quot;</span><span class="p">))</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">user_config_file_path</span>     </div></div>
 
-<div class="viewcode-block" id="check_path"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.configManager.check_path">[docs]</a><span class="k">def</span> <span class="nf">check_path</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">ext</span><span class="o">=</span><span class="p">[]):</span>
-    <span class="sd">&#39;&#39;&#39;Construct a text with the input path and &quot;not found&quot; if it does not</span>
-<span class="sd">       exist.</span>
+<div class="viewcode-block" id="check_path"><a class="viewcode-back" href="../../apidoc_src/src.html#src.configManager.check_path">[docs]</a><span class="k">def</span> <span class="nf">check_path</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">ext</span><span class="o">=</span><span class="p">[]):</span>
+    <span class="sd">&quot;&quot;&quot;Construct a text with the input path and &quot;not found&quot; if it does not exist.</span>
 <span class="sd">    </span>
-<span class="sd">    :param path Str: the path to check.</span>
-<span class="sd">    :param ext List: An extension. Verify that the path extension </span>
-<span class="sd">                     is in the list</span>
-<span class="sd">    :return: The string of the path with information</span>
-<span class="sd">    :rtype: Str</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param path: (str) The path to check.</span>
+<span class="sd">    :param ext: (list) </span>
+<span class="sd">      An extension. Verify that the path extension is in the list</span>
+<span class="sd">    :return: (str) The string of the path with information</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="c1"># check if file exists</span>
     <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
         <span class="k">return</span> <span class="s2">&quot;path &#39;</span><span class="si">%s</span><span class="s2">&#39; ** not found&quot;</span> <span class="o">%</span> <span class="n">path</span>
 
     <span class="k">return</span> <span class="n">path</span></div>
 
-<div class="viewcode-block" id="show_product_info"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.configManager.show_product_info">[docs]</a><span class="k">def</span> <span class="nf">show_product_info</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Display on the terminal and logger information about a product.</span>
+<div class="viewcode-block" id="show_product_info"><a class="viewcode-back" href="../../apidoc_src/src.html#src.configManager.show_product_info">[docs]</a><span class="k">def</span> <span class="nf">show_product_info</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Display on the terminal and logger information about a product.</span>
 <span class="sd">    </span>
-<span class="sd">    :param config Config: the global configuration.</span>
-<span class="sd">    :param name Str: The name of the product</span>
-<span class="sd">    :param logger Logger: The logger instance to use for the display</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param config: (Config) the global configuration.</span>
+<span class="sd">    :param name: (str) The name of the product</span>
+<span class="sd">    :param logger: (Logger) The logger instance to use for the display</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     
     <span class="k">def</span> <span class="nf">msgAdd</span><span class="p">(</span><span class="n">label</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
     <span class="n">zz</span><span class="o">.</span><span class="n">set_a_product</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
     <span class="k">return</span></div>
         
-<div class="viewcode-block" id="show_patchs"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.configManager.show_patchs">[docs]</a><span class="k">def</span> <span class="nf">show_patchs</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Prints all the used patchs in the application.</span>
+<div class="viewcode-block" id="show_patchs"><a class="viewcode-back" href="../../apidoc_src/src.html#src.configManager.show_patchs">[docs]</a><span class="k">def</span> <span class="nf">show_patchs</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Prints all the used patchs in the application.</span>
 <span class="sd">    </span>
-<span class="sd">    :param config Config: the global configuration.</span>
-<span class="sd">    :param logger Logger: The logger instance to use for the display</span>
+<span class="sd">    :param config: (Config) the global configuration.</span>
+<span class="sd">    :param logger: (Logger) </span>
+<span class="sd">      The logger instance to use for the display</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">len_max</span> <span class="o">=</span> <span class="nb">max</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">])</span> <span class="o">+</span> <span class="mi">2</span>
     <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
     <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
     <span class="k">return</span></div>
 
-<div class="viewcode-block" id="getConfigColored"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.configManager.getConfigColored">[docs]</a><span class="k">def</span> <span class="nf">getConfigColored</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">stream</span><span class="p">,</span> <span class="n">show_label</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">show_full_path</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;\</span>
+<div class="viewcode-block" id="getConfigColored"><a class="viewcode-back" href="../../apidoc_src/src.html#src.configManager.getConfigColored">[docs]</a><span class="k">def</span> <span class="nf">getConfigColored</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">stream</span><span class="p">,</span> <span class="n">show_label</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">show_full_path</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Get a colored representation value from a config pyconf instance.</span>
 <span class="sd">    used recursively from the initial path.</span>
 <span class="sd">    </span>
-<span class="sd">    :param config class &#39;PYCONF.Config&#39;: The configuration from which the value is displayed.</span>
-<span class="sd">    :param path str: the path in the configuration of the value to print.</span>
-<span class="sd">    :param show_label boolean: if True, do a basic display. (useful for bash completion)</span>
-<span class="sd">    :param stream: the output stream used</span>
-<span class="sd">    :param level int: The number of spaces to add before display.</span>
-<span class="sd">    :param show_full_path: display full path, else relative</span>
+<span class="sd">    :param config: (Config) </span>
+<span class="sd">      The configuration from which the value is displayed.</span>
+<span class="sd">    :param path: (str) The path in the configuration of the value to print.</span>
+<span class="sd">    :param show_label: (bool) </span>
+<span class="sd">      If True, do a basic display. (useful for bash completion)</span>
+<span class="sd">    :param stream: The output stream used</span>
+<span class="sd">    :param level: (int) The number of spaces to add before display.</span>
+<span class="sd">    :param show_full_path: (bool) Display full path, else relative</span>
 <span class="sd">    &quot;&quot;&quot;</span>           
     
     <span class="c1"># Make sure that the path does not ends with a point</span>
     <span class="k">else</span><span class="p">:</span> <span class="c1"># case where val is just a str</span>
         <span class="n">stream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">val</span><span class="p">)</span></div>
         
-<div class="viewcode-block" id="print_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.configManager.print_value">[docs]</a><span class="k">def</span> <span class="nf">print_value</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">show_label</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">show_full_path</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;\</span>
+<div class="viewcode-block" id="print_value"><a class="viewcode-back" href="../../apidoc_src/src.html#src.configManager.print_value">[docs]</a><span class="k">def</span> <span class="nf">print_value</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">show_label</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">show_full_path</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    print a colored representation value from a config pyconf instance.</span>
 <span class="sd">    used recursively from the initial path.</span>
 <span class="sd">    </span>
-<span class="sd">    :param see getConfigColored</span>
+<span class="sd">    :param: as getConfigColored</span>
 <span class="sd">    &quot;&quot;&quot;</span> 
     <span class="n">outStream</span> <span class="o">=</span> <span class="n">DBG</span><span class="o">.</span><span class="n">OutStream</span><span class="p">()</span>
     <span class="n">getConfigColored</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">outStream</span><span class="p">,</span> <span class="n">show_label</span><span class="p">,</span> <span class="n">level</span><span class="p">,</span> <span class="n">show_full_path</span><span class="p">)</span>
     <span class="k">return</span></div>
 
      
-<div class="viewcode-block" id="print_debug"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.configManager.print_debug">[docs]</a><span class="k">def</span> <span class="nf">print_debug</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">show_label</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">show_full_path</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;\</span>
+<div class="viewcode-block" id="print_debug"><a class="viewcode-back" href="../../apidoc_src/src.html#src.configManager.print_debug">[docs]</a><span class="k">def</span> <span class="nf">print_debug</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">aPath</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">show_label</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">show_full_path</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    logger output for debugging a config/pyconf</span>
 <span class="sd">    lines contains: path : expression --&gt; &#39;evaluation&#39;</span>
 <span class="sd">    </span>
     <span class="k">return</span></div>
 
 
-<div class="viewcode-block" id="get_config_children"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.configManager.get_config_children">[docs]</a><span class="k">def</span> <span class="nf">get_config_children</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;\</span>
+<div class="viewcode-block" id="get_config_children"><a class="viewcode-back" href="../../apidoc_src/src.html#src.configManager.get_config_children">[docs]</a><span class="k">def</span> <span class="nf">get_config_children</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Gets the names of the children of the given parameter.</span>
 <span class="sd">    Useful only for completion mechanism</span>
 <span class="sd">    </span>
-<span class="sd">    :param config Config: The configuration where to read the values</span>
+<span class="sd">    :param config: (Config) The configuration where to read the values</span>
 <span class="sd">    :param args: The path in the config from which get the keys</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">vals</span> <span class="o">=</span> <span class="p">[]</span>
 
 
 <span class="k">def</span> <span class="nf">_getConfig</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">appliToLoad</span><span class="p">):</span>
-        <span class="sd">&quot;&quot;&quot;\</span>
+        <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Load the configuration (all pyconf)</span>
 <span class="sd">        and returns the config from some files .pyconf</span>
 <span class="sd">        &quot;&quot;&quot;</span>
                 
         <span class="k">return</span> <span class="n">config</span>
 
-<div class="viewcode-block" id="get_products_list"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.configManager.get_products_list">[docs]</a><span class="k">def</span> <span class="nf">get_products_list</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">cfg</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
-        <span class="sd">&quot;&quot;&quot;\</span>
+<div class="viewcode-block" id="get_products_list"><a class="viewcode-back" href="../../apidoc_src/src.html#src.configManager.get_products_list">[docs]</a><span class="k">def</span> <span class="nf">get_products_list</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">cfg</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Gives the product list with their informations from </span>
 <span class="sd">        configuration regarding the passed options.</span>
 <span class="sd">        </span>
-<span class="sd">        :param options Options: The Options instance that stores the commands arguments</span>
-<span class="sd">        :param config Config: The global configuration</span>
-<span class="sd">        :param logger Logger: The logger instance to use for the display and logging</span>
-<span class="sd">        :return: The list of (product name, product_informations).</span>
-<span class="sd">        :rtype: List</span>
+<span class="sd">        :param options: (Options) </span>
+<span class="sd">          The Options instance that stores the commands arguments</span>
+<span class="sd">        :param config: (Config) The global configuration</span>
+<span class="sd">        :param logger: (Logger) </span>
+<span class="sd">          The logger instance to use for the display and logging</span>
+<span class="sd">        :return: (list) The list of (product name, product_informations).</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="c1"># Get the products to be prepared, regarding the options</span>
         <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">products</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
index 1380c9e71d6c3bfe0e0c928bbc2ed379bd34322c..9786b6c6e2ab9feca3ea1c74867a1123ca8f531a 100644 (file)
 <span class="n">_developpers</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;christian&quot;</span><span class="p">,</span> <span class="s2">&quot;wambeke&quot;</span><span class="p">,</span> <span class="s2">&quot;crouzet&quot;</span><span class="p">]</span> <span class="c1"># crouzet, kloss ...</span>
 
 
-<div class="viewcode-block" id="indent"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.debug.indent">[docs]</a><span class="k">def</span> <span class="nf">indent</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">amount</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">ch</span><span class="o">=</span><span class="s1">&#39; &#39;</span><span class="p">):</span>
+<div class="viewcode-block" id="indent"><a class="viewcode-back" href="../../apidoc_src/src.html#src.debug.indent">[docs]</a><span class="k">def</span> <span class="nf">indent</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">amount</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">ch</span><span class="o">=</span><span class="s1">&#39; &#39;</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;indent multi lines message&quot;&quot;&quot;</span>
     <span class="n">padding</span> <span class="o">=</span> <span class="n">amount</span> <span class="o">*</span> <span class="n">ch</span>
     <span class="k">return</span> <span class="s1">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">padding</span> <span class="o">+</span> <span class="n">line</span> <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">text</span><span class="o">.</span><span class="n">splitlines</span><span class="p">(</span><span class="kc">True</span><span class="p">))</span></div>
 
-<div class="viewcode-block" id="write"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.debug.write">[docs]</a><span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="n">title</span><span class="p">,</span> <span class="n">var</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">force</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">fmt</span><span class="o">=</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">#### DEBUG: </span><span class="si">%s</span><span class="s2">:</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">):</span>
+<div class="viewcode-block" id="write"><a class="viewcode-back" href="../../apidoc_src/src.html#src.debug.write">[docs]</a><span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="n">title</span><span class="p">,</span> <span class="n">var</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">force</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">fmt</span><span class="o">=</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">#### DEBUG: </span><span class="si">%s</span><span class="s2">:</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;write sys.stderr a message if _debug[-1]==True or optionaly force=True&quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="n">_debug</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="ow">or</span> <span class="n">force</span><span class="p">:</span>
         <span class="k">if</span> <span class="s1">&#39;.Config&#39;</span> <span class="ow">in</span> <span class="nb">str</span><span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="n">var</span><span class="p">)):</span> 
             <span class="n">sys</span><span class="o">.</span><span class="n">stderr</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">fmt</span> <span class="o">%</span> <span class="p">(</span><span class="n">title</span><span class="p">,</span> <span class="n">indent</span><span class="p">(</span><span class="n">var</span><span class="p">)))</span>
     <span class="k">return</span></div>
 
-<div class="viewcode-block" id="tofix"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.debug.tofix">[docs]</a><span class="k">def</span> <span class="nf">tofix</span><span class="p">(</span><span class="n">title</span><span class="p">,</span> <span class="n">var</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">force</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="tofix"><a class="viewcode-back" href="../../apidoc_src/src.html#src.debug.tofix">[docs]</a><span class="k">def</span> <span class="nf">tofix</span><span class="p">(</span><span class="n">title</span><span class="p">,</span> <span class="n">var</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">force</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    write sys.stderr a message if _debug[-1]==True or optionaly force=True</span>
 <span class="sd">    use this only if no logger accessible for classic logger.warning(message)</span>
     <span class="n">fmt</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">#### TOFIX: </span><span class="si">%s</span><span class="s2">:</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span>
     <span class="n">write</span><span class="p">(</span><span class="n">title</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">force</span><span class="p">,</span> <span class="n">fmt</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="push_debug"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.debug.push_debug">[docs]</a><span class="k">def</span> <span class="nf">push_debug</span><span class="p">(</span><span class="n">aBool</span><span class="p">):</span>
+<div class="viewcode-block" id="push_debug"><a class="viewcode-back" href="../../apidoc_src/src.html#src.debug.push_debug">[docs]</a><span class="k">def</span> <span class="nf">push_debug</span><span class="p">(</span><span class="n">aBool</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;set debug outputs activated, or not&quot;&quot;&quot;</span>
     <span class="n">_debug</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">aBool</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="pop_debug"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.debug.pop_debug">[docs]</a><span class="k">def</span> <span class="nf">pop_debug</span><span class="p">():</span>
+<div class="viewcode-block" id="pop_debug"><a class="viewcode-back" href="../../apidoc_src/src.html#src.debug.pop_debug">[docs]</a><span class="k">def</span> <span class="nf">pop_debug</span><span class="p">():</span>
     <span class="sd">&quot;&quot;&quot;restore previous debug outputs status&quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">_debug</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
         <span class="k">return</span> <span class="n">_debug</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span>
 <span class="c1"># utilitaires divers pour debug</span>
 <span class="c1">###############################################</span>
 
-<div class="viewcode-block" id="OutStream"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.debug.OutStream">[docs]</a><span class="k">class</span> <span class="nc">OutStream</span><span class="p">(</span><span class="n">SIO</span><span class="o">.</span><span class="n">StringIO</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;utility class for pyconf.Config output iostream&quot;&quot;&quot;</span>
-<div class="viewcode-block" id="OutStream.close"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.debug.OutStream.close">[docs]</a>    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-      <span class="sd">&quot;&quot;&quot;because Config.__save__ calls close() stream as file</span>
+<div class="viewcode-block" id="OutStream"><a class="viewcode-back" href="../../apidoc_src/src.html#src.debug.OutStream">[docs]</a><span class="k">class</span> <span class="nc">OutStream</span><span class="p">(</span><span class="n">SIO</span><span class="o">.</span><span class="n">StringIO</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;\</span>
+<span class="sd">    utility class for pyconf.Config output iostream</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+<div class="viewcode-block" id="OutStream.close"><a class="viewcode-back" href="../../apidoc_src/src.html#src.debug.OutStream.close">[docs]</a>    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+      <span class="sd">&quot;&quot;&quot;\</span>
+<span class="sd">      because Config.__save__ calls close() stream as file</span>
 <span class="sd">      keep value before lost as self.value</span>
 <span class="sd">      &quot;&quot;&quot;</span>
       <span class="bp">self</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getvalue</span><span class="p">()</span>
       <span class="n">SIO</span><span class="o">.</span><span class="n">StringIO</span><span class="o">.</span><span class="n">close</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span></div></div>
     
-<div class="viewcode-block" id="InStream"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.debug.InStream">[docs]</a><span class="k">class</span> <span class="nc">InStream</span><span class="p">(</span><span class="n">SIO</span><span class="o">.</span><span class="n">StringIO</span><span class="p">):</span>
+<div class="viewcode-block" id="InStream"><a class="viewcode-back" href="../../apidoc_src/src.html#src.debug.InStream">[docs]</a><span class="k">class</span> <span class="nc">InStream</span><span class="p">(</span><span class="n">SIO</span><span class="o">.</span><span class="n">StringIO</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;utility class for pyconf.Config input iostream&quot;&quot;&quot;</span>
     <span class="k">pass</span></div>
 
-<div class="viewcode-block" id="getLocalEnv"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.debug.getLocalEnv">[docs]</a><span class="k">def</span> <span class="nf">getLocalEnv</span><span class="p">():</span>
+<div class="viewcode-block" id="getLocalEnv"><a class="viewcode-back" href="../../apidoc_src/src.html#src.debug.getLocalEnv">[docs]</a><span class="k">def</span> <span class="nf">getLocalEnv</span><span class="p">():</span>
     <span class="sd">&quot;&quot;&quot;get string for environment variables representation&quot;&quot;&quot;</span>
     <span class="n">res</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
     <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">):</span>
     <span class="k">return</span> <span class="n">res</span></div>
 
 <span class="c1"># save as initial Config.save() moved as Config.__save__() </span>
-<div class="viewcode-block" id="saveConfigStd"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.debug.saveConfigStd">[docs]</a><span class="k">def</span> <span class="nf">saveConfigStd</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">aStream</span><span class="p">):</span>
+<div class="viewcode-block" id="saveConfigStd"><a class="viewcode-back" href="../../apidoc_src/src.html#src.debug.saveConfigStd">[docs]</a><span class="k">def</span> <span class="nf">saveConfigStd</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">aStream</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;returns as file .pyconf&quot;&quot;&quot;</span>
     <span class="n">indent</span> <span class="o">=</span>  <span class="mi">0</span>
     <span class="n">config</span><span class="o">.</span><span class="n">__save__</span><span class="p">(</span><span class="n">aStream</span><span class="p">,</span> <span class="n">indent</span><span class="p">)</span> </div>
 
-<div class="viewcode-block" id="getStrConfigStd"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.debug.getStrConfigStd">[docs]</a><span class="k">def</span> <span class="nf">getStrConfigStd</span><span class="p">(</span><span class="n">config</span><span class="p">):</span>
+<div class="viewcode-block" id="getStrConfigStd"><a class="viewcode-back" href="../../apidoc_src/src.html#src.debug.getStrConfigStd">[docs]</a><span class="k">def</span> <span class="nf">getStrConfigStd</span><span class="p">(</span><span class="n">config</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;set string as saveConfigStd, </span>
 <span class="sd">    as file .pyconf&quot;&quot;&quot;</span>
     <span class="n">outStream</span> <span class="o">=</span> <span class="n">OutStream</span><span class="p">()</span>
     <span class="n">saveConfigStd</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">outStream</span><span class="p">)</span>
     <span class="k">return</span> <span class="n">outStream</span><span class="o">.</span><span class="n">value</span></div>
 
-<div class="viewcode-block" id="getStrConfigDbg"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.debug.getStrConfigDbg">[docs]</a><span class="k">def</span> <span class="nf">getStrConfigDbg</span><span class="p">(</span><span class="n">config</span><span class="p">):</span>
+<div class="viewcode-block" id="getStrConfigDbg"><a class="viewcode-back" href="../../apidoc_src/src.html#src.debug.getStrConfigDbg">[docs]</a><span class="k">def</span> <span class="nf">getStrConfigDbg</span><span class="p">(</span><span class="n">config</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;set string as saveConfigDbg, </span>
 <span class="sd">    as (path expression evaluation) for debug&quot;&quot;&quot;</span>
     <span class="n">outStream</span> <span class="o">=</span> <span class="n">OutStream</span><span class="p">()</span>
     <span class="n">saveConfigDbg</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">outStream</span><span class="p">)</span>
     <span class="k">return</span> <span class="n">outStream</span><span class="o">.</span><span class="n">value</span></div>
 
-<div class="viewcode-block" id="saveConfigDbg"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.debug.saveConfigDbg">[docs]</a><span class="k">def</span> <span class="nf">saveConfigDbg</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">aStream</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
+<div class="viewcode-block" id="saveConfigDbg"><a class="viewcode-back" href="../../apidoc_src/src.html#src.debug.saveConfigDbg">[docs]</a><span class="k">def</span> <span class="nf">saveConfigDbg</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">aStream</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;pyconf returns multilines (path expression evaluation) for debug&quot;&quot;&quot;</span>
     <span class="n">_saveConfigRecursiveDbg</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">aStream</span><span class="p">,</span> <span class="n">indent</span><span class="p">,</span> <span class="n">path</span><span class="p">)</span>
     <span class="n">aStream</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> <span class="c1"># as config.__save__()</span></div>
       <span class="n">order</span> <span class="o">=</span> <span class="nb">object</span><span class="o">.</span><span class="fm">__getattribute__</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="s1">&#39;order&#39;</span><span class="p">)</span>
       <span class="n">data</span> <span class="o">=</span> <span class="nb">object</span><span class="o">.</span><span class="fm">__getattribute__</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="s1">&#39;data&#39;</span><span class="p">)</span>
     <span class="k">except</span><span class="p">:</span>
-      <span class="n">aStream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s%s</span><span class="s2"> : &#39;</span><span class="si">%s</span><span class="s2">&#39;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">indstr</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">config</span><span class="p">)))</span>
+      <span class="n">aStream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;&lt;blue&gt;</span><span class="si">%s%s</span><span class="s2">&lt;reset&gt; : &#39;</span><span class="si">%s</span><span class="s2">&#39;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">indstr</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">config</span><span class="p">)))</span>
       <span class="k">return</span>     
     <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">order</span><span class="p">):</span>
       <span class="n">value</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
       <span class="k">if</span> <span class="s2">&quot;Expression&quot;</span> <span class="ow">in</span> <span class="n">strType</span><span class="p">:</span>
         <span class="k">try</span><span class="p">:</span>
           <span class="n">evaluate</span> <span class="o">=</span> <span class="n">value</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
-          <span class="n">aStream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s%s</span><span class="s2">.</span><span class="si">%s</span><span class="s2"> : </span><span class="si">%s</span><span class="s2"> --&gt; &#39;</span><span class="si">%s</span><span class="s2">&#39;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">indstr</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">value</span><span class="p">),</span> <span class="n">evaluate</span><span class="p">))</span>
+          <span class="n">aStream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;&lt;blue&gt;</span><span class="si">%s%s</span><span class="s2">.</span><span class="si">%s</span><span class="s2">&lt;reset&gt; : </span><span class="si">%s</span><span class="s2"> &lt;yellow&gt;--&gt; &#39;</span><span class="si">%s</span><span class="s2">&#39;&lt;reset&gt;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">indstr</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">value</span><span class="p">),</span> <span class="n">evaluate</span><span class="p">))</span>
         <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>      
-          <span class="n">aStream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s%s</span><span class="s2">.</span><span class="si">%s</span><span class="s2"> : !!! ERROR: </span><span class="si">%s</span><span class="s2"> !!!</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">indstr</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">message</span><span class="p">))</span>     
+          <span class="n">aStream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;&lt;blue&gt;</span><span class="si">%s%s</span><span class="s2">.</span><span class="si">%s</span><span class="s2">&lt;reset&gt; : &lt;red&gt;!!! ERROR: </span><span class="si">%s</span><span class="s2"> !!!&lt;reset&gt;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">indstr</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">message</span><span class="p">))</span>     
         <span class="k">continue</span>
       <span class="k">if</span> <span class="s2">&quot;Reference&quot;</span> <span class="ow">in</span> <span class="n">strType</span><span class="p">:</span>
         <span class="k">try</span><span class="p">:</span>
           <span class="n">evaluate</span> <span class="o">=</span> <span class="n">value</span><span class="o">.</span><span class="n">resolve</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
-          <span class="n">aStream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s%s</span><span class="s2">.</span><span class="si">%s</span><span class="s2"> : </span><span class="si">%s</span><span class="s2"> --&gt; &#39;</span><span class="si">%s</span><span class="s2">&#39;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">indstr</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">value</span><span class="p">),</span> <span class="n">evaluate</span><span class="p">))</span>
+          <span class="n">aStream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;&lt;blue&gt;</span><span class="si">%s%s</span><span class="s2">.</span><span class="si">%s</span><span class="s2">&lt;reset&gt; : </span><span class="si">%s</span><span class="s2"> &lt;yellow&gt;--&gt; &#39;</span><span class="si">%s</span><span class="s2">&#39;&lt;reset&gt;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">indstr</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">value</span><span class="p">),</span> <span class="n">evaluate</span><span class="p">))</span>
         <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>  
-          <span class="n">aStream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s%s</span><span class="s2">.</span><span class="si">%s</span><span class="s2"> : !!! ERROR: </span><span class="si">%s</span><span class="s2"> !!!</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">indstr</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">message</span><span class="p">))</span>     
+          <span class="n">aStream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;&lt;blue&gt;</span><span class="si">%s%s</span><span class="s2">.</span><span class="si">%s</span><span class="s2">&lt;reset&gt; : &lt;red&gt;!!! ERROR: </span><span class="si">%s</span><span class="s2"> !!!&lt;reset&gt;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">indstr</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">message</span><span class="p">))</span>     
         <span class="k">continue</span>
       <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="ow">in</span> <span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">bool</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">type</span><span class="p">(</span><span class="kc">None</span><span class="p">),</span> <span class="n">unicode</span><span class="p">]:</span>
-        <span class="n">aStream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s%s</span><span class="s2">.</span><span class="si">%s</span><span class="s2"> : &#39;</span><span class="si">%s</span><span class="s2">&#39;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">indstr</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
+        <span class="n">aStream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;&lt;blue&gt;</span><span class="si">%s%s</span><span class="s2">.</span><span class="si">%s</span><span class="s2">&lt;reset&gt; : &#39;</span><span class="si">%s</span><span class="s2">&#39;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">indstr</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
         <span class="k">continue</span>
       <span class="k">try</span><span class="p">:</span>
         <span class="n">aStream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;!!! TODO fix that </span><span class="si">%s</span><span class="s2"> </span><span class="si">%s%s</span><span class="s2">.</span><span class="si">%s</span><span class="s2"> : </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="n">value</span><span class="p">),</span> <span class="n">indstr</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
       <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>      
-        <span class="n">aStream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s%s</span><span class="s2">.</span><span class="si">%s</span><span class="s2"> : !!! </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">indstr</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">message</span><span class="p">))</span>
+        <span class="n">aStream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;&lt;blue&gt;</span><span class="si">%s%s</span><span class="s2">.</span><span class="si">%s</span><span class="s2">&lt;reset&gt; : &lt;red&gt;!!! </span><span class="si">%s</span><span class="s2">&lt;reset&gt;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">indstr</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">message</span><span class="p">))</span>
 </pre></div>
 
           </div>
index 09c90863d82dadaa067ea25e617258e1f9441b71..fd1937e6fd55b08743931103aa91e9debc426037 100644 (file)
 
 <span class="kn">import</span> <span class="nn">src.pyconf</span> <span class="k">as</span> <span class="nn">PYCONF</span>
 
-<div class="viewcode-block" id="Environ"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.Environ">[docs]</a><span class="k">class</span> <span class="nc">Environ</span><span class="p">:</span>
-    <span class="sd">&#39;&#39;&#39;Class to manage the environment context</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<div class="viewcode-block" id="Environ"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.Environ">[docs]</a><span class="k">class</span> <span class="nc">Environ</span><span class="p">:</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Class to manage an environment context</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Initialization. If the environ argument is passed, the environment</span>
-<span class="sd">           will be add to it, else it is the external environment.</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Initialization.</span>
+<span class="sd">        If the environ argument is passed, the environment</span>
+<span class="sd">        will be add to it, else it is the external environment.</span>
 <span class="sd">           </span>
-<span class="sd">        :param environ dict:  </span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param environ: (dict) as os.environment</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="n">environ</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">environ</span> <span class="o">=</span> <span class="n">environ</span>
         <span class="k">else</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">environ</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span>
 
     <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="sd">&quot;&quot;&quot;easy non exhaustive quick resume for debug print</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        easy non exhaustive quick resume for debug print</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">res</span><span class="o">=</span><span class="p">{}</span>
         <span class="n">res</span><span class="p">[</span><span class="s2">&quot;environ&quot;</span><span class="p">]</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">environ</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">res</span><span class="p">)[</span><span class="mi">0</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="s2">&quot; ...etc...}&quot;</span>
 
     <span class="k">def</span> <span class="nf">_expandvars</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;replace some $VARIABLE into its actual value in the environment</span>
+        <span class="sd">&quot;&quot;&quot;replace some $VARIABLE into its actual value in the environment</span>
 <span class="sd">        </span>
-<span class="sd">        :param value str: the string to be replaced</span>
-<span class="sd">        :return: the replaced variable</span>
-<span class="sd">        :rtype: str</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param value: (str) the string to be replaced</span>
+<span class="sd">        :return: (str) the replaced variable</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="s2">&quot;$&quot;</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
             <span class="c1"># The string.Template class is a string class </span>
             <span class="c1"># for supporting $-substitutions</span>
                     <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Missing definition in environment: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">exc</span><span class="p">)</span> <span class="p">)</span>
         <span class="k">return</span> <span class="n">value</span>
 
-<div class="viewcode-block" id="Environ.append_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.Environ.append_value">[docs]</a>    <span class="k">def</span> <span class="nf">append_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;append value to key using sep</span>
+<div class="viewcode-block" id="Environ.append_value"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.Environ.append_value">[docs]</a>    <span class="k">def</span> <span class="nf">append_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;append value to key using sep</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to append</span>
-<span class="sd">        :param value str: the value to append to key</span>
-<span class="sd">        :param sep str: the separator string</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to append</span>
+<span class="sd">        :param value: (str) the value to append to key</span>
+<span class="sd">        :param sep: (str) the separator string (usually &#39;:&#39;)</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="c1"># check if the key is already in the environment</span>
         <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
             <span class="n">value_list</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">sep</span><span class="p">)</span>
         <span class="k">else</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Environ.append"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.Environ.append">[docs]</a>    <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Same as append_value but the value argument can be a list</span>
+<div class="viewcode-block" id="Environ.append"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.Environ.append">[docs]</a>    <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Same as append_value but the value argument can be a list</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to append</span>
-<span class="sd">        :param value str or list: the value(s) to append to key</span>
-<span class="sd">        :param sep str: the separator string</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to append</span>
+<span class="sd">        :param value: (str or list) the value(s) to append to key</span>
+<span class="sd">        :param sep: (str) the separator string (usually &#39;:&#39;)</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
             <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
                 <span class="bp">self</span><span class="o">.</span><span class="n">append_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span>
         <span class="k">else</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">append_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Environ.prepend_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.Environ.prepend_value">[docs]</a>    <span class="k">def</span> <span class="nf">prepend_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;prepend value to key using sep</span>
+<div class="viewcode-block" id="Environ.prepend_value"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.Environ.prepend_value">[docs]</a>    <span class="k">def</span> <span class="nf">prepend_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;prepend value to key using sep</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to prepend</span>
-<span class="sd">        :param value str: the value to prepend to key</span>
-<span class="sd">        :param sep str: the separator string</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to prepend</span>
+<span class="sd">        :param value: (str) the value to prepend to key</span>
+<span class="sd">        :param sep: (str) the separator string (usually &#39;:&#39;)</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
             <span class="n">value_list</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">sep</span><span class="p">)</span>
             <span class="k">if</span> <span class="ow">not</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">value_list</span><span class="p">:</span>
         <span class="k">else</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Environ.prepend"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.Environ.prepend">[docs]</a>    <span class="k">def</span> <span class="nf">prepend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Same as prepend_value but the value argument can be a list</span>
+<div class="viewcode-block" id="Environ.prepend"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.Environ.prepend">[docs]</a>    <span class="k">def</span> <span class="nf">prepend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Same as prepend_value but the value argument can be a list</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to prepend</span>
-<span class="sd">        :param value str or list: the value(s) to prepend to key</span>
-<span class="sd">        :param sep str: the separator string</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to prepend</span>
+<span class="sd">        :param value: (str or list) the value(s) to prepend to key</span>
+<span class="sd">        :param sep: (str) the separator string (usually &#39;:&#39;)</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
             <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
                 <span class="bp">self</span><span class="o">.</span><span class="n">prepend_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span>
         <span class="k">else</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">prepend_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Environ.is_defined"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.Environ.is_defined">[docs]</a>    <span class="k">def</span> <span class="nf">is_defined</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Check if the key exists in the environment</span>
+<div class="viewcode-block" id="Environ.is_defined"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.Environ.is_defined">[docs]</a>    <span class="k">def</span> <span class="nf">is_defined</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Check if the key exists in the environment</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to check</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to check</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">return</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span></div>
 
-<div class="viewcode-block" id="Environ.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.Environ.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Set the environment variable &quot;key&quot; to value &quot;value&quot;</span>
+<div class="viewcode-block" id="Environ.set"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.Environ.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Set the environment variable &quot;key&quot; to value &quot;value&quot;</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to set</span>
-<span class="sd">        :param value str: the value</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to set</span>
+<span class="sd">        :param value: (str) the value</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_expandvars</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Environ.get"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.Environ.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Get the value of the environment variable &quot;key&quot;</span>
+<div class="viewcode-block" id="Environ.get"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.Environ.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Get the value of the environment variable &quot;key&quot;</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
             <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
         <span class="k">else</span><span class="p">:</span>
             <span class="k">return</span> <span class="s2">&quot;&quot;</span></div>
 
-<div class="viewcode-block" id="Environ.command_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.Environ.command_value">[docs]</a>    <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Get the value given by the system command &quot;command&quot; </span>
-<span class="sd">           and put it in the environment variable key</span>
+<div class="viewcode-block" id="Environ.command_value"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.Environ.command_value">[docs]</a>    <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Get the value given by the system command &quot;command&quot; </span>
+<span class="sd">        and put it in the environment variable key</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable</span>
-<span class="sd">        :param command str: the command to execute</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable</span>
+<span class="sd">        :param command: (str) the command to execute</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">value</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">command</span><span class="p">,</span>
                                  <span class="n">shell</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
                                  <span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span></div></div>
 
 
-<div class="viewcode-block" id="SalomeEnviron"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron">[docs]</a><span class="k">class</span> <span class="nc">SalomeEnviron</span><span class="p">:</span>
-    <span class="sd">&quot;&quot;&quot;Class to manage the environment of SALOME.</span>
+<div class="viewcode-block" id="SalomeEnviron"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron">[docs]</a><span class="k">class</span> <span class="nc">SalomeEnviron</span><span class="p">:</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Class to manage the environment of SALOME.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
-
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
                  <span class="n">cfg</span><span class="p">,</span>
                  <span class="n">environ</span><span class="p">,</span>
                  <span class="n">forBuild</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                  <span class="n">for_package</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
                  <span class="n">enable_simple_env_script</span> <span class="o">=</span> <span class="kc">True</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Initialization.</span>
-
-<span class="sd">        :param cfg Config: the global config</span>
-<span class="sd">        :param environ Environ: the Environ instance where </span>
-<span class="sd">                                to store the environment variables</span>
-<span class="sd">        :param forBuild bool: If true, it is a launch environment, </span>
-<span class="sd">                              else a build one</span>
-<span class="sd">        :param for_package str: If not None, produce a relative environment </span>
-<span class="sd">                                designed for a package. </span>
-<span class="sd">        &#39;&#39;&#39;</span>
+        <span class="sd">&quot;&quot;&quot;Initialization.</span>
+
+<span class="sd">        :param cfg: (Config) The global config</span>
+<span class="sd">        :param environ: (Environ) </span>
+<span class="sd">          The Environ instance where to store the environment variables</span>
+<span class="sd">        :param forBuild: (bool) </span>
+<span class="sd">          If true, it is a launch environment, else a build one</span>
+<span class="sd">        :param for_package: (str) </span>
+<span class="sd">          If not None, produce a relative environment,</span>
+<span class="sd">          (designed for a package)</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">environ</span> <span class="o">=</span> <span class="n">environ</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">cfg</span> <span class="o">=</span> <span class="n">cfg</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">forBuild</span> <span class="o">=</span> <span class="n">forBuild</span>
         <span class="n">res</span><span class="p">[</span><span class="s2">&quot;forBuild&quot;</span><span class="p">]</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">forBuild</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">res</span><span class="p">)[</span><span class="mi">0</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="s2">&quot; ...etc...}&quot;</span>
 
-<div class="viewcode-block" id="SalomeEnviron.append"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.append">[docs]</a>    <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;append value to key using sep</span>
+<div class="viewcode-block" id="SalomeEnviron.append"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.append">[docs]</a>    <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;append value to key using sep</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to append</span>
-<span class="sd">        :param value str: the value to append to key</span>
-<span class="sd">        :param sep str: the separator string</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to append</span>
+<span class="sd">        :param value: (str) the value to append to key</span>
+<span class="sd">        :param sep: (str) the separator string</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="SalomeEnviron.prepend"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.prepend">[docs]</a>    <span class="k">def</span> <span class="nf">prepend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;prepend value to key using sep</span>
+<div class="viewcode-block" id="SalomeEnviron.prepend"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.prepend">[docs]</a>    <span class="k">def</span> <span class="nf">prepend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;prepend value to key using sep</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to prepend</span>
-<span class="sd">        :param value str: the value to prepend to key</span>
-<span class="sd">        :param sep str: the separator string</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to prepend</span>
+<span class="sd">        :param value: (str) the value to prepend to key</span>
+<span class="sd">        :param sep: (str) the separator string</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">prepend</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="SalomeEnviron.is_defined"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.is_defined">[docs]</a>    <span class="k">def</span> <span class="nf">is_defined</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Check if the key exists in the environment</span>
+<div class="viewcode-block" id="SalomeEnviron.is_defined"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.is_defined">[docs]</a>    <span class="k">def</span> <span class="nf">is_defined</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Check if the key exists in the environment</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to check</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to check</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">is_defined</span><span class="p">(</span><span class="n">key</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="SalomeEnviron.get"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Get the value of the environment variable &quot;key&quot;</span>
+<div class="viewcode-block" id="SalomeEnviron.get"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Get the value of the environment variable &quot;key&quot;</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="SalomeEnviron.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Set the environment variable &quot;key&quot; to value &quot;value&quot;</span>
+<div class="viewcode-block" id="SalomeEnviron.set"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Set the environment variable &quot;key&quot; to value &quot;value&quot;</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to set</span>
-<span class="sd">        :param value str: the value</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to set</span>
+<span class="sd">        :param value: (str) the value</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="c1"># check if value needs to be evaluated</span>
         <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">value</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">&quot;`&quot;</span><span class="p">)</span> <span class="ow">and</span> <span class="n">value</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s2">&quot;`&quot;</span><span class="p">):</span>
             <span class="n">res</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="s2">&quot;echo </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">value</span><span class="p">,</span>
 
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="SalomeEnviron.dump"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.dump">[docs]</a>    <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">out</span><span class="p">):</span>
+<div class="viewcode-block" id="SalomeEnviron.dump"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.dump">[docs]</a>    <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">out</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Write the environment to out</span>
 <span class="sd">        </span>
-<span class="sd">        :param out file: the stream where to write the environment</span>
+<span class="sd">        :param out: (file) the stream where to write the environment</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
             <span class="k">try</span><span class="p">:</span>
                 <span class="n">value</span> <span class="o">=</span> <span class="s2">&quot;?&quot;</span>
             <span class="n">out</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2">=</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span></div>
 
-<div class="viewcode-block" id="SalomeEnviron.add_line"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.add_line">[docs]</a>    <span class="k">def</span> <span class="nf">add_line</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nb_line</span><span class="p">):</span>
+<div class="viewcode-block" id="SalomeEnviron.add_line"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.add_line">[docs]</a>    <span class="k">def</span> <span class="nf">add_line</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nb_line</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Add empty lines to the out stream (in case of file generation)</span>
 <span class="sd">        </span>
-<span class="sd">        :param nb_line int: the number of empty lines to add</span>
+<span class="sd">        :param nb_line: (int) the number of empty lines to add</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="s1">&#39;add_line&#39;</span> <span class="ow">in</span> <span class="nb">dir</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">):</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">add_line</span><span class="p">(</span><span class="n">nb_line</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="SalomeEnviron.add_comment"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.add_comment">[docs]</a>    <span class="k">def</span> <span class="nf">add_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
+<div class="viewcode-block" id="SalomeEnviron.add_comment"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.add_comment">[docs]</a>    <span class="k">def</span> <span class="nf">add_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Add a commentary to the out stream (in case of file generation)</span>
 <span class="sd">        </span>
-<span class="sd">        :param comment str: the commentary to add</span>
+<span class="sd">        :param comment: (str) the commentary to add</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="s1">&#39;add_comment&#39;</span> <span class="ow">in</span> <span class="nb">dir</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">):</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">add_comment</span><span class="p">(</span><span class="n">comment</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="SalomeEnviron.add_warning"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.add_warning">[docs]</a>    <span class="k">def</span> <span class="nf">add_warning</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">warning</span><span class="p">):</span>
+<div class="viewcode-block" id="SalomeEnviron.add_warning"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.add_warning">[docs]</a>    <span class="k">def</span> <span class="nf">add_warning</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">warning</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Add a warning to the out stream (in case of file generation)</span>
 <span class="sd">        </span>
-<span class="sd">        :param warning str: the warning to add</span>
+<span class="sd">        :param warning: (str) the warning to add</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="s1">&#39;add_warning&#39;</span> <span class="ow">in</span> <span class="nb">dir</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">):</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">add_warning</span><span class="p">(</span><span class="n">warning</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="SalomeEnviron.finish"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.finish">[docs]</a>    <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="p">):</span>
+<div class="viewcode-block" id="SalomeEnviron.finish"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.finish">[docs]</a>    <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Add a final instruction in the out file (in case of file generation)</span>
 <span class="sd">        </span>
-<span class="sd">        :param required bool: Do nothing if required is False</span>
+<span class="sd">        :param required: (bool) Do nothing if required is False</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="s1">&#39;finish&#39;</span> <span class="ow">in</span> <span class="nb">dir</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">):</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">add_line</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">add_comment</span><span class="p">(</span><span class="s2">&quot;clean all the path&quot;</span><span class="p">)</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">finish</span><span class="p">(</span><span class="n">required</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="SalomeEnviron.set_python_libdirs"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.set_python_libdirs">[docs]</a>    <span class="k">def</span> <span class="nf">set_python_libdirs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="SalomeEnviron.set_python_libdirs"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.set_python_libdirs">[docs]</a>    <span class="k">def</span> <span class="nf">set_python_libdirs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Set some generic variables for python library paths</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">ver</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;PYTHON_VERSION&#39;</span><span class="p">)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">python_lib0</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;PYTHON_LIBDIR0&#39;</span><span class="p">)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">python_lib1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;PYTHON_LIBDIR1&#39;</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="SalomeEnviron.get_names"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.get_names">[docs]</a>    <span class="k">def</span> <span class="nf">get_names</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">lProducts</span><span class="p">):</span>
-        <span class="sd">&quot;&quot;&quot;\</span>
+<div class="viewcode-block" id="SalomeEnviron.get_names"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.get_names">[docs]</a>    <span class="k">def</span> <span class="nf">get_names</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">lProducts</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Get the products name to add in SALOME_MODULES environment variable</span>
 <span class="sd">        It is the name of the product, except in the case where the is a </span>
 <span class="sd">        component name. And it has to be in SALOME_MODULES variable only </span>
 <span class="sd">        if the product has the property has_salome_hui = &quot;yes&quot;</span>
 <span class="sd">        </span>
-<span class="sd">        :param lProducts list: List of products to potentially add</span>
+<span class="sd">        :param lProducts: (list) List of products to potentially add</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">lProdHasGui</span> <span class="o">=</span> <span class="p">[</span><span class="n">p</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">lProducts</span> <span class="k">if</span> <span class="s1">&#39;properties&#39;</span> <span class="ow">in</span> 
             <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="p">,</span> <span class="n">p</span><span class="p">)</span> <span class="ow">and</span>
                 <span class="n">lProdName</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ProdName</span><span class="p">)</span>
         <span class="k">return</span> <span class="n">lProdName</span></div>
 
-<div class="viewcode-block" id="SalomeEnviron.set_application_env"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.set_application_env">[docs]</a>    <span class="k">def</span> <span class="nf">set_application_env</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+<div class="viewcode-block" id="SalomeEnviron.set_application_env"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.set_application_env">[docs]</a>    <span class="k">def</span> <span class="nf">set_application_env</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Sets the environment defined in the APPLICATION file.</span>
 <span class="sd">        </span>
-<span class="sd">        :param logger Logger: The logger instance to display messages</span>
+<span class="sd">        :param logger: (Logger) The logger instance to display messages</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         
         <span class="c1"># Set the variables defined in the &quot;environ&quot; section</span>
                                 <span class="n">logger</span><span class="p">)</span>
                 <span class="bp">self</span><span class="o">.</span><span class="n">add_line</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>       </div>
 
-<div class="viewcode-block" id="SalomeEnviron.set_salome_minimal_product_env"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.set_salome_minimal_product_env">[docs]</a>    <span class="k">def</span> <span class="nf">set_salome_minimal_product_env</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">product_info</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
-        <span class="sd">&quot;&quot;&quot;\</span>
+<div class="viewcode-block" id="SalomeEnviron.set_salome_minimal_product_env"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.set_salome_minimal_product_env">[docs]</a>    <span class="k">def</span> <span class="nf">set_salome_minimal_product_env</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">product_info</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Sets the minimal environment for a SALOME product.</span>
 <span class="sd">        xxx_ROOT_DIR and xxx_SRC_DIR</span>
 <span class="sd">        </span>
-<span class="sd">        :param product_info Config: The product description</span>
-<span class="sd">        :param logger Logger: The logger instance to display messages        </span>
+<span class="sd">        :param product_info: (Config) The product description</span>
+<span class="sd">        :param logger: (Logger) The logger instance to display messages        </span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="c1"># set root dir</span>
         <span class="n">root_dir</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">&quot;_ROOT_DIR&quot;</span>
                         <span class="n">srcDir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="s2">&quot;out_dir_Path&quot;</span><span class="p">,</span> <span class="s2">&quot;SOURCES&quot;</span><span class="p">,</span> <span class="n">product_info</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
                         <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">src_dir</span><span class="p">,</span> <span class="n">srcDir</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="SalomeEnviron.set_salome_generic_product_env"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.set_salome_generic_product_env">[docs]</a>    <span class="k">def</span> <span class="nf">set_salome_generic_product_env</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pi</span><span class="p">):</span>
+<div class="viewcode-block" id="SalomeEnviron.set_salome_generic_product_env"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.set_salome_generic_product_env">[docs]</a>    <span class="k">def</span> <span class="nf">set_salome_generic_product_env</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pi</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Sets the generic environment for a SALOME product.</span>
 <span class="sd">        </span>
-<span class="sd">        :param pi Config: The product description</span>
+<span class="sd">        :param pi: (Config) The product description</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="c1"># Construct XXX_ROOT_DIR</span>
         <span class="n">env_root_dir</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">pi</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">&quot;_ROOT_DIR&quot;</span><span class="p">)</span>
             <span class="n">l</span> <span class="o">=</span> <span class="p">[</span> <span class="n">bin_path</span><span class="p">,</span> <span class="n">lib_path</span><span class="p">,</span> <span class="n">pylib1_path</span><span class="p">,</span> <span class="n">pylib2_path</span> <span class="p">]</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">prepend</span><span class="p">(</span><span class="s1">&#39;PYTHONPATH&#39;</span><span class="p">,</span> <span class="n">l</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="SalomeEnviron.set_cpp_env"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.set_cpp_env">[docs]</a>    <span class="k">def</span> <span class="nf">set_cpp_env</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">product_info</span><span class="p">):</span>
+<div class="viewcode-block" id="SalomeEnviron.set_cpp_env"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.set_cpp_env">[docs]</a>    <span class="k">def</span> <span class="nf">set_cpp_env</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">product_info</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Sets the generic environment for a SALOME cpp product.</span>
 <span class="sd">        </span>
-<span class="sd">        :param product_info Config: The product description</span>
+<span class="sd">        :param product_info: (Config) The product description</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="c1"># Construct XXX_ROOT_DIR</span>
         <span class="n">env_root_dir</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">&quot;_ROOT_DIR&quot;</span><span class="p">)</span>
                 <span class="p">]</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">prepend</span><span class="p">(</span><span class="s1">&#39;PYTHONPATH&#39;</span><span class="p">,</span> <span class="n">l</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="SalomeEnviron.load_cfg_environment"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.load_cfg_environment">[docs]</a>    <span class="k">def</span> <span class="nf">load_cfg_environment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cfg_env</span><span class="p">):</span>
+<div class="viewcode-block" id="SalomeEnviron.load_cfg_environment"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.load_cfg_environment">[docs]</a>    <span class="k">def</span> <span class="nf">load_cfg_environment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cfg_env</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Loads environment defined in cfg_env </span>
 <span class="sd">        </span>
-<span class="sd">        :param cfg_env Config: A config containing an environment    </span>
+<span class="sd">        :param cfg_env: (Config) A config containing an environment    </span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="c1"># Loop on cfg_env values</span>
         <span class="k">for</span> <span class="n">env_def</span> <span class="ow">in</span> <span class="n">cfg_env</span><span class="p">:</span>
             <span class="k">else</span><span class="p">:</span>
                 <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">env_def</span><span class="p">,</span> <span class="n">val</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="SalomeEnviron.set_a_product"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.set_a_product">[docs]</a>    <span class="k">def</span> <span class="nf">set_a_product</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">product</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+<div class="viewcode-block" id="SalomeEnviron.set_a_product"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.set_a_product">[docs]</a>    <span class="k">def</span> <span class="nf">set_a_product</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">product</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Sets the environment of a product. </span>
 <span class="sd">        </span>
-<span class="sd">        :param product str: The product name</span>
-<span class="sd">        :param logger Logger: The logger instance to display messages</span>
+<span class="sd">        :param product: (str) The product name</span>
+<span class="sd">        :param logger: (Logger) The logger instance to display messages</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
         <span class="c1"># Get the informations corresponding to the product</span>
         
             
 
-<div class="viewcode-block" id="SalomeEnviron.run_env_script"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.run_env_script">[docs]</a>    <span class="k">def</span> <span class="nf">run_env_script</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">product_info</span><span class="p">,</span> <span class="n">logger</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">native</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
-        <span class="sd">&quot;&quot;&quot;\</span>
-<span class="sd">        Runs an environment script. </span>
+<div class="viewcode-block" id="SalomeEnviron.run_env_script"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.run_env_script">[docs]</a>    <span class="k">def</span> <span class="nf">run_env_script</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">product_info</span><span class="p">,</span> <span class="n">logger</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">native</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Runs an environment script. </span>
 <span class="sd">        </span>
-<span class="sd">        :param product_info Config: The product description</span>
-<span class="sd">        :param logger Logger: The logger instance to display messages</span>
-<span class="sd">        :param native Boolean: if True load set_native_env instead of set_env</span>
+<span class="sd">        :param product_info: (Config) The product description</span>
+<span class="sd">        :param logger: (Logger) The logger instance to display messages</span>
+<span class="sd">        :param native: (bool) If True load set_native_env instead of set_env</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">env_script</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">env_script</span>
         <span class="c1"># Check that the script exists</span>
             <span class="n">traceback</span><span class="o">.</span><span class="n">print_tb</span><span class="p">(</span><span class="n">exceptionTraceback</span><span class="p">)</span>
             <span class="n">traceback</span><span class="o">.</span><span class="n">print_exc</span><span class="p">()</span></div>
 
-<div class="viewcode-block" id="SalomeEnviron.run_simple_env_script"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.run_simple_env_script">[docs]</a>    <span class="k">def</span> <span class="nf">run_simple_env_script</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">script_path</span><span class="p">,</span> <span class="n">logger</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-        <span class="sd">&quot;&quot;&quot;Runs an environment script. Same as run_env_script, but with a </span>
-<span class="sd">           script path as parameter.</span>
+<div class="viewcode-block" id="SalomeEnviron.run_simple_env_script"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.run_simple_env_script">[docs]</a>    <span class="k">def</span> <span class="nf">run_simple_env_script</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">script_path</span><span class="p">,</span> <span class="n">logger</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Runs an environment script. Same as run_env_script, but with a </span>
+<span class="sd">          script path as parameter.</span>
 <span class="sd">        </span>
-<span class="sd">        :param script_path str: a path to an environment script</span>
-<span class="sd">        :param logger Logger: The logger instance to display messages</span>
+<span class="sd">        :param script_path: (str) A path to an environment script</span>
+<span class="sd">        :param logger: (Logger) The logger instance to display messages</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">enable_simple_env_script</span><span class="p">:</span>
             <span class="k">return</span>
             <span class="n">traceback</span><span class="o">.</span><span class="n">print_tb</span><span class="p">(</span><span class="n">exceptionTraceback</span><span class="p">)</span>
             <span class="n">traceback</span><span class="o">.</span><span class="n">print_exc</span><span class="p">()</span></div>
 
-<div class="viewcode-block" id="SalomeEnviron.set_products"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.set_products">[docs]</a>    <span class="k">def</span> <span class="nf">set_products</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">src_root</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="SalomeEnviron.set_products"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.set_products">[docs]</a>    <span class="k">def</span> <span class="nf">set_products</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">src_root</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Sets the environment for all the products. </span>
 <span class="sd">        </span>
-<span class="sd">        :param logger Logger: The logger instance to display messages</span>
-<span class="sd">        :param src_root src: the application working directory</span>
+<span class="sd">        :param logger: (Logger) The logger instance to display messages</span>
+<span class="sd">        :param src_root: the application working directory</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">add_line</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">add_comment</span><span class="p">(</span><span class="s1">&#39;setting environ for all products&#39;</span><span class="p">)</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">set_a_product</span><span class="p">(</span><span class="n">product</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">finish</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span></div>
  
-<div class="viewcode-block" id="SalomeEnviron.set_full_environ"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.set_full_environ">[docs]</a>    <span class="k">def</span> <span class="nf">set_full_environ</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">env_info</span><span class="p">):</span>
-        <span class="sd">&quot;&quot;&quot;Sets the full environment for products </span>
-<span class="sd">           specified in env_info dictionary. </span>
+<div class="viewcode-block" id="SalomeEnviron.set_full_environ"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.SalomeEnviron.set_full_environ">[docs]</a>    <span class="k">def</span> <span class="nf">set_full_environ</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">env_info</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Sets the full environment for products </span>
+<span class="sd">        specified in env_info dictionary. </span>
 <span class="sd">        </span>
-<span class="sd">        :param logger Logger: The logger instance to display messages</span>
-<span class="sd">        :param env_info list: the list of products</span>
+<span class="sd">        :param logger: (Logger) The logger instance to display messages</span>
+<span class="sd">        :param env_info: (list) the list of products</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="c1"># set product environ</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">set_application_env</span><span class="p">(</span><span class="n">logger</span><span class="p">)</span>
         <span class="k">for</span> <span class="n">product</span> <span class="ow">in</span> <span class="n">env_info</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">set_a_product</span><span class="p">(</span><span class="n">product</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span></div></div>
 
-<div class="viewcode-block" id="FileEnvWriter"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.FileEnvWriter">[docs]</a><span class="k">class</span> <span class="nc">FileEnvWriter</span><span class="p">:</span>
-    <span class="sd">&quot;&quot;&quot;Class to dump the environment to a file.</span>
+<div class="viewcode-block" id="FileEnvWriter"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.FileEnvWriter">[docs]</a><span class="k">class</span> <span class="nc">FileEnvWriter</span><span class="p">:</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Class to dump the environment to a file.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">out_dir</span><span class="p">,</span> <span class="n">src_root</span><span class="p">,</span> <span class="n">env_info</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Initialization</span>
 
-<span class="sd">        :param cfg Config: the global config</span>
-<span class="sd">        :param logger Logger: The logger instance to display messages</span>
-<span class="sd">        :param out_dir str: The directory path where t put the output files</span>
-<span class="sd">        :param src_root str: The application working directory</span>
-<span class="sd">        :param env_info str: The list of products to add in the files.</span>
+<span class="sd">        :param cfg: (Config) the global config</span>
+<span class="sd">        :param logger: (Logger) The logger instance to display messages</span>
+<span class="sd">        :param out_dir: (str) The directory path where t put the output files</span>
+<span class="sd">        :param src_root: (str) The application working directory</span>
+<span class="sd">        :param env_info: (str) The list of products to add in the files.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">config</span> <span class="o">=</span> <span class="n">config</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span> <span class="o">=</span> <span class="n">logger</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">silent</span> <span class="o">=</span> <span class="kc">True</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">env_info</span> <span class="o">=</span> <span class="n">env_info</span>
 
-<div class="viewcode-block" id="FileEnvWriter.write_env_file"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.FileEnvWriter.write_env_file">[docs]</a>    <span class="k">def</span> <span class="nf">write_env_file</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">,</span> <span class="n">forBuild</span><span class="p">,</span> <span class="n">shell</span><span class="p">,</span> <span class="n">for_package</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="FileEnvWriter.write_env_file"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.FileEnvWriter.write_env_file">[docs]</a>    <span class="k">def</span> <span class="nf">write_env_file</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">,</span> <span class="n">forBuild</span><span class="p">,</span> <span class="n">shell</span><span class="p">,</span> <span class="n">for_package</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Create an environment file.</span>
 <span class="sd">        </span>
-<span class="sd">        :param filename str: the file path</span>
-<span class="sd">        :param forBuild bool: if true, the build environment</span>
-<span class="sd">        :param shell str: the type of file wanted (.sh, .bat)</span>
-<span class="sd">        :return: The path to the generated file</span>
-<span class="sd">        :rtype: str</span>
+<span class="sd">        :param filename: (str) the file path</span>
+<span class="sd">        :param forBuild: (bool) if true, the build environment</span>
+<span class="sd">        :param shell: (str) the type of file wanted (.sh, .bat)</span>
+<span class="sd">        :return: (str) The path to the generated file</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">silent</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Create environment file </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">filename</span><span class="p">))</span>
 
         <span class="k">return</span> <span class="n">env_file</span><span class="o">.</span><span class="n">name</span></div>
    
-<div class="viewcode-block" id="FileEnvWriter.write_cfgForPy_file"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.FileEnvWriter.write_cfgForPy_file">[docs]</a>    <span class="k">def</span> <span class="nf">write_cfgForPy_file</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
+<div class="viewcode-block" id="FileEnvWriter.write_cfgForPy_file"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.FileEnvWriter.write_cfgForPy_file">[docs]</a>    <span class="k">def</span> <span class="nf">write_cfgForPy_file</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
                             <span class="n">filename</span><span class="p">,</span>
                             <span class="n">additional_env</span> <span class="o">=</span> <span class="p">{},</span>
                             <span class="n">for_package</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
                             <span class="n">with_commercial</span> <span class="o">=</span> <span class="kc">True</span><span class="p">):</span>
-        <span class="sd">&quot;&quot;&quot;Append to current opened aFile a cfgForPy </span>
-<span class="sd">           environment (SALOME python launcher).</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Append to current opened aFile a cfgForPy </span>
+<span class="sd">        environment (SALOME python launcher).</span>
 <span class="sd">           </span>
-<span class="sd">        :param filename str: the file path</span>
-<span class="sd">        :param additional_env dict: a dictionary of additional variables </span>
-<span class="sd">                                    to add to the environment</span>
-<span class="sd">        :param for_package str: If not None, produce a relative environment </span>
-<span class="sd">                                designed for a package. </span>
+<span class="sd">        :param filename: (str) the file path</span>
+<span class="sd">        :param additional_env: (dict) </span>
+<span class="sd">          a dictionary of additional variables to add to the environment</span>
+<span class="sd">        :param for_package: (str) </span>
+<span class="sd">          If not None, produce a relative environment </span>
+<span class="sd">          (designed for a package) </span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">silent</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Create configuration file </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">filename</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
         <span class="c1"># add cleanup and close</span>
         <span class="n">env</span><span class="o">.</span><span class="n">finish</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span></div></div>
 
-<div class="viewcode-block" id="Shell"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.Shell">[docs]</a><span class="k">class</span> <span class="nc">Shell</span><span class="p">:</span>
-    <span class="sd">&quot;&quot;&quot;\</span>
+<div class="viewcode-block" id="Shell"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.Shell">[docs]</a><span class="k">class</span> <span class="nc">Shell</span><span class="p">:</span>
+    <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Definition of a Shell.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">extension</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Initialization.</span>
 
-<span class="sd">        :param name str: the shell name</span>
-<span class="sd">        :param extension str: the shell extension</span>
+<span class="sd">        :param name: (str) the shell name</span>
+<span class="sd">        :param extension: (str) the shell extension</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">extension</span> <span class="o">=</span> <span class="n">extension</span></div>
 
-<div class="viewcode-block" id="load_environment"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.load_environment">[docs]</a><span class="k">def</span> <span class="nf">load_environment</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">build</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+<div class="viewcode-block" id="load_environment"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environment.load_environment">[docs]</a><span class="k">def</span> <span class="nf">load_environment</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">build</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;Loads the environment (used to run the tests, for example).</span>
 <span class="sd">    </span>
-<span class="sd">    :param config Config: the global config</span>
-<span class="sd">    :param build bool: build environement if True</span>
-<span class="sd">    :param logger Logger: The logger instance to display messages</span>
+<span class="sd">    :param config: (Config) the global config</span>
+<span class="sd">    :param build: (bool) build environement if True</span>
+<span class="sd">    :param logger: (Logger) The logger instance to display messages</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">environ</span> <span class="o">=</span> <span class="n">SalomeEnviron</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">Environ</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">),</span> <span class="n">build</span><span class="p">)</span>
     <span class="n">environ</span><span class="o">.</span><span class="n">set_application_env</span><span class="p">(</span><span class="n">logger</span><span class="p">)</span>
index eaa6e71812811e8551774e9fd72b620982157f27..ca6294f1428dda4434ad7350895ed0b7e337f4af 100644 (file)
       <span class="k">else</span><span class="p">:</span>
         <span class="nb">print</span> <span class="s2">&quot;</span><span class="si">{:&lt;30}</span><span class="s2">   </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s2">&quot; &quot;</span><span class="p">,</span> <span class="n">j</span><span class="p">)</span> 
         
-<div class="viewcode-block" id="print_split_environs"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environs.print_split_environs">[docs]</a><span class="k">def</span> <span class="nf">print_split_environs</span><span class="p">(</span><span class="n">args</span><span class="o">=</span><span class="p">[]):</span>
+<div class="viewcode-block" id="print_split_environs"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environs.print_split_environs">[docs]</a><span class="k">def</span> <span class="nf">print_split_environs</span><span class="p">(</span><span class="n">args</span><span class="o">=</span><span class="p">[]):</span>
   <span class="n">env</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span>
   <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">env</span><span class="p">):</span>
       <span class="k">if</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="o">==</span><span class="mi">0</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">i</span> <span class="ow">in</span> <span class="n">args</span><span class="p">):</span>
         <span class="n">_printOneLineOrNot</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="print_split_pattern_environs"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environs.print_split_pattern_environs">[docs]</a><span class="k">def</span> <span class="nf">print_split_pattern_environs</span><span class="p">(</span><span class="n">args</span><span class="o">=</span><span class="p">[]):</span>
+<div class="viewcode-block" id="print_split_pattern_environs"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environs.print_split_pattern_environs">[docs]</a><span class="k">def</span> <span class="nf">print_split_pattern_environs</span><span class="p">(</span><span class="n">args</span><span class="o">=</span><span class="p">[]):</span>
   <span class="n">env</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span>
   <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">env</span><span class="p">):</span>
       <span class="n">ok</span> <span class="o">=</span> <span class="kc">False</span>
       <span class="k">if</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="o">==</span><span class="mi">0</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">ok</span><span class="p">):</span>
         <span class="n">_printOneLineOrNot</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="print_grep_environs"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environs.print_grep_environs">[docs]</a><span class="k">def</span> <span class="nf">print_grep_environs</span><span class="p">(</span><span class="n">args</span><span class="o">=</span><span class="p">[]):</span>
+<div class="viewcode-block" id="print_grep_environs"><a class="viewcode-back" href="../../apidoc_src/src.html#src.environs.print_grep_environs">[docs]</a><span class="k">def</span> <span class="nf">print_grep_environs</span><span class="p">(</span><span class="n">args</span><span class="o">=</span><span class="p">[]):</span>
   <span class="n">env</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span>
   <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">env</span><span class="p">):</span>
       <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="n">env</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;:&quot;</span><span class="p">):</span>
index 1cc4d325f817364c35b8affb05111070beb2396e..e410e8cce8d202ef1371ed56c647b2c45df67e42 100644 (file)
@@ -83,7 +83,7 @@
 
 <span class="nb">print</span> <span class="n">logging</span><span class="o">.</span><span class="vm">__file__</span>
 
-<div class="viewcode-block" id="initMyLogger"><a class="viewcode-back" href="../../../commands/apidoc/src.example.html#src.example.essai_logging_1.initMyLogger">[docs]</a><span class="k">def</span> <span class="nf">initMyLogger</span><span class="p">(</span><span class="n">fmt</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="initMyLogger"><a class="viewcode-back" href="../../../apidoc_src/src.example.html#src.example.essai_logging_1.initMyLogger">[docs]</a><span class="k">def</span> <span class="nf">initMyLogger</span><span class="p">(</span><span class="n">fmt</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
   <span class="c1"># http://sametmax.com/ecrire-des-logs-en-python/</span>
   <span class="c1"># https://docs.python.org/3/library/time.html#time.strftime</span>
   <span class="nb">print</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">init MyLogger, fmt=&#39;</span><span class="si">%s</span><span class="s2">&#39;, level=&#39;</span><span class="si">%s</span><span class="s2">&#39;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">fmt</span><span class="p">,</span> <span class="n">level</span><span class="p">)</span>
     <span class="n">logger</span><span class="o">.</span><span class="n">setLevel</span><span class="p">(</span><span class="n">logger</span><span class="o">.</span><span class="n">INFO</span><span class="p">)</span> <span class="c1"># ou DEBUG</span></div>
   <span class="c1"># logger.info(&#39;\n&#39; + PP.pformat(dir(logger)))</span>
   
-<div class="viewcode-block" id="getMyLogger"><a class="viewcode-back" href="../../../commands/apidoc/src.example.html#src.example.essai_logging_1.getMyLogger">[docs]</a><span class="k">def</span> <span class="nf">getMyLogger</span><span class="p">():</span>
+<div class="viewcode-block" id="getMyLogger"><a class="viewcode-back" href="../../../apidoc_src/src.example.html#src.example.essai_logging_1.getMyLogger">[docs]</a><span class="k">def</span> <span class="nf">getMyLogger</span><span class="p">():</span>
   <span class="k">return</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s1">&#39;MyLogger&#39;</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="testLogger1"><a class="viewcode-back" href="../../../commands/apidoc/src.example.html#src.example.essai_logging_1.testLogger1">[docs]</a><span class="k">def</span> <span class="nf">testLogger1</span><span class="p">():</span>
+<div class="viewcode-block" id="testLogger1"><a class="viewcode-back" href="../../../apidoc_src/src.example.html#src.example.essai_logging_1.testLogger1">[docs]</a><span class="k">def</span> <span class="nf">testLogger1</span><span class="p">():</span>
   <span class="n">logger</span> <span class="o">=</span> <span class="n">getMyLogger</span><span class="p">()</span>
   <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s1">&#39;test logger debug&#39;</span><span class="p">)</span>
   <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;test logger info&#39;</span><span class="p">)</span>
index 626d129c808813d0921606ebc540036cbbce0679..f721734da4d4c98f1287062b9a014c6e57aca76d 100644 (file)
 
 <span class="nb">print</span> <span class="n">logging</span><span class="o">.</span><span class="vm">__file__</span>
 
-<div class="viewcode-block" id="MyFormatter"><a class="viewcode-back" href="../../../commands/apidoc/src.example.html#src.example.essai_logging_2.MyFormatter">[docs]</a><span class="k">class</span> <span class="nc">MyFormatter</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">Formatter</span><span class="p">):</span>
-<div class="viewcode-block" id="MyFormatter.format"><a class="viewcode-back" href="../../../commands/apidoc/src.example.html#src.example.essai_logging_2.MyFormatter.format">[docs]</a>  <span class="k">def</span> <span class="nf">format</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">record</span><span class="p">):</span>
+<div class="viewcode-block" id="MyFormatter"><a class="viewcode-back" href="../../../apidoc_src/src.example.html#src.example.essai_logging_2.MyFormatter">[docs]</a><span class="k">class</span> <span class="nc">MyFormatter</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">Formatter</span><span class="p">):</span>
+<div class="viewcode-block" id="MyFormatter.format"><a class="viewcode-back" href="../../../apidoc_src/src.example.html#src.example.essai_logging_2.MyFormatter.format">[docs]</a>  <span class="k">def</span> <span class="nf">format</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">record</span><span class="p">):</span>
     <span class="c1"># print &quot;&quot;, record.levelname #type(record), dir(record)</span>
     <span class="k">if</span> <span class="n">record</span><span class="o">.</span><span class="n">levelname</span> <span class="o">==</span> <span class="s2">&quot;INFO&quot;</span><span class="p">:</span> 
       <span class="k">return</span> <span class="nb">str</span><span class="p">(</span><span class="n">record</span><span class="o">.</span><span class="n">msg</span><span class="p">)</span>
     <span class="k">else</span><span class="p">:</span>
       <span class="k">return</span> <span class="nb">super</span><span class="p">(</span><span class="n">MyFormatter</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">record</span><span class="p">)</span></div></div>
 
-<div class="viewcode-block" id="initMyLogger"><a class="viewcode-back" href="../../../commands/apidoc/src.example.html#src.example.essai_logging_2.initMyLogger">[docs]</a><span class="k">def</span> <span class="nf">initMyLogger</span><span class="p">(</span><span class="n">fmt</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="initMyLogger"><a class="viewcode-back" href="../../../apidoc_src/src.example.html#src.example.essai_logging_2.initMyLogger">[docs]</a><span class="k">def</span> <span class="nf">initMyLogger</span><span class="p">(</span><span class="n">fmt</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
   <span class="c1"># http://sametmax.com/ecrire-des-logs-en-python/</span>
   <span class="c1"># https://docs.python.org/3/library/time.html#time.strftime</span>
   <span class="nb">print</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">init MyLogger, fmt=&#39;</span><span class="si">%s</span><span class="s2">&#39;, level=&#39;</span><span class="si">%s</span><span class="s2">&#39;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">fmt</span><span class="p">,</span> <span class="n">level</span><span class="p">)</span>
     <span class="n">logger</span><span class="o">.</span><span class="n">setLevel</span><span class="p">(</span><span class="n">logger</span><span class="o">.</span><span class="n">INFO</span><span class="p">)</span> <span class="c1"># ou DEBUG</span></div>
   <span class="c1"># logger.info(&#39;\n&#39; + PP.pformat(dir(logger)))</span>
   
-<div class="viewcode-block" id="getMyLogger"><a class="viewcode-back" href="../../../commands/apidoc/src.example.html#src.example.essai_logging_2.getMyLogger">[docs]</a><span class="k">def</span> <span class="nf">getMyLogger</span><span class="p">():</span>
+<div class="viewcode-block" id="getMyLogger"><a class="viewcode-back" href="../../../apidoc_src/src.example.html#src.example.essai_logging_2.getMyLogger">[docs]</a><span class="k">def</span> <span class="nf">getMyLogger</span><span class="p">():</span>
   <span class="k">return</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s1">&#39;MyLogger&#39;</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="testLogger1"><a class="viewcode-back" href="../../../commands/apidoc/src.example.html#src.example.essai_logging_2.testLogger1">[docs]</a><span class="k">def</span> <span class="nf">testLogger1</span><span class="p">():</span>
+<div class="viewcode-block" id="testLogger1"><a class="viewcode-back" href="../../../apidoc_src/src.example.html#src.example.essai_logging_2.testLogger1">[docs]</a><span class="k">def</span> <span class="nf">testLogger1</span><span class="p">():</span>
   <span class="n">logger</span> <span class="o">=</span> <span class="n">getMyLogger</span><span class="p">()</span>
   <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s1">&#39;test logger debug&#39;</span><span class="p">)</span>
   <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;test logger info&#39;</span><span class="p">)</span>
index 835bc40924172dc2b99550f27b14b90d2bea2a1f..3c1280db1e65119936b1dfa5819b6d39c39ccf89 100644 (file)
 <span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
 
 
-<div class="viewcode-block" id="ExceptionSat"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.exceptionSat.ExceptionSat">[docs]</a><span class="k">class</span> <span class="nc">ExceptionSat</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;rename Exception Class for sat convenience (for future...)</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<div class="viewcode-block" id="ExceptionSat"><a class="viewcode-back" href="../../apidoc_src/src.html#src.exceptionSat.ExceptionSat">[docs]</a><span class="k">class</span> <span class="nc">ExceptionSat</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;\</span>
+<span class="sd">    rename Exception Class for sat convenience (for future...)</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">pass</span></div>
 
 </pre></div>
index e34f6db164e0b3e4f20d22b25af6f02e28bcabc7..64836dd713353aa9e1418ddf0b317bb2cbcda7a2 100644 (file)
@@ -64,7 +64,8 @@
 
 <span class="kn">import</span> <span class="nn">os</span>
 
-<span class="n">bat_header</span><span class="o">=</span><span class="s2">&quot;&quot;&quot;@echo off</span>
+<span class="n">bat_header</span><span class="o">=</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">@echo off</span>
 
 <span class="s2">rem The following variables are used only in case of a sat package</span>
 <span class="s2">set out_dir_Path=%~dp0</span>
@@ -74,7 +75,8 @@
 <span class="s2">&quot;&quot;&quot;</span>
 
 
-<span class="n">bash_header</span><span class="o">=</span><span class="s2">&quot;&quot;&quot;#!/bin/bash</span>
+<span class="n">bash_header</span><span class="o">=</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">#!/bin/bash</span>
 <span class="s2">##########################################################################</span>
 <span class="s2">#</span>
 <span class="s2">#### cleandup ###</span>
 <span class="s2">###########################################################################</span>
 <span class="s2">&quot;&quot;&quot;</span>
 
-<span class="n">cfg_header</span><span class="o">=</span><span class="s1">&#39;&#39;&#39;[SALOME Configuration]</span>
-<span class="s1">&#39;&#39;&#39;</span>
+<span class="n">cfg_header</span><span class="o">=</span><span class="s2">&quot;&quot;&quot;[SALOME Configuration]</span>
+<span class="s2">&quot;&quot;&quot;</span>
 
-<span class="n">Launcher_header</span><span class="o">=</span><span class="s1">&#39;&#39;&#39;# a generated SALOME Configuration file using python syntax</span>
-<span class="s1">&#39;&#39;&#39;</span>
+<span class="n">Launcher_header</span><span class="o">=</span><span class="s2">&quot;&quot;&quot;# a generated SALOME Configuration file using python syntax</span>
+<span class="s2">&quot;&quot;&quot;</span>
 
-<div class="viewcode-block" id="get_file_environ"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.get_file_environ">[docs]</a><span class="k">def</span> <span class="nf">get_file_environ</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">shell</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="get_file_environ"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.get_file_environ">[docs]</a><span class="k">def</span> <span class="nf">get_file_environ</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">shell</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;Instantiate correct FileEnvironment sub-class.</span>
 <span class="sd">    </span>
-<span class="sd">    :param output file: the output file stream.</span>
-<span class="sd">    :param shell str: the type of shell syntax to use.</span>
-<span class="sd">    :param environ dict: a potential additional environment.</span>
+<span class="sd">    :param output: (file) the output file stream.</span>
+<span class="sd">    :param shell: (str) the type of shell syntax to use.</span>
+<span class="sd">    :param environ: (dict) a potential additional environment.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="n">shell</span> <span class="o">==</span> <span class="s2">&quot;bash&quot;</span><span class="p">:</span>
         <span class="k">return</span> <span class="n">BashFileEnviron</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
         <span class="k">return</span> <span class="n">ContextFileEnviron</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
     <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;FileEnviron: Unknown shell = </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">shell</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="FileEnviron"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron">[docs]</a><span class="k">class</span> <span class="nc">FileEnviron</span><span class="p">:</span>
-    <span class="sd">&quot;&quot;&quot;Base class for shell environment</span>
+<div class="viewcode-block" id="FileEnviron"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.FileEnviron">[docs]</a><span class="k">class</span> <span class="nc">FileEnviron</span><span class="p">:</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Base class for shell environment</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Initialization</span>
 <span class="sd">        </span>
-<span class="sd">        :param output file: the output file stream.</span>
-<span class="sd">        :param environ dict: a potential additional environment.</span>
+<span class="sd">        :param output: (file) the output file stream.</span>
+<span class="sd">        :param environ: (dict) a potential additional environment.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_do_init</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
 
     <span class="k">def</span> <span class="nf">_do_init</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Initialization</span>
 <span class="sd">        </span>
-<span class="sd">        :param output file: the output file stream.</span>
-<span class="sd">        :param environ dict: a potential additional environment.</span>
+<span class="sd">        :param output: (file) the output file stream.</span>
+<span class="sd">        :param environ: (dict) a potential additional environment.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="n">output</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">toclean</span> <span class="o">=</span> <span class="p">[]</span>
         <span class="k">else</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">environ</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span>
 
-<div class="viewcode-block" id="FileEnviron.add_line"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.add_line">[docs]</a>    <span class="k">def</span> <span class="nf">add_line</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">number</span><span class="p">):</span>
+<div class="viewcode-block" id="FileEnviron.add_line"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.FileEnviron.add_line">[docs]</a>    <span class="k">def</span> <span class="nf">add_line</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">number</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Add some empty lines in the shell file</span>
 <span class="sd">        </span>
-<span class="sd">        :param number int: the number of lines to add</span>
+<span class="sd">        :param number: (int) the number of lines to add</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">*</span> <span class="n">number</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="FileEnviron.add_comment"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.add_comment">[docs]</a>    <span class="k">def</span> <span class="nf">add_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
+<div class="viewcode-block" id="FileEnviron.add_comment"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.FileEnviron.add_comment">[docs]</a>    <span class="k">def</span> <span class="nf">add_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Add a comment in the shell file</span>
 <span class="sd">        </span>
-<span class="sd">        :param comment str: the comment to add</span>
+<span class="sd">        :param comment: (str) the comment to add</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;# </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">comment</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="FileEnviron.add_echo"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.add_echo">[docs]</a>    <span class="k">def</span> <span class="nf">add_echo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
-        <span class="sd">&quot;&quot;&quot;Add a &quot;echo&quot; in the shell file</span>
+<div class="viewcode-block" id="FileEnviron.add_echo"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.FileEnviron.add_echo">[docs]</a>    <span class="k">def</span> <span class="nf">add_echo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Add a &#39;echo&#39; in the shell file</span>
 <span class="sd">        </span>
-<span class="sd">        :param text str: the text to echo</span>
+<span class="sd">        :param text: (str) the text to echo</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;echo </span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">text</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="FileEnviron.add_warning"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.add_warning">[docs]</a>    <span class="k">def</span> <span class="nf">add_warning</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">warning</span><span class="p">):</span>
+<div class="viewcode-block" id="FileEnviron.add_warning"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.FileEnviron.add_warning">[docs]</a>    <span class="k">def</span> <span class="nf">add_warning</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">warning</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Add a warning &quot;echo&quot; in the shell file</span>
 <span class="sd">        </span>
-<span class="sd">        :param warning str: the text to echo</span>
+<span class="sd">        :param warning: (str) the text to echo</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;echo &quot;WARNING </span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">warning</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="FileEnviron.append_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.append_value">[docs]</a>    <span class="k">def</span> <span class="nf">append_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;append value to key using sep</span>
+<div class="viewcode-block" id="FileEnviron.append_value"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.FileEnviron.append_value">[docs]</a>    <span class="k">def</span> <span class="nf">append_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;append value to key using sep</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to append</span>
-<span class="sd">        :param value str: the value to append to key</span>
-<span class="sd">        :param sep str: the separator string</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to append</span>
+<span class="sd">        :param value: (str) the value to append to key</span>
+<span class="sd">        :param sep: (str) the separator string</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> <span class="o">+</span> <span class="n">sep</span> <span class="o">+</span> <span class="n">value</span><span class="p">)</span>
         <span class="k">if</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">toclean</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">toclean</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="p">))</span></div>
 
-<div class="viewcode-block" id="FileEnviron.append"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.append">[docs]</a>    <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Same as append_value but the value argument can be a list</span>
+<div class="viewcode-block" id="FileEnviron.append"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.FileEnviron.append">[docs]</a>    <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Same as append_value but the value argument can be a list</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to append</span>
-<span class="sd">        :param value str or list: the value(s) to append to key</span>
-<span class="sd">        :param sep str: the separator string</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to append</span>
+<span class="sd">        :param value: (str or list) the value(s) to append to key</span>
+<span class="sd">        :param sep: (str) the separator string</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">append_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">),</span> <span class="n">sep</span><span class="p">)</span>
         <span class="k">else</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">append_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="FileEnviron.prepend_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.prepend_value">[docs]</a>    <span class="k">def</span> <span class="nf">prepend_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;prepend value to key using sep</span>
+<div class="viewcode-block" id="FileEnviron.prepend_value"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.FileEnviron.prepend_value">[docs]</a>    <span class="k">def</span> <span class="nf">prepend_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;prepend value to key using sep</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to prepend</span>
-<span class="sd">        :param value str: the value to prepend to key</span>
-<span class="sd">        :param sep str: the separator string</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to prepend</span>
+<span class="sd">        :param value: str) the value to prepend to key</span>
+<span class="sd">        :param sep: (str) the separator string</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="o">+</span> <span class="n">sep</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">))</span>
         <span class="k">if</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">toclean</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">toclean</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="p">))</span></div>
 
-<div class="viewcode-block" id="FileEnviron.prepend"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.prepend">[docs]</a>    <span class="k">def</span> <span class="nf">prepend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Same as prepend_value but the value argument can be a list</span>
+<div class="viewcode-block" id="FileEnviron.prepend"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.FileEnviron.prepend">[docs]</a>    <span class="k">def</span> <span class="nf">prepend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Same as prepend_value but the value argument can be a list</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to prepend</span>
-<span class="sd">        :param value str or list: the value(s) to prepend to key</span>
-<span class="sd">        :param sep str: the separator string</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to prepend</span>
+<span class="sd">        :param value: (str or list) the value(s) to prepend to key</span>
+<span class="sd">        :param sep: (str) the separator string</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">prepend_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">),</span> <span class="n">sep</span><span class="p">)</span>
         <span class="k">else</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">prepend_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="FileEnviron.is_defined"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.is_defined">[docs]</a>    <span class="k">def</span> <span class="nf">is_defined</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Check if the key exists in the environment</span>
+<div class="viewcode-block" id="FileEnviron.is_defined"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.FileEnviron.is_defined">[docs]</a>    <span class="k">def</span> <span class="nf">is_defined</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Check if the key exists in the environment</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to check</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to check</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">return</span> <span class="p">(</span><span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="FileEnviron.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Set the environment variable &quot;key&quot; to value &quot;value&quot;</span>
+<div class="viewcode-block" id="FileEnviron.set"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.FileEnviron.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Set the environment variable &quot;key&quot; to value &quot;value&quot;</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to set</span>
-<span class="sd">        :param value str: the value</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to set</span>
+<span class="sd">        :param value: (str) the value</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;set is not implement for this shell!&quot;</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="FileEnviron.get"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Get the value of the environment variable &quot;key&quot;</span>
+<div class="viewcode-block" id="FileEnviron.get"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.FileEnviron.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Get the value of the environment variable &quot;key&quot;</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">return</span> <span class="s1">&#39;${</span><span class="si">%s</span><span class="s1">}&#39;</span> <span class="o">%</span> <span class="n">key</span></div>
 
-<div class="viewcode-block" id="FileEnviron.command_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.command_value">[docs]</a>    <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Get the value given by the system command &quot;command&quot; </span>
-<span class="sd">           and put it in the environment variable key.</span>
-<span class="sd">           Has to be overwritten in the derived classes</span>
-<span class="sd">           This can be seen as a virtual method</span>
+<div class="viewcode-block" id="FileEnviron.command_value"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.FileEnviron.command_value">[docs]</a>    <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Get the value given by the system command &quot;command&quot; </span>
+<span class="sd">        and put it in the environment variable key.</span>
+<span class="sd">        Has to be overwritten in the derived classes</span>
+<span class="sd">        This can be seen as a virtual method</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable</span>
-<span class="sd">        :param command str: the command to execute</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable</span>
+<span class="sd">        :param command: (str) the command to execute</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;command_value is not implement &quot;</span>
                                   <span class="s2">&quot;for this shell!&quot;</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="FileEnviron.finish"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.finish">[docs]</a>    <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+<div class="viewcode-block" id="FileEnviron.finish"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.FileEnviron.finish">[docs]</a>    <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Add a final instruction in the out file (in case of file generation)</span>
 <span class="sd">        </span>
-<span class="sd">        :param required bool: Do nothing if required is False</span>
+<span class="sd">        :param required: (bool) Do nothing if required is False</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">for</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">toclean</span><span class="p">:</span>
             <span class="k">if</span> <span class="n">sep</span> <span class="o">!=</span> <span class="s1">&#39; &#39;</span><span class="p">:</span>
                 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;clean </span><span class="si">%s</span><span class="s1"> &quot;</span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="p">))</span></div></div>
 
-<div class="viewcode-block" id="BashFileEnviron"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BashFileEnviron">[docs]</a><span class="k">class</span> <span class="nc">BashFileEnviron</span><span class="p">(</span><span class="n">FileEnviron</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;Class for bash shell.</span>
+<div class="viewcode-block" id="BashFileEnviron"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.BashFileEnviron">[docs]</a><span class="k">class</span> <span class="nc">BashFileEnviron</span><span class="p">(</span><span class="n">FileEnviron</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Class for bash shell.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Initialization</span>
 <span class="sd">        </span>
-<span class="sd">        :param output file: the output file stream.</span>
-<span class="sd">        :param environ dict: a potential additional environment.</span>
+<span class="sd">        :param output: (file) the output file stream.</span>
+<span class="sd">        :param environ: (dict) a potential additional environment.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_do_init</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">bash_header</span><span class="p">)</span>
 
-<div class="viewcode-block" id="BashFileEnviron.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BashFileEnviron.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Set the environment variable &quot;key&quot; to value &quot;value&quot;</span>
+<div class="viewcode-block" id="BashFileEnviron.set"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.BashFileEnviron.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Set the environment variable &quot;key&quot; to value &quot;value&quot;</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to set</span>
-<span class="sd">        :param value str: the value</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to set</span>
+<span class="sd">        :param value: (str) the value</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;export </span><span class="si">%s</span><span class="s1">=&quot;</span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span></div>
 
-<div class="viewcode-block" id="BashFileEnviron.command_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BashFileEnviron.command_value">[docs]</a>    <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Get the value given by the system command &quot;command&quot; </span>
-<span class="sd">           and put it in the environment variable key.</span>
-<span class="sd">           Has to be overwritten in the derived classes</span>
-<span class="sd">           This can be seen as a virtual method</span>
+<div class="viewcode-block" id="BashFileEnviron.command_value"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.BashFileEnviron.command_value">[docs]</a>    <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Get the value given by the system command &quot;command&quot; </span>
+<span class="sd">        and put it in the environment variable key.</span>
+<span class="sd">        Has to be overwritten in the derived classes</span>
+<span class="sd">        This can be seen as a virtual method</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable</span>
-<span class="sd">        :param command str: the command to execute</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable</span>
+<span class="sd">        :param command: (str) the command to execute</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;export </span><span class="si">%s</span><span class="s1">=$(</span><span class="si">%s</span><span class="s1">)</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">))</span></div>
 
-<div class="viewcode-block" id="BashFileEnviron.finish"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BashFileEnviron.finish">[docs]</a>    <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+<div class="viewcode-block" id="BashFileEnviron.finish"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.BashFileEnviron.finish">[docs]</a>    <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Add a final instruction in the out file (in case of file generation)</span>
 <span class="sd">        </span>
-<span class="sd">        :param required bool: Do nothing if required is False</span>
+<span class="sd">        :param required: (bool) Do nothing if required is False</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="ow">not</span> <span class="n">required</span><span class="p">:</span>
             <span class="k">return</span>
         <span class="n">FileEnviron</span><span class="o">.</span><span class="n">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="p">)</span></div></div>
         
-<div class="viewcode-block" id="BatFileEnviron"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BatFileEnviron">[docs]</a><span class="k">class</span> <span class="nc">BatFileEnviron</span><span class="p">(</span><span class="n">FileEnviron</span><span class="p">):</span>
+<div class="viewcode-block" id="BatFileEnviron"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.BatFileEnviron">[docs]</a><span class="k">class</span> <span class="nc">BatFileEnviron</span><span class="p">(</span><span class="n">FileEnviron</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;for Windows batch shell.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Initialization</span>
 <span class="sd">        </span>
-<span class="sd">        :param output file: the output file stream.</span>
-<span class="sd">        :param environ dict: a potential additional environment.</span>
+<span class="sd">        :param output: (file) the output file stream.</span>
+<span class="sd">        :param environ: (dict) a potential additional environment.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_do_init</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">bat_header</span><span class="p">)</span>
 
-<div class="viewcode-block" id="BatFileEnviron.add_comment"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BatFileEnviron.add_comment">[docs]</a>    <span class="k">def</span> <span class="nf">add_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
+<div class="viewcode-block" id="BatFileEnviron.add_comment"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.BatFileEnviron.add_comment">[docs]</a>    <span class="k">def</span> <span class="nf">add_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Add a comment in the shell file</span>
 <span class="sd">        </span>
-<span class="sd">        :param comment str: the comment to add</span>
+<span class="sd">        :param comment: (str) the comment to add</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;rem </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">comment</span><span class="p">)</span></div>
     
-<div class="viewcode-block" id="BatFileEnviron.get"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BatFileEnviron.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Get the value of the environment variable &quot;key&quot;</span>
+<div class="viewcode-block" id="BatFileEnviron.get"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.BatFileEnviron.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Get the value of the environment variable &quot;key&quot;</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">return</span> <span class="s1">&#39;</span><span class="si">%%%s%%</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">key</span></div>
     
-<div class="viewcode-block" id="BatFileEnviron.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BatFileEnviron.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Set the environment variable &quot;key&quot; to value &quot;value&quot;</span>
+<div class="viewcode-block" id="BatFileEnviron.set"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.BatFileEnviron.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Set the environment variable &quot;key&quot; to value &quot;value&quot;</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to set</span>
-<span class="sd">        :param value str: the value</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to set</span>
+<span class="sd">        :param value: (str) the value</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;set </span><span class="si">%s</span><span class="s1">=</span><span class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span></div>
 
-<div class="viewcode-block" id="BatFileEnviron.command_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BatFileEnviron.command_value">[docs]</a>    <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Get the value given by the system command &quot;command&quot; </span>
-<span class="sd">           and put it in the environment variable key.</span>
-<span class="sd">           Has to be overwritten in the derived classes</span>
-<span class="sd">           This can be seen as a virtual method</span>
+<div class="viewcode-block" id="BatFileEnviron.command_value"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.BatFileEnviron.command_value">[docs]</a>    <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Get the value given by the system command &quot;command&quot; </span>
+<span class="sd">        and put it in the environment variable key.</span>
+<span class="sd">        Has to be overwritten in the derived classes</span>
+<span class="sd">        This can be seen as a virtual method</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable</span>
-<span class="sd">        :param command str: the command to execute</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable</span>
+<span class="sd">        :param command: (str) the command to execute</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;</span><span class="si">%s</span><span class="s1"> &gt; tmp.txt</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">command</span><span class="p">))</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;set /p </span><span class="si">%s</span><span class="s1"> =&lt; tmp.txt</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">))</span></div>
 
-<div class="viewcode-block" id="BatFileEnviron.finish"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BatFileEnviron.finish">[docs]</a>    <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
-        <span class="sd">&quot;&quot;&quot;Add a final instruction in the out file (in case of file generation)</span>
-<span class="sd">           In the particular windows case, do nothing</span>
+<div class="viewcode-block" id="BatFileEnviron.finish"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.BatFileEnviron.finish">[docs]</a>    <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Add a final instruction in the out file (in case of file generation)</span>
+<span class="sd">        In the particular windows case, do nothing</span>
 <span class="sd">        </span>
-<span class="sd">        :param required bool: Do nothing if required is False</span>
+<span class="sd">        :param required: (bool) Do nothing if required is False</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">return</span></div></div>
 
-<div class="viewcode-block" id="ContextFileEnviron"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron">[docs]</a><span class="k">class</span> <span class="nc">ContextFileEnviron</span><span class="p">(</span><span class="n">FileEnviron</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;Class for a salome context configuration file.</span>
+<div class="viewcode-block" id="ContextFileEnviron"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ContextFileEnviron">[docs]</a><span class="k">class</span> <span class="nc">ContextFileEnviron</span><span class="p">(</span><span class="n">FileEnviron</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Class for a salome context configuration file.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Initialization</span>
 <span class="sd">        </span>
-<span class="sd">        :param output file: the output file stream.</span>
-<span class="sd">        :param environ dict: a potential additional environment.</span>
+<span class="sd">        :param output: (file) the output file stream.</span>
+<span class="sd">        :param environ: (dict) a potential additional environment.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_do_init</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">cfg_header</span><span class="p">)</span>
 
-<div class="viewcode-block" id="ContextFileEnviron.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Set the environment variable &quot;key&quot; to value &quot;value&quot;</span>
+<div class="viewcode-block" id="ContextFileEnviron.set"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ContextFileEnviron.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Set the environment variable &quot;key&quot; to value &quot;value&quot;</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to set</span>
-<span class="sd">        :param value str: the value</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to set</span>
+<span class="sd">        :param value: (str) the value</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;</span><span class="si">%s</span><span class="s1">=&quot;</span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span></div>
 
-<div class="viewcode-block" id="ContextFileEnviron.get"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Get the value of the environment variable &quot;key&quot;</span>
+<div class="viewcode-block" id="ContextFileEnviron.get"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ContextFileEnviron.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Get the value of the environment variable &quot;key&quot;</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">return</span> <span class="s1">&#39;%(</span><span class="si">{0}</span><span class="s1">)s&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">key</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="ContextFileEnviron.command_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.command_value">[docs]</a>    <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Get the value given by the system command &quot;command&quot; </span>
-<span class="sd">           and put it in the environment variable key.</span>
-<span class="sd">           Has to be overwritten in the derived classes</span>
-<span class="sd">           This can be seen as a virtual method</span>
+<div class="viewcode-block" id="ContextFileEnviron.command_value"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ContextFileEnviron.command_value">[docs]</a>    <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Get the value given by the system command &quot;command&quot; </span>
+<span class="sd">        and put it in the environment variable key.</span>
+<span class="sd">        Has to be overwritten in the derived classes</span>
+<span class="sd">        This can be seen as a virtual method</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable</span>
-<span class="sd">        :param command str: the command to execute</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable</span>
+<span class="sd">        :param command: (str) the command to execute</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;command_value is not implement &quot;</span>
                                   <span class="s2">&quot;for salome context files!&quot;</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="ContextFileEnviron.add_echo"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.add_echo">[docs]</a>    <span class="k">def</span> <span class="nf">add_echo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
+<div class="viewcode-block" id="ContextFileEnviron.add_echo"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ContextFileEnviron.add_echo">[docs]</a>    <span class="k">def</span> <span class="nf">add_echo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Add a comment</span>
 <span class="sd">        </span>
-<span class="sd">        :param text str: the comment to add</span>
+<span class="sd">        :param text: (str) the comment to add</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">add_comment</span><span class="p">(</span><span class="n">text</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="ContextFileEnviron.add_warning"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.add_warning">[docs]</a>    <span class="k">def</span> <span class="nf">add_warning</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">warning</span><span class="p">):</span>
+<div class="viewcode-block" id="ContextFileEnviron.add_warning"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ContextFileEnviron.add_warning">[docs]</a>    <span class="k">def</span> <span class="nf">add_warning</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">warning</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Add a warning</span>
 <span class="sd">        </span>
-<span class="sd">        :param text str: the warning to add</span>
+<span class="sd">        :param text: (str) the warning to add</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">add_comment</span><span class="p">(</span><span class="s2">&quot;WARNING </span><span class="si">%s</span><span class="s2">&quot;</span>  <span class="o">%</span> <span class="n">warning</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="ContextFileEnviron.prepend_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.prepend_value">[docs]</a>    <span class="k">def</span> <span class="nf">prepend_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;prepend value to key using sep</span>
+<div class="viewcode-block" id="ContextFileEnviron.prepend_value"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ContextFileEnviron.prepend_value">[docs]</a>    <span class="k">def</span> <span class="nf">prepend_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;prepend value to key using sep</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to prepend</span>
-<span class="sd">        :param value str: the value to prepend to key</span>
-<span class="sd">        :param sep str: the separator string</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to prepend</span>
+<span class="sd">        :param value: (str) the value to prepend to key</span>
+<span class="sd">        :param sep: (str) the separator string</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;ADD_TO_</span><span class="si">%s</span><span class="s1">: </span><span class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span></div>
 
-<div class="viewcode-block" id="ContextFileEnviron.append_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.append_value">[docs]</a>    <span class="k">def</span> <span class="nf">append_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;append value to key using sep</span>
+<div class="viewcode-block" id="ContextFileEnviron.append_value"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ContextFileEnviron.append_value">[docs]</a>    <span class="k">def</span> <span class="nf">append_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;append value to key using sep</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to append</span>
-<span class="sd">        :param value str: the value to append to key</span>
-<span class="sd">        :param sep str: the separator string</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to append</span>
+<span class="sd">        :param value: (str) the value to append to key</span>
+<span class="sd">        :param sep: (str) the separator string</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">prepend_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="ContextFileEnviron.finish"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.finish">[docs]</a>    <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+<div class="viewcode-block" id="ContextFileEnviron.finish"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ContextFileEnviron.finish">[docs]</a>    <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Add a final instruction in the out file (in case of file generation)</span>
 <span class="sd">        </span>
-<span class="sd">        :param required bool: Do nothing if required is False</span>
+<span class="sd">        :param required: (bool) Do nothing if required is False</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">return</span></div></div>
 
-<div class="viewcode-block" id="special_path_separator"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.special_path_separator">[docs]</a><span class="k">def</span> <span class="nf">special_path_separator</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;TCLLIBPATH, TKLIBPATH, PV_PLUGIN_PATH environments variables need</span>
-<span class="sd">       some exotic path separator.</span>
-<span class="sd">       This function gives the separator regarding the name of the variable</span>
-<span class="sd">       to append or prepend.</span>
+<div class="viewcode-block" id="special_path_separator"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.special_path_separator">[docs]</a><span class="k">def</span> <span class="nf">special_path_separator</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    TCLLIBPATH, TKLIBPATH, PV_PLUGIN_PATH environments variables </span>
+<span class="sd">    need some exotic path separator.</span>
+<span class="sd">    This function gives the separator regarding the name of the variable</span>
+<span class="sd">    to append or prepend.</span>
 <span class="sd">       </span>
-<span class="sd">    :param name str: The name of the variable to find the separator</span>
+<span class="sd">    :param name: (str) The name of the variable to find the separator</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">special_blanks_keys</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;TCLLIBPATH&quot;</span><span class="p">,</span> <span class="s2">&quot;TKLIBPATH&quot;</span><span class="p">]</span>
     <span class="n">special_semicolon_keys</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;PV_PLUGIN_PATH&quot;</span><span class="p">]</span>
     <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">special_semicolon_keys</span><span class="p">:</span> <span class="n">res</span><span class="o">=</span><span class="s2">&quot;;&quot;</span>
     <span class="k">return</span> <span class="n">res</span></div>
 
-<div class="viewcode-block" id="LauncherFileEnviron"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron">[docs]</a><span class="k">class</span> <span class="nc">LauncherFileEnviron</span><span class="p">:</span>
-    <span class="sd">&quot;&quot;&quot;Class to generate a launcher file script </span>
-<span class="sd">       (in python syntax) SalomeContext API</span>
+<div class="viewcode-block" id="LauncherFileEnviron"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron">[docs]</a><span class="k">class</span> <span class="nc">LauncherFileEnviron</span><span class="p">:</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Class to generate a launcher file script </span>
+<span class="sd">    (in python syntax) SalomeContext API</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Initialization</span>
 <span class="sd">        </span>
-<span class="sd">        :param output file: the output file stream.</span>
-<span class="sd">        :param environ dict: a potential additional environment.</span>
+<span class="sd">        :param output: (file) the output file stream.</span>
+<span class="sd">        :param environ: (dict) a potential additional environment.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="n">output</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">toclean</span> <span class="o">=</span> <span class="p">[]</span>
                           <span class="s2">&quot;LD_LIBRARY_PATH&quot;</span><span class="p">:</span> <span class="s2">&quot;LdLibraryPath&quot;</span><span class="p">,</span>
                           <span class="s2">&quot;PYTHONPATH&quot;</span><span class="p">:</span> <span class="s2">&quot;PythonPath&quot;</span><span class="p">}</span>
 
-<div class="viewcode-block" id="LauncherFileEnviron.change_to_launcher"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.change_to_launcher">[docs]</a>    <span class="k">def</span> <span class="nf">change_to_launcher</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
+<div class="viewcode-block" id="LauncherFileEnviron.change_to_launcher"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.change_to_launcher">[docs]</a>    <span class="k">def</span> <span class="nf">change_to_launcher</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        obsolete? do nothing</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">res</span><span class="o">=</span><span class="n">value</span>
         <span class="k">return</span> <span class="n">res</span></div>
 
-<div class="viewcode-block" id="LauncherFileEnviron.add_line"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.add_line">[docs]</a>    <span class="k">def</span> <span class="nf">add_line</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">number</span><span class="p">):</span>
+<div class="viewcode-block" id="LauncherFileEnviron.add_line"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.add_line">[docs]</a>    <span class="k">def</span> <span class="nf">add_line</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">number</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Add some empty lines in the launcher file</span>
 <span class="sd">        </span>
-<span class="sd">        :param number int: the number of lines to add</span>
+<span class="sd">        :param number: (int) the number of lines to add</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">*</span> <span class="n">number</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="LauncherFileEnviron.add_echo"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.add_echo">[docs]</a>    <span class="k">def</span> <span class="nf">add_echo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
+<div class="viewcode-block" id="LauncherFileEnviron.add_echo"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.add_echo">[docs]</a>    <span class="k">def</span> <span class="nf">add_echo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Add a comment</span>
 <span class="sd">        </span>
-<span class="sd">        :param text str: the comment to add</span>
+<span class="sd">        :param text: (str) the comment to add</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;# </span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">text</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="LauncherFileEnviron.add_warning"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.add_warning">[docs]</a>    <span class="k">def</span> <span class="nf">add_warning</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">warning</span><span class="p">):</span>
+<div class="viewcode-block" id="LauncherFileEnviron.add_warning"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.add_warning">[docs]</a>    <span class="k">def</span> <span class="nf">add_warning</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">warning</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Add a warning</span>
 <span class="sd">        </span>
-<span class="sd">        :param text str: the warning to add</span>
+<span class="sd">        :param text: (str) the warning to add</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;# &quot;WARNING </span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">warning</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="LauncherFileEnviron.append_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.append_value">[docs]</a>    <span class="k">def</span> <span class="nf">append_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;:&quot;</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;append value to key using sep</span>
+<div class="viewcode-block" id="LauncherFileEnviron.append_value"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.append_value">[docs]</a>    <span class="k">def</span> <span class="nf">append_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;:&quot;</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;append value to key using sep</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to append</span>
-<span class="sd">        :param value str: the value to append to key</span>
-<span class="sd">        :param sep str: the separator string</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to append</span>
+<span class="sd">        :param value: (str) the value to append to key</span>
+<span class="sd">        :param sep: (str) the separator string</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_defined</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> <span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
         <span class="k">else</span> <span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="LauncherFileEnviron.append"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.append">[docs]</a>    <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;:&quot;</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Same as append_value but the value argument can be a list</span>
+<div class="viewcode-block" id="LauncherFileEnviron.append"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.append">[docs]</a>    <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;:&quot;</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Same as append_value but the value argument can be a list</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to append</span>
-<span class="sd">        :param value str or list: the value(s) to append to key</span>
-<span class="sd">        :param sep str: the separator string</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to append</span>
+<span class="sd">        :param value: (str or list) the value(s) to append to key</span>
+<span class="sd">        :param sep: (str) the separator string</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">append_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">),</span> <span class="n">sep</span><span class="p">)</span>
         <span class="k">else</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">append_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="LauncherFileEnviron.prepend_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.prepend_value">[docs]</a>    <span class="k">def</span> <span class="nf">prepend_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;:&quot;</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;prepend value to key using sep</span>
+<div class="viewcode-block" id="LauncherFileEnviron.prepend_value"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.prepend_value">[docs]</a>    <span class="k">def</span> <span class="nf">prepend_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;:&quot;</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;prepend value to key using sep</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to prepend</span>
-<span class="sd">        :param value str: the value to prepend to key</span>
-<span class="sd">        :param sep str: the separator string</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to prepend</span>
+<span class="sd">        :param value: (str) the value to prepend to key</span>
+<span class="sd">        :param sep: (str) the separator string</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_defined</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> <span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
         <span class="k">else</span> <span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="LauncherFileEnviron.prepend"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.prepend">[docs]</a>    <span class="k">def</span> <span class="nf">prepend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;:&quot;</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Same as prepend_value but the value argument can be a list</span>
+<div class="viewcode-block" id="LauncherFileEnviron.prepend"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.prepend">[docs]</a>    <span class="k">def</span> <span class="nf">prepend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;:&quot;</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Same as prepend_value but the value argument can be a list</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to prepend</span>
-<span class="sd">        :param value str or list: the value(s) to prepend to key</span>
-<span class="sd">        :param sep str: the separator string</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to prepend</span>
+<span class="sd">        :param value: (str or list) the value(s) to prepend to key</span>
+<span class="sd">        :param sep: (str) the separator string</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">prepend_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">),</span> <span class="n">sep</span><span class="p">)</span>
         <span class="k">else</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">prepend_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="LauncherFileEnviron.is_defined"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.is_defined">[docs]</a>    <span class="k">def</span> <span class="nf">is_defined</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Check if the key exists in the environment</span>
+<div class="viewcode-block" id="LauncherFileEnviron.is_defined"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.is_defined">[docs]</a>    <span class="k">def</span> <span class="nf">is_defined</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Check if the key exists in the environment</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to check</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to check</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">return</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span></div>
 
-<div class="viewcode-block" id="LauncherFileEnviron.get"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Get the value of the environment variable &quot;key&quot;</span>
+<div class="viewcode-block" id="LauncherFileEnviron.get"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Get the value of the environment variable &quot;key&quot;</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">return</span> <span class="s1">&#39;${</span><span class="si">%s</span><span class="s1">}&#39;</span> <span class="o">%</span> <span class="n">key</span></div>
 
-<div class="viewcode-block" id="LauncherFileEnviron.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Set the environment variable &quot;key&quot; to value &quot;value&quot;</span>
+<div class="viewcode-block" id="LauncherFileEnviron.set"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Set the environment variable &quot;key&quot; to value &quot;value&quot;</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to set</span>
-<span class="sd">        :param value str: the value</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable to set</span>
+<span class="sd">        :param value: (str) the value</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">begin</span><span class="o">+</span><span class="bp">self</span><span class="o">.</span><span class="n">setVarEnv</span><span class="o">+</span>
                           <span class="s1">&#39;(r&quot;</span><span class="si">%s</span><span class="s1">&quot;, r&quot;</span><span class="si">%s</span><span class="s1">&quot;, overwrite=True)</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> 
                           <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">change_to_launcher</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span></div>
     
-<div class="viewcode-block" id="LauncherFileEnviron.add"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.add">[docs]</a>    <span class="k">def</span> <span class="nf">add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;prepend value to key using sep</span>
+<div class="viewcode-block" id="LauncherFileEnviron.add"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.add">[docs]</a>    <span class="k">def</span> <span class="nf">add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;prepend value to key using sep</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable to prepend</span>
-<span class="sd">        :param value str: the value to prepend to key</span>
-<span class="sd">        &#39;&#39;&#39;</span>     
+<span class="sd">        :param key: (str) the environment variable to prepend</span>
+<span class="sd">        :param value: (str) the value to prepend to key</span>
+<span class="sd">        &quot;&quot;&quot;</span>     
         <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">specialKeys</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">begin</span><span class="o">+</span><span class="s1">&#39;addTo</span><span class="si">%s</span><span class="s1">(r&quot;</span><span class="si">%s</span><span class="s1">&quot;)</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> 
                               <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">specialKeys</span><span class="p">[</span><span class="n">key</span><span class="p">],</span>
                           <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">change_to_launcher</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span><span class="o">+=</span><span class="n">sep</span><span class="o">+</span><span class="n">value</span> <span class="c1">#here yes we know os for current execution</span></div>
 
-<div class="viewcode-block" id="LauncherFileEnviron.command_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.command_value">[docs]</a>    <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Get the value given by the system command &quot;command&quot; </span>
-<span class="sd">           and put it in the environment variable key.</span>
+<div class="viewcode-block" id="LauncherFileEnviron.command_value"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.command_value">[docs]</a>    <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Get the value given by the system command &quot;command&quot; </span>
+<span class="sd">        and put it in the environment variable key.</span>
 <span class="sd">        </span>
-<span class="sd">        :param key str: the environment variable</span>
-<span class="sd">        :param command str: the command to execute</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param key: (str) the environment variable</span>
+<span class="sd">        :param command: (str) the command to execute</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="o">+</span><span class="s1">&#39;#`</span><span class="si">%s</span><span class="s1">`</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">command</span><span class="p">)</span>
 
         <span class="kn">import</span> <span class="nn">shlex</span><span class="o">,</span> <span class="nn">subprocess</span>
                           <span class="bp">self</span><span class="o">.</span><span class="n">setVarEnv</span><span class="o">+</span>
                           <span class="s1">&#39;(r&quot;</span><span class="si">%s</span><span class="s1">&quot;, r&quot;</span><span class="si">%s</span><span class="s1">&quot;, overwrite=True)</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">out</span><span class="p">))</span></div>
 
-<div class="viewcode-block" id="LauncherFileEnviron.add_comment"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.add_comment">[docs]</a>    <span class="k">def</span> <span class="nf">add_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
+<div class="viewcode-block" id="LauncherFileEnviron.add_comment"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.add_comment">[docs]</a>    <span class="k">def</span> <span class="nf">add_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
         <span class="c1"># Special comment in case of the distène licence</span>
         <span class="k">if</span> <span class="n">comment</span><span class="o">==</span><span class="s2">&quot;DISTENE license&quot;</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="o">+</span>
 
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="o">+</span><span class="s2">&quot;# </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">comment</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="LauncherFileEnviron.finish"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.finish">[docs]</a>    <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
-        <span class="sd">&quot;&quot;&quot;Add a final instruction in the out file (in case of file generation)</span>
-<span class="sd">           In the particular launcher case, do nothing</span>
+<div class="viewcode-block" id="LauncherFileEnviron.finish"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.finish">[docs]</a>    <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Add a final instruction in the out file (in case of file generation)</span>
+<span class="sd">        In the particular launcher case, do nothing</span>
 <span class="sd">        </span>
-<span class="sd">        :param required bool: Do nothing if required is False</span>
+<span class="sd">        :param required: (bool) Do nothing if required is False</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">return</span></div></div>
 
-<div class="viewcode-block" id="ScreenEnviron"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron">[docs]</a><span class="k">class</span> <span class="nc">ScreenEnviron</span><span class="p">(</span><span class="n">FileEnviron</span><span class="p">):</span>
+<div class="viewcode-block" id="ScreenEnviron"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ScreenEnviron">[docs]</a><span class="k">class</span> <span class="nc">ScreenEnviron</span><span class="p">(</span><span class="n">FileEnviron</span><span class="p">):</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_do_init</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">defined</span> <span class="o">=</span> <span class="p">{}</span>
 
-<div class="viewcode-block" id="ScreenEnviron.add_line"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.add_line">[docs]</a>    <span class="k">def</span> <span class="nf">add_line</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">number</span><span class="p">):</span>
+<div class="viewcode-block" id="ScreenEnviron.add_line"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ScreenEnviron.add_line">[docs]</a>    <span class="k">def</span> <span class="nf">add_line</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">number</span><span class="p">):</span>
         <span class="k">pass</span></div>
 
-<div class="viewcode-block" id="ScreenEnviron.add_comment"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.add_comment">[docs]</a>    <span class="k">def</span> <span class="nf">add_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
+<div class="viewcode-block" id="ScreenEnviron.add_comment"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ScreenEnviron.add_comment">[docs]</a>    <span class="k">def</span> <span class="nf">add_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
         <span class="k">pass</span></div>
 
-<div class="viewcode-block" id="ScreenEnviron.add_echo"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.add_echo">[docs]</a>    <span class="k">def</span> <span class="nf">add_echo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
+<div class="viewcode-block" id="ScreenEnviron.add_echo"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ScreenEnviron.add_echo">[docs]</a>    <span class="k">def</span> <span class="nf">add_echo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
         <span class="k">pass</span></div>
 
-<div class="viewcode-block" id="ScreenEnviron.add_warning"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.add_warning">[docs]</a>    <span class="k">def</span> <span class="nf">add_warning</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">warning</span><span class="p">):</span>
+<div class="viewcode-block" id="ScreenEnviron.add_warning"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ScreenEnviron.add_warning">[docs]</a>    <span class="k">def</span> <span class="nf">add_warning</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">warning</span><span class="p">):</span>
         <span class="k">pass</span></div>
 
-<div class="viewcode-block" id="ScreenEnviron.write"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">command</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sign</span><span class="o">=</span><span class="s2">&quot;=&quot;</span><span class="p">):</span>
+<div class="viewcode-block" id="ScreenEnviron.write"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ScreenEnviron.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">command</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sign</span><span class="o">=</span><span class="s2">&quot;=&quot;</span><span class="p">):</span>
         <span class="kn">import</span> <span class="nn">src</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;  </span><span class="si">%s%s</span><span class="s2"> </span><span class="si">%s</span><span class="s2"> </span><span class="si">%s</span><span class="s2"> </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> \
             <span class="p">(</span><span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">command</span><span class="p">),</span>
              <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="p">(</span><span class="mi">12</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">command</span><span class="p">)),</span>
              <span class="n">UTS</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">name</span><span class="p">),</span> <span class="n">sign</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span></div>
 
-<div class="viewcode-block" id="ScreenEnviron.is_defined"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.is_defined">[docs]</a>    <span class="k">def</span> <span class="nf">is_defined</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
+<div class="viewcode-block" id="ScreenEnviron.is_defined"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ScreenEnviron.is_defined">[docs]</a>    <span class="k">def</span> <span class="nf">is_defined</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">defined</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">name</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="ScreenEnviron.get"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
+<div class="viewcode-block" id="ScreenEnviron.get"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ScreenEnviron.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
         <span class="k">return</span> <span class="s2">&quot;${</span><span class="si">%s</span><span class="s2">}&quot;</span> <span class="o">%</span> <span class="n">name</span></div>
 
-<div class="viewcode-block" id="ScreenEnviron.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
+<div class="viewcode-block" id="ScreenEnviron.set"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ScreenEnviron.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;set&quot;</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">defined</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span></div>
 
-<div class="viewcode-block" id="ScreenEnviron.prepend"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.prepend">[docs]</a>    <span class="k">def</span> <span class="nf">prepend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;:&quot;</span><span class="p">):</span>
+<div class="viewcode-block" id="ScreenEnviron.prepend"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ScreenEnviron.prepend">[docs]</a>    <span class="k">def</span> <span class="nf">prepend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;:&quot;</span><span class="p">):</span>
         <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
             <span class="n">value</span> <span class="o">=</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
         <span class="n">value</span> <span class="o">=</span> <span class="n">value</span> <span class="o">+</span> <span class="n">sep</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;prepend&quot;</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="ScreenEnviron.append"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.append">[docs]</a>    <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;:&quot;</span><span class="p">):</span>
+<div class="viewcode-block" id="ScreenEnviron.append"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ScreenEnviron.append">[docs]</a>    <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;:&quot;</span><span class="p">):</span>
         <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
             <span class="n">value</span> <span class="o">=</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
         <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="o">+</span> <span class="n">sep</span> <span class="o">+</span> <span class="n">value</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;append&quot;</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="ScreenEnviron.command_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.command_value">[docs]</a>    <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
+<div class="viewcode-block" id="ScreenEnviron.command_value"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ScreenEnviron.command_value">[docs]</a>    <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
         <span class="k">pass</span></div>
 
-<div class="viewcode-block" id="ScreenEnviron.run_env_script"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.run_env_script">[docs]</a>    <span class="k">def</span> <span class="nf">run_env_script</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">module</span><span class="p">,</span> <span class="n">script</span><span class="p">):</span>
+<div class="viewcode-block" id="ScreenEnviron.run_env_script"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fileEnviron.ScreenEnviron.run_env_script">[docs]</a>    <span class="k">def</span> <span class="nf">run_env_script</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">module</span><span class="p">,</span> <span class="n">script</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;load&quot;</span><span class="p">,</span> <span class="n">script</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">sign</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">)</span></div></div>
 
 <span class="c1"># The SALOME launcher template </span>
-<span class="n">withProfile</span> <span class="o">=</span>  <span class="s2">&quot;&quot;&quot;#! /usr/bin/env python</span>
+<span class="n">withProfile</span> <span class="o">=</span>  <span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
+<span class="s2">#! /usr/bin/env python</span>
 
 <span class="s2">################################################################</span>
 <span class="s2"># WARNING: this file is automatically generated by SalomeTools #</span>
index ba8315235333ada34ee92a7f0dd30fa8e2286bce..2fcc9283de01af0a0ab70b1202cb52c9606930df 100644 (file)
 <span class="kn">import</span> <span class="nn">subprocess</span>
 
 
-<div class="viewcode-block" id="show_progress"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fork.show_progress">[docs]</a><span class="k">def</span> <span class="nf">show_progress</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">top</span><span class="p">,</span> <span class="n">delai</span><span class="p">,</span> <span class="n">ss</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
+<div class="viewcode-block" id="show_progress"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fork.show_progress">[docs]</a><span class="k">def</span> <span class="nf">show_progress</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">top</span><span class="p">,</span> <span class="n">delai</span><span class="p">,</span> <span class="n">ss</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;shortcut function to display the progression</span>
 <span class="sd">    </span>
-<span class="sd">    :param logger Logger: The logging instance</span>
-<span class="sd">    :param top int: the number to display</span>
-<span class="sd">    :param delai int: the number max</span>
-<span class="sd">    :param ss str: the string to display</span>
+<span class="sd">    :param logger: (Logger) The logging instance</span>
+<span class="sd">    :param top: (int) the number to display</span>
+<span class="sd">    :param delai: (int) the number max</span>
+<span class="sd">    :param ss: (str) the string to display</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s</span><span class="se">\r</span><span class="si">%s</span><span class="s2"> </span><span class="si">%s</span><span class="s2"> / </span><span class="si">%s</span><span class="s2"> &quot;</span> <span class="o">%</span> <span class="p">((</span><span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="mi">30</span><span class="p">),</span> <span class="n">ss</span><span class="p">,</span> <span class="n">top</span><span class="p">,</span> <span class="p">(</span><span class="n">delai</span> <span class="o">-</span> <span class="n">top</span><span class="p">)))</span></div>
 
 
-<div class="viewcode-block" id="write_back"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fork.write_back">[docs]</a><span class="k">def</span> <span class="nf">write_back</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">message</span><span class="p">):</span>
+<div class="viewcode-block" id="write_back"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fork.write_back">[docs]</a><span class="k">def</span> <span class="nf">write_back</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">message</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;shortcut function to write at the begin of the line</span>
 <span class="sd">    </span>
-<span class="sd">    :param logger Logger: The logging instance</span>
-<span class="sd">    :param message str: the text to display</span>
-<span class="sd">    :param level int: the level of verbosity</span>
+<span class="sd">    :param logger: (Logger) The logging instance</span>
+<span class="sd">    :param message: (str) the text to display</span>
+<span class="sd">    :param level: (int) the level of verbosity</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\r</span><span class="si">%s</span><span class="se">\r</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">((</span><span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="mi">40</span><span class="p">),</span> <span class="n">message</span><span class="p">))</span></div>
 
 
-<div class="viewcode-block" id="launch_command"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fork.launch_command">[docs]</a><span class="k">def</span> <span class="nf">launch_command</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">cwd</span><span class="p">,</span> <span class="n">args</span><span class="o">=</span><span class="p">[],</span> <span class="n">log</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="launch_command"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fork.launch_command">[docs]</a><span class="k">def</span> <span class="nf">launch_command</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">cwd</span><span class="p">,</span> <span class="n">args</span><span class="o">=</span><span class="p">[],</span> <span class="n">log</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;Launch command&quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="n">log</span><span class="p">:</span>
         <span class="n">log</span> <span class="o">=</span> <span class="n">file</span><span class="p">(</span><span class="n">log</span><span class="p">,</span> <span class="s2">&quot;a&quot;</span><span class="p">)</span>
     <span class="k">return</span> <span class="n">prs</span></div>
 
 
-<div class="viewcode-block" id="batch"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fork.batch">[docs]</a><span class="k">def</span> <span class="nf">batch</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">cwd</span><span class="p">,</span> <span class="n">args</span><span class="o">=</span><span class="p">[],</span> <span class="n">log</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">delai</span><span class="o">=</span><span class="mi">20</span><span class="p">,</span> <span class="n">sommeil</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
+<div class="viewcode-block" id="batch"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fork.batch">[docs]</a><span class="k">def</span> <span class="nf">batch</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">cwd</span><span class="p">,</span> <span class="n">args</span><span class="o">=</span><span class="p">[],</span> <span class="n">log</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">delai</span><span class="o">=</span><span class="mi">20</span><span class="p">,</span> <span class="n">sommeil</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;Launch a batch&quot;&quot;&quot;</span>
     <span class="n">proc</span> <span class="o">=</span> <span class="n">launch_command</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">cwd</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="n">log</span><span class="p">)</span>
     <span class="n">top</span> <span class="o">=</span> <span class="mi">0</span>
     <span class="k">return</span> <span class="p">(</span><span class="n">proc</span><span class="o">.</span><span class="n">returncode</span> <span class="o">==</span> <span class="mi">0</span><span class="p">),</span> <span class="n">top</span></div>
 
 
-<div class="viewcode-block" id="batch_salome"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fork.batch_salome">[docs]</a><span class="k">def</span> <span class="nf">batch_salome</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">cwd</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="n">getTmpDir</span><span class="p">,</span>
+<div class="viewcode-block" id="batch_salome"><a class="viewcode-back" href="../../apidoc_src/src.html#src.fork.batch_salome">[docs]</a><span class="k">def</span> <span class="nf">batch_salome</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">cwd</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="n">getTmpDir</span><span class="p">,</span>
     <span class="n">pendant</span><span class="o">=</span><span class="s2">&quot;SALOME_Session_Server&quot;</span><span class="p">,</span> <span class="n">fin</span><span class="o">=</span><span class="s2">&quot;killSalome.py&quot;</span><span class="p">,</span>
     <span class="n">log</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">delai</span><span class="o">=</span><span class="mi">20</span><span class="p">,</span> <span class="n">sommeil</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">delaiapp</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;Launch a salome process&quot;&quot;&quot;</span>
index 9235f9072facf539209bb61056229f165466eff2..66e0df5a49e0338c1a8c175ce1695d52d428d5de 100644 (file)
 <span class="n">_verbose</span> <span class="o">=</span> <span class="kc">False</span>
 <span class="n">_name</span> <span class="o">=</span> <span class="s2">&quot;loggingSat&quot;</span>
 
-<div class="viewcode-block" id="indent"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.loggingSat.indent">[docs]</a><span class="k">def</span> <span class="nf">indent</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">nb</span><span class="p">,</span> <span class="n">car</span><span class="o">=</span><span class="s2">&quot; &quot;</span><span class="p">):</span>
+<div class="viewcode-block" id="indent"><a class="viewcode-back" href="../../apidoc_src/src.html#src.loggingSat.indent">[docs]</a><span class="k">def</span> <span class="nf">indent</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">nb</span><span class="p">,</span> <span class="n">car</span><span class="o">=</span><span class="s2">&quot; &quot;</span><span class="p">):</span>
   <span class="sd">&quot;&quot;&quot;indent nb car (spaces) multi lines message except first one&quot;&quot;&quot;</span>
   <span class="n">s</span> <span class="o">=</span> <span class="n">msg</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
   <span class="n">res</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">+</span><span class="n">car</span><span class="o">*</span><span class="n">nb</span><span class="p">)</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
   <span class="k">return</span> <span class="n">res</span></div>
 
-<div class="viewcode-block" id="indentUnittest"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.loggingSat.indentUnittest">[docs]</a><span class="k">def</span> <span class="nf">indentUnittest</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot; | &quot;</span><span class="p">):</span>
+<div class="viewcode-block" id="indentUnittest"><a class="viewcode-back" href="../../apidoc_src/src.html#src.loggingSat.indentUnittest">[docs]</a><span class="k">def</span> <span class="nf">indentUnittest</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot; | &quot;</span><span class="p">):</span>
   <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">  indent car multi lines message except first one</span>
 <span class="sd">  car default is less spaces for size logs files</span>
@@ -83,7 +83,7 @@
   <span class="n">res</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">prefix</span><span class="p">)</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
   <span class="k">return</span> <span class="n">res</span></div>
 
-<div class="viewcode-block" id="log"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.loggingSat.log">[docs]</a><span class="k">def</span> <span class="nf">log</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="log"><a class="viewcode-back" href="../../apidoc_src/src.html#src.loggingSat.log">[docs]</a><span class="k">def</span> <span class="nf">log</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
   <span class="sd">&quot;&quot;&quot;elementary log when no logger yet&quot;&quot;&quot;</span>
   <span class="n">prefix</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">.log: &quot;</span> <span class="o">%</span> <span class="n">_name</span>
   <span class="n">nb</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">prefix</span><span class="p">)</span>
 <span class="n">_loggerUnittestName</span> <span class="o">=</span> <span class="s1">&#39;SatUnittestLogger&#39;</span>
 
 
-<div class="viewcode-block" id="getDefaultLogger"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.loggingSat.getDefaultLogger">[docs]</a><span class="k">def</span> <span class="nf">getDefaultLogger</span><span class="p">():</span>
+<div class="viewcode-block" id="getDefaultLogger"><a class="viewcode-back" href="../../apidoc_src/src.html#src.loggingSat.getDefaultLogger">[docs]</a><span class="k">def</span> <span class="nf">getDefaultLogger</span><span class="p">():</span>
   <span class="n">log</span><span class="p">(</span><span class="s2">&quot;getDefaultLogger </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">_loggerDefaultName</span><span class="p">)</span>
   <span class="k">return</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">_loggerDefaultName</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="getUnittestLogger"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.loggingSat.getUnittestLogger">[docs]</a><span class="k">def</span> <span class="nf">getUnittestLogger</span><span class="p">():</span>
+<div class="viewcode-block" id="getUnittestLogger"><a class="viewcode-back" href="../../apidoc_src/src.html#src.loggingSat.getUnittestLogger">[docs]</a><span class="k">def</span> <span class="nf">getUnittestLogger</span><span class="p">():</span>
   <span class="n">log</span><span class="p">(</span><span class="s2">&quot;getUnittestLogger </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">_loggerUnittestName</span><span class="p">)</span>
   <span class="k">return</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">_loggerUnittestName</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="dirLogger"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.loggingSat.dirLogger">[docs]</a><span class="k">def</span> <span class="nf">dirLogger</span><span class="p">(</span><span class="n">logger</span><span class="p">):</span>
+<div class="viewcode-block" id="dirLogger"><a class="viewcode-back" href="../../apidoc_src/src.html#src.loggingSat.dirLogger">[docs]</a><span class="k">def</span> <span class="nf">dirLogger</span><span class="p">(</span><span class="n">logger</span><span class="p">):</span>
   <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;dir(logger name=</span><span class="si">%s</span><span class="s1">):</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">logger</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="n">PP</span><span class="o">.</span><span class="n">pformat</span><span class="p">(</span><span class="nb">dir</span><span class="p">(</span><span class="n">logger</span><span class="p">)))</span></div>
 
 <span class="n">_loggerDefault</span> <span class="o">=</span> <span class="n">getDefaultLogger</span><span class="p">()</span>
 <span class="n">_loggerUnittest</span> <span class="o">=</span> <span class="n">getUnittestLogger</span><span class="p">()</span>
 
 
-<div class="viewcode-block" id="DefaultFormatter"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.loggingSat.DefaultFormatter">[docs]</a><span class="k">class</span> <span class="nc">DefaultFormatter</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">Formatter</span><span class="p">):</span>
+<div class="viewcode-block" id="DefaultFormatter"><a class="viewcode-back" href="../../apidoc_src/src.html#src.loggingSat.DefaultFormatter">[docs]</a><span class="k">class</span> <span class="nc">DefaultFormatter</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">Formatter</span><span class="p">):</span>
   
   <span class="c1"># to set color prefix, problem with indent format</span>
   <span class="n">_ColorLevelname</span> <span class="o">=</span> <span class="p">{</span>
     <span class="s2">&quot;CRITICAL&quot;</span><span class="p">:</span> <span class="s2">&quot;&lt;yellow&gt;&quot;</span><span class="p">,</span>
   <span class="p">}</span>
   
-<div class="viewcode-block" id="DefaultFormatter.format"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.loggingSat.DefaultFormatter.format">[docs]</a>  <span class="k">def</span> <span class="nf">format</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">record</span><span class="p">):</span>
+<div class="viewcode-block" id="DefaultFormatter.format"><a class="viewcode-back" href="../../apidoc_src/src.html#src.loggingSat.DefaultFormatter.format">[docs]</a>  <span class="k">def</span> <span class="nf">format</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">record</span><span class="p">):</span>
     <span class="k">if</span> <span class="n">record</span><span class="o">.</span><span class="n">levelname</span> <span class="o">==</span> <span class="s2">&quot;INFO&quot;</span><span class="p">:</span>
       <span class="n">res</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">record</span><span class="o">.</span><span class="n">msg</span><span class="p">)</span>
     <span class="k">else</span><span class="p">:</span>
       <span class="n">res</span> <span class="o">=</span> <span class="n">indent</span><span class="p">(</span><span class="nb">super</span><span class="p">(</span><span class="n">DefaultFormatter</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">record</span><span class="p">),</span> <span class="mi">12</span><span class="p">)</span>
     <span class="k">return</span> <span class="n">COLS</span><span class="o">.</span><span class="n">toColor</span><span class="p">(</span><span class="n">res</span><span class="p">)</span></div>
   
-<div class="viewcode-block" id="DefaultFormatter.setColorLevelname"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.loggingSat.DefaultFormatter.setColorLevelname">[docs]</a>  <span class="k">def</span> <span class="nf">setColorLevelname</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">levelname</span><span class="p">):</span>
+<div class="viewcode-block" id="DefaultFormatter.setColorLevelname"><a class="viewcode-back" href="../../apidoc_src/src.html#src.loggingSat.DefaultFormatter.setColorLevelname">[docs]</a>  <span class="k">def</span> <span class="nf">setColorLevelname</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">levelname</span><span class="p">):</span>
     <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ColorLevelname</span><span class="p">[</span><span class="n">levelname</span><span class="p">]</span> <span class="o">+</span> <span class="n">levelname</span> <span class="o">+</span> <span class="s2">&quot;&lt;reset&gt;&quot;</span></div></div>
 
 
-<div class="viewcode-block" id="UnittestFormatter"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.loggingSat.UnittestFormatter">[docs]</a><span class="k">class</span> <span class="nc">UnittestFormatter</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">Formatter</span><span class="p">):</span>
-<div class="viewcode-block" id="UnittestFormatter.format"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.loggingSat.UnittestFormatter.format">[docs]</a>  <span class="k">def</span> <span class="nf">format</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">record</span><span class="p">):</span>
+<div class="viewcode-block" id="UnittestFormatter"><a class="viewcode-back" href="../../apidoc_src/src.html#src.loggingSat.UnittestFormatter">[docs]</a><span class="k">class</span> <span class="nc">UnittestFormatter</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">Formatter</span><span class="p">):</span>
+<div class="viewcode-block" id="UnittestFormatter.format"><a class="viewcode-back" href="../../apidoc_src/src.html#src.loggingSat.UnittestFormatter.format">[docs]</a>  <span class="k">def</span> <span class="nf">format</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">record</span><span class="p">):</span>
     <span class="c1"># print &quot;&quot;, record.levelname #type(record), dir(record)</span>
     <span class="c1"># nb = len(&quot;2018-03-17 12:15:41 :: INFO     :: &quot;)</span>
     <span class="n">res</span> <span class="o">=</span> <span class="n">indentUnittest</span><span class="p">(</span><span class="nb">super</span><span class="p">(</span><span class="n">UnittestFormatter</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">record</span><span class="p">),</span> <span class="s2">&quot; | &quot;</span><span class="p">)</span>
     <span class="k">return</span> <span class="n">COLS</span><span class="o">.</span><span class="n">toColor</span><span class="p">(</span><span class="n">res</span><span class="p">)</span></div></div>
 
 
-<div class="viewcode-block" id="UnittestStream"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.loggingSat.UnittestStream">[docs]</a><span class="k">class</span> <span class="nc">UnittestStream</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="UnittestStream"><a class="viewcode-back" href="../../apidoc_src/src.html#src.loggingSat.UnittestStream">[docs]</a><span class="k">class</span> <span class="nc">UnittestStream</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
   <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">  write my stream class</span>
 <span class="sd">  only write and flush are used for the streaming</span>
   <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
     <span class="bp">self</span><span class="o">.</span><span class="n">_logs</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
     
-<div class="viewcode-block" id="UnittestStream.getLogs"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.loggingSat.UnittestStream.getLogs">[docs]</a>  <span class="k">def</span> <span class="nf">getLogs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="UnittestStream.getLogs"><a class="viewcode-back" href="../../apidoc_src/src.html#src.loggingSat.UnittestStream.getLogs">[docs]</a>  <span class="k">def</span> <span class="nf">getLogs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
     <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_logs</span></div>
   
-<div class="viewcode-block" id="UnittestStream.getLogsAndClear"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.loggingSat.UnittestStream.getLogsAndClear">[docs]</a>  <span class="k">def</span> <span class="nf">getLogsAndClear</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="UnittestStream.getLogsAndClear"><a class="viewcode-back" href="../../apidoc_src/src.html#src.loggingSat.UnittestStream.getLogsAndClear">[docs]</a>  <span class="k">def</span> <span class="nf">getLogsAndClear</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
     <span class="n">res</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_logs</span>
     <span class="bp">self</span><span class="o">.</span><span class="n">_logs</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
     <span class="k">return</span> <span class="n">res</span></div>
 
-<div class="viewcode-block" id="UnittestStream.write"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.loggingSat.UnittestStream.write">[docs]</a>  <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">astr</span><span class="p">):</span>
+<div class="viewcode-block" id="UnittestStream.write"><a class="viewcode-back" href="../../apidoc_src/src.html#src.loggingSat.UnittestStream.write">[docs]</a>  <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">astr</span><span class="p">):</span>
     <span class="c1"># log(&quot;UnittestStream.write(&#39;%s&#39;)&quot; % astr)</span>
     <span class="bp">self</span><span class="o">.</span><span class="n">_logs</span> <span class="o">+=</span> <span class="n">astr</span></div>
 
-<div class="viewcode-block" id="UnittestStream.flush"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.loggingSat.UnittestStream.flush">[docs]</a>  <span class="k">def</span> <span class="nf">flush</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="UnittestStream.flush"><a class="viewcode-back" href="../../apidoc_src/src.html#src.loggingSat.UnittestStream.flush">[docs]</a>  <span class="k">def</span> <span class="nf">flush</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
     <span class="k">pass</span></div>
 
   <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
     <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_logs</span></div>
 
 
-<div class="viewcode-block" id="initLoggerAsDefault"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.loggingSat.initLoggerAsDefault">[docs]</a><span class="k">def</span> <span class="nf">initLoggerAsDefault</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">fmt</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="initLoggerAsDefault"><a class="viewcode-back" href="../../apidoc_src/src.html#src.loggingSat.initLoggerAsDefault">[docs]</a><span class="k">def</span> <span class="nf">initLoggerAsDefault</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">fmt</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
   <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">  init logger as prefixed message and indented message if multi line</span>
 <span class="sd">  exept info() outed &#39;as it&#39; without any format</span>
     <span class="n">logger</span><span class="o">.</span><span class="n">setLevel</span><span class="p">(</span><span class="n">logger</span><span class="o">.</span><span class="n">INFO</span><span class="p">)</span></div>
 
   
-<div class="viewcode-block" id="initLoggerAsUnittest"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.loggingSat.initLoggerAsUnittest">[docs]</a><span class="k">def</span> <span class="nf">initLoggerAsUnittest</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">fmt</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="initLoggerAsUnittest"><a class="viewcode-back" href="../../apidoc_src/src.html#src.loggingSat.initLoggerAsUnittest">[docs]</a><span class="k">def</span> <span class="nf">initLoggerAsUnittest</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">fmt</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
   <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">  init logger as silent on stdout/stderr</span>
 <span class="sd">  used for retrieve messages in memory for post execution unittest</span>
     <span class="n">logger</span><span class="o">.</span><span class="n">setLevel</span><span class="p">(</span><span class="n">logger</span><span class="o">.</span><span class="n">DEBUG</span><span class="p">)</span></div>
 
   
-<div class="viewcode-block" id="testLogger_1"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.loggingSat.testLogger_1">[docs]</a><span class="k">def</span> <span class="nf">testLogger_1</span><span class="p">(</span><span class="n">logger</span><span class="p">):</span>
+<div class="viewcode-block" id="testLogger_1"><a class="viewcode-back" href="../../apidoc_src/src.html#src.loggingSat.testLogger_1">[docs]</a><span class="k">def</span> <span class="nf">testLogger_1</span><span class="p">(</span><span class="n">logger</span><span class="p">):</span>
   <span class="sd">&quot;&quot;&quot;small test&quot;&quot;&quot;</span>
   <span class="c1"># dirLogger(logger)</span>
   <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s1">&#39;test logger debug&#39;</span><span class="p">)</span>
index 99239711b9d3b1bfcad044e804381ebc30048f34..9fadb68eb491e1fdce226b03570f1a50bffd5753 100644 (file)
@@ -62,7 +62,7 @@
 <span class="c1">#  License along with this library; if not, write to the Free Software</span>
 <span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
 
-<span class="sd">&quot;&quot;&quot;\</span>
+<span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">The Options class that manages the access to all options passed as </span>
 <span class="sd">parameters in salomeTools command lines</span>
 <span class="sd">&quot;&quot;&quot;</span>
 <span class="kn">import</span> <span class="nn">src</span>
 <span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span> <span class="c1"># Easy print stderr (for DEBUG only)</span>
 
-<div class="viewcode-block" id="OptResult"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.options.OptResult">[docs]</a><span class="k">class</span> <span class="nc">OptResult</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="OptResult"><a class="viewcode-back" href="../../apidoc_src/src.html#src.options.OptResult">[docs]</a><span class="k">class</span> <span class="nc">OptResult</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    An instance of this class will be the object manipulated</span>
 <span class="sd">    in code of all salomeTools commands</span>
 <span class="sd">    The aim of this class is to have an elegant syntax to manipulate the options.</span>
 <span class="sd">    </span>
 <span class="sd">    example: </span>
-<span class="sd">      &gt;&gt; print(options.level)</span>
-<span class="sd">      &gt;&gt; 5</span>
+<span class="sd">    &gt;&gt; print(options.level)</span>
+<span class="sd">    &gt;&gt; 5</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Initialization</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+        <span class="sd">&quot;&quot;&quot;Initialization</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="vm">__dict__</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">()</span>
 
     <span class="k">def</span> <span class="nf">__getattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Overwrite of the __getattr__ function </span>
-<span class="sd">           to customize it for option usage</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Overwrite of the __getattr__ function </span>
+<span class="sd">        to customize it for option usage</span>
 <span class="sd">        </span>
-<span class="sd">        :param name str: The attribute to get the value.</span>
-<span class="sd">        :return: the value corresponding to the attribute.</span>
-<span class="sd">        :rtype: str,int,list,boolean,level</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param name: (str) The attribute to get the value.</span>
+<span class="sd">        :return: (str int list boolean level)</span>
+<span class="sd">          the value corresponding to the attribute.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">:</span>
             <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
         <span class="k">else</span><span class="p">:</span>
             <span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">&quot;--&quot;</span> <span class="o">+</span> <span class="n">name</span> <span class="o">+</span> <span class="n">_</span><span class="p">(</span><span class="sa">u</span><span class="s2">&quot; is not a valid option&quot;</span><span class="p">))</span>
 
     <span class="k">def</span> <span class="nf">__setattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Overwrite of the __setattr__ function </span>
-<span class="sd">           to customize it for option usage</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Overwrite of the __setattr__ function </span>
+<span class="sd">        to customize it for option usage</span>
 <span class="sd">        </span>
-<span class="sd">        :param name str: The attribute to set.</span>
-<span class="sd">        :param value str: The value  corresponding to the attribute.</span>
-<span class="sd">        :return: Nothing.</span>
-<span class="sd">        :rtype: N\A</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param name: (str) The attribute to set.</span>
+<span class="sd">        :param value: (str) The value  corresponding to the attribute.</span>
+<span class="sd">        :return: None</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="nb">object</span><span class="o">.</span><span class="fm">__setattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
 
     <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="n">res</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">(</span><span class="se">\n</span><span class="s2"> </span><span class="si">%s</span><span class="se">\n</span><span class="s2">)&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">aStr</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
         <span class="k">return</span> <span class="n">res</span></div>
 
-<div class="viewcode-block" id="Options"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.options.Options">[docs]</a><span class="k">class</span> <span class="nc">Options</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Class to manage all salomeTools options</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<div class="viewcode-block" id="Options"><a class="viewcode-back" href="../../apidoc_src/src.html#src.options.Options">[docs]</a><span class="k">class</span> <span class="nc">Options</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Class to manage all salomeTools options</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Initialization</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Initialization</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="c1"># The options field stocks all options of a command </span>
         <span class="c1"># in a list that contains dicts</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="o">=</span> <span class="p">[]</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">default</span> <span class="o">=</span> <span class="kc">None</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">results</span> <span class="o">=</span> <span class="p">{}</span>
 
-<div class="viewcode-block" id="Options.add_option"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.options.Options.add_option">[docs]</a>    <span class="k">def</span> <span class="nf">add_option</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">shortName</span><span class="p">,</span> <span class="n">longName</span><span class="p">,</span>
+<div class="viewcode-block" id="Options.add_option"><a class="viewcode-back" href="../../apidoc_src/src.html#src.options.Options.add_option">[docs]</a>    <span class="k">def</span> <span class="nf">add_option</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">shortName</span><span class="p">,</span> <span class="n">longName</span><span class="p">,</span>
                     <span class="n">optionType</span><span class="p">,</span> <span class="n">destName</span><span class="p">,</span> <span class="n">helpString</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">default</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Method to add an option to a command. It gets all attributes</span>
-<span class="sd">           of an option and append it in the options field</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Add an option to a command. It gets all attributes</span>
+<span class="sd">        of an option and append it in the options field</span>
 <span class="sd">        </span>
-<span class="sd">        :param shortName str: The short name of the option</span>
-<span class="sd">                              (ex &quot;l&quot; for level option).</span>
-<span class="sd">        :param longName str: The long name of the option </span>
-<span class="sd">                             (ex &quot;level&quot; for level option).</span>
-<span class="sd">        :param optionType str: The type of the option (ex &quot;int&quot;).</span>
-<span class="sd">        :param destName str: The name that will be used in the code.</span>
-<span class="sd">        :param helpString str: The text to display </span>
-<span class="sd">                               when user ask for help on a command.     </span>
-<span class="sd">        :return: Nothing.</span>
-<span class="sd">        :rtype: N\A</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param shortName: (str) </span>
+<span class="sd">          The short name of the option</span>
+<span class="sd">          (as &#39;-l&#39; for level option).</span>
+<span class="sd">        :param longName: (str) </span>
+<span class="sd">          The long name of the option </span>
+<span class="sd">          (as &#39;--level&#39; for level option).</span>
+<span class="sd">        :param optionType: (str) The type of the option (ex &quot;int&quot;).</span>
+<span class="sd">        :param destName: (str) The name that will be used in the code.</span>
+<span class="sd">        :param helpString: (str) </span>
+<span class="sd">          The text to display when user ask for help on a command.     </span>
+<span class="sd">        :return: None</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">tmp</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span><span class="p">[</span><span class="s1">&#39;shortName&#39;</span><span class="p">]</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="k">if</span> <span class="n">o</span><span class="p">[</span><span class="s1">&#39;shortName&#39;</span><span class="p">]</span> <span class="o">!=</span> <span class="s1">&#39;&#39;</span><span class="p">]</span>
         <span class="k">if</span> <span class="n">shortName</span> <span class="ow">in</span> <span class="n">tmp</span><span class="p">:</span> 
           <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;option &#39;-</span><span class="si">%s</span><span class="s2">&#39; existing yet&quot;</span> <span class="o">%</span> <span class="n">shortName</span><span class="p">)</span>
         
         <span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">option</span><span class="p">)</span></div>
         
-<div class="viewcode-block" id="Options.getDetailOption"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.options.Options.getDetailOption">[docs]</a>    <span class="k">def</span> <span class="nf">getDetailOption</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">option</span><span class="p">):</span>
-        <span class="sd">&quot;&quot;&quot;for convenience </span>
-<span class="sd">        returns (shortName, longName, optionType, helpString&#39;)</span>
+<div class="viewcode-block" id="Options.getDetailOption"><a class="viewcode-back" href="../../apidoc_src/src.html#src.options.Options.getDetailOption">[docs]</a>    <span class="k">def</span> <span class="nf">getDetailOption</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">option</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        for convenience </span>
+<span class="sd">        </span>
+<span class="sd">        :return: (tuple) 4-elements (shortName, longName, optionType, helpString)</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">oos</span> <span class="o">=</span> <span class="n">option</span><span class="p">[</span><span class="s1">&#39;shortName&#39;</span><span class="p">]</span>
         <span class="n">ool</span> <span class="o">=</span> <span class="n">option</span><span class="p">[</span><span class="s1">&#39;longName&#39;</span><span class="p">]</span>
         <span class="k">return</span> <span class="p">(</span><span class="n">oos</span><span class="p">,</span> <span class="n">ool</span><span class="p">,</span> <span class="n">oot</span><span class="p">,</span> <span class="n">ooh</span><span class="p">)</span></div>
 
 
-<div class="viewcode-block" id="Options.get_help"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.options.Options.get_help">[docs]</a>    <span class="k">def</span> <span class="nf">get_help</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Method that returns all options stored in self.options </span>
+<div class="viewcode-block" id="Options.get_help"><a class="viewcode-back" href="../../apidoc_src/src.html#src.options.Options.get_help">[docs]</a>    <span class="k">def</span> <span class="nf">get_help</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Returns all options stored in self.options </span>
 <span class="sd">        as help message colored string</span>
 <span class="sd">        </span>
-<span class="sd">        :return: colored string</span>
-<span class="sd">        :rtype: N\A</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :return: (str) colored string</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
         <span class="c1"># Do nothing if there are no options</span>
         <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
             <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">ooh</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
         <span class="k">return</span> <span class="n">msg</span></div>
         
-<div class="viewcode-block" id="Options.indent"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.options.Options.indent">[docs]</a>    <span class="k">def</span> <span class="nf">indent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">amount</span><span class="p">,</span> <span class="n">car</span><span class="o">=</span><span class="s2">&quot; &quot;</span><span class="p">):</span>
+<div class="viewcode-block" id="Options.indent"><a class="viewcode-back" href="../../apidoc_src/src.html#src.options.Options.indent">[docs]</a>    <span class="k">def</span> <span class="nf">indent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">amount</span><span class="p">,</span> <span class="n">car</span><span class="o">=</span><span class="s2">&quot; &quot;</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;indent multi lines message&quot;&quot;&quot;</span>
         <span class="n">padding</span> <span class="o">=</span> <span class="n">amount</span> <span class="o">*</span> <span class="n">car</span>
         <span class="k">return</span> <span class="s1">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">padding</span> <span class="o">+</span> <span class="n">line</span> <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">text</span><span class="o">.</span><span class="n">splitlines</span><span class="p">(</span><span class="kc">True</span><span class="p">))</span></div>
                
 
-<div class="viewcode-block" id="Options.parse_args"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.options.Options.parse_args">[docs]</a>    <span class="k">def</span> <span class="nf">parse_args</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">argList</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Method that instantiates the class OptResult </span>
-<span class="sd">           that gives access to all options in the code</span>
+<div class="viewcode-block" id="Options.parse_args"><a class="viewcode-back" href="../../apidoc_src/src.html#src.options.Options.parse_args">[docs]</a>    <span class="k">def</span> <span class="nf">parse_args</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">argList</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Instantiates the class OptResult </span>
+<span class="sd">        that gives access to all options in the code</span>
 <span class="sd">        </span>
-<span class="sd">        :param argList list: the raw list of arguments that were passed</span>
-<span class="sd">        :return: optResult, args : optResult is the option instance </span>
-<span class="sd">                                   to manipulate in the code. args </span>
-<span class="sd">                                   is the full raw list of passed options </span>
-<span class="sd">        :rtype: (class &#39;common.options.OptResult&#39;,list)</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param argList: (list) the raw list of arguments that were passed</span>
+<span class="sd">        :return: (OptResult, list) as (optResult, args) </span>
+<span class="sd">          optResult is the option instance to manipulate in the code. </span>
+<span class="sd">          args is the full raw list of passed options </span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="c1"># see https://pymotw.com/2/getopt/</span>
         <span class="k">if</span> <span class="n">argList</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
             <span class="n">argList</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>
         <span class="k">return</span> <span class="n">optResult</span><span class="p">,</span> <span class="n">args</span></div>
 
     <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 
-        <span class="sd">&#39;&#39;&#39;repr for only self.options and self.results (if present)</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        repr for only self.options and self.results (if present)</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">aDict</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;options&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="p">,</span> <span class="s1">&#39;results&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">results</span><span class="p">}</span>
         <span class="n">aStr</span> <span class="o">=</span> <span class="n">PP</span><span class="o">.</span><span class="n">pformat</span><span class="p">(</span><span class="n">aDict</span><span class="p">)</span>
         <span class="n">res</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">(</span><span class="se">\n</span><span class="s2"> </span><span class="si">%s</span><span class="se">\n</span><span class="s2">)&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">aStr</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
         <span class="k">return</span> <span class="n">res</span>
         
     <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 
-        <span class="sd">&#39;&#39;&#39;str for only resume expected self.options</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        str for only resume expected self.options</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="c1">#aDict = [(k[&quot;longName&quot;], k[&quot;shortName&quot;, k[&quot;helpString&quot;]) for k in self.options}</span>
         <span class="c1">#aList = [(k, self.options[k]) for k in sorted(self.options.keys())]</span>
         <span class="n">aDict</span> <span class="o">=</span> <span class="p">{}</span>
         <span class="n">res</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">(</span><span class="se">\n</span><span class="s2"> </span><span class="si">%s</span><span class="s2">)&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">aStr</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
         <span class="k">return</span> <span class="n">res</span>
         
-<div class="viewcode-block" id="Options.debug_write"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.options.Options.debug_write">[docs]</a>    <span class="k">def</span> <span class="nf">debug_write</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Options.debug_write"><a class="viewcode-back" href="../../apidoc_src/src.html#src.options.Options.debug_write">[docs]</a>    <span class="k">def</span> <span class="nf">debug_write</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="n">DBG</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;options and results&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span></div></div>
 
 
index d3da51b4f1e5d01533aa74e1c8c7310309e14159..0e4af83df97a2ce7261834eb0e6280f7d00bf73b 100644 (file)
 <span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
 <span class="c1">#  License along with this library; if not, write to the Free Software</span>
 <span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
-<span class="sd">&#39;&#39;&#39;In this file are implemented the methods </span>
-<span class="sd">   relative to the product notion of salomeTools</span>
-<span class="sd">&#39;&#39;&#39;</span>
+
+<span class="sd">&quot;&quot;&quot;\</span>
+<span class="sd">Contains the methods </span>
+<span class="sd">relative to the product notion of salomeTools</span>
+<span class="sd">&quot;&quot;&quot;</span>
 
 <span class="kn">import</span> <span class="nn">os</span>
 <span class="kn">import</span> <span class="nn">re</span>
 <span class="n">config_expression</span> <span class="o">=</span> <span class="s2">&quot;^config-\d+$&quot;</span>
 <span class="n">VERSION_DELIMITER</span> <span class="o">=</span> <span class="s2">&quot;_to_&quot;</span>
 
-<div class="viewcode-block" id="get_product_config"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.get_product_config">[docs]</a><span class="k">def</span> <span class="nf">get_product_config</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">product_name</span><span class="p">,</span> <span class="n">with_install_dir</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;\</span>
+<div class="viewcode-block" id="get_product_config"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.get_product_config">[docs]</a><span class="k">def</span> <span class="nf">get_product_config</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">product_name</span><span class="p">,</span> <span class="n">with_install_dir</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Get the specific configuration of a product from the global configuration</span>
 <span class="sd">    </span>
-<span class="sd">    :param config Config: The global configuration</span>
-<span class="sd">    :param product_name str: The name of the product</span>
-<span class="sd">    :param with_install_dir boolean: If false, do not provide an install </span>
-<span class="sd">                                     directory (at false only for internal use </span>
-<span class="sd">                                     of the function check_config_exists)</span>
-<span class="sd">    :return: the specific configuration of the product</span>
-<span class="sd">    :rtype: Config</span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param product_name: (str) The name of the product</span>
+<span class="sd">    :param with_install_dir: (boolean)</span>
+<span class="sd">      If false, do not provide an install directory </span>
+<span class="sd">      (at false only for internal use of the function check_config_exists)</span>
+<span class="sd">    :return: (Config) The specific configuration of the product</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     
     <span class="c1"># Get the version of the product from the application definition</span>
                 
     <span class="k">return</span> <span class="n">prod_info</span></div>
 
-<div class="viewcode-block" id="get_product_section"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.get_product_section">[docs]</a><span class="k">def</span> <span class="nf">get_product_section</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">product_name</span><span class="p">,</span> <span class="n">version</span><span class="p">,</span> <span class="n">section</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Get the product description from the configuration</span>
+<div class="viewcode-block" id="get_product_section"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.get_product_section">[docs]</a><span class="k">def</span> <span class="nf">get_product_section</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">product_name</span><span class="p">,</span> <span class="n">version</span><span class="p">,</span> <span class="n">section</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Get the product description from the configuration</span>
 <span class="sd">    </span>
-<span class="sd">    :param config Config: The global configuration</span>
-<span class="sd">    :param product_name str: The product name</span>
-<span class="sd">    :param version str: The version of the product</span>
-<span class="sd">    :param section str: The searched section (if not None, the section is </span>
-<span class="sd">                        explicitly given</span>
-<span class="sd">    :return: The product description</span>
-<span class="sd">    :rtype: Config</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param product_name: (str) The product name</span>
+<span class="sd">    :param version: (str) The version of the product</span>
+<span class="sd">    :param section: (str) </span>
+<span class="sd">      The searched section</span>
+<span class="sd">      (if not None, the section is explicitly given)</span>
+<span class="sd">    :return: (Config) The product description</span>
+<span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="c1"># if section is not None, try to get the corresponding section</span>
     <span class="k">if</span> <span class="n">section</span><span class="p">:</span>
     <span class="c1"># if noting was found, return None</span>
     <span class="k">return</span> <span class="kc">None</span></div>
     
-<div class="viewcode-block" id="get_install_dir"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.get_install_dir">[docs]</a><span class="k">def</span> <span class="nf">get_install_dir</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">base</span><span class="p">,</span> <span class="n">version</span><span class="p">,</span> <span class="n">prod_info</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;\</span>
+<div class="viewcode-block" id="get_install_dir"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.get_install_dir">[docs]</a><span class="k">def</span> <span class="nf">get_install_dir</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">base</span><span class="p">,</span> <span class="n">version</span><span class="p">,</span> <span class="n">prod_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Compute the installation directory of a given product </span>
 <span class="sd">    </span>
-<span class="sd">    :param config Config: The global configuration</span>
-<span class="sd">    :param base str: This corresponds to the value given by user in its application.pyconf for the specific product. If &quot;yes&quot;, the user wants the product to be in base. If &quot;no&quot;, he wants the product to be in the application workdir</span>
-<span class="sd">    :param version str: The version of the product</span>
-<span class="sd">    :param product_info Config: The configuration specific to the product</span>
-<span class="sd">    :return: The path of the product installation</span>
-<span class="sd">    :rtype: str</span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param base: (str) </span>
+<span class="sd">      This corresponds to the value given by user in its application.pyconf </span>
+<span class="sd">      for the specific product. </span>
+<span class="sd">      If &quot;yes&quot;, the user wants the product to be in base. </span>
+<span class="sd">      If &quot;no&quot;, he wants the product to be in the application workdir</span>
+<span class="sd">    :param version: (str) The version of the product</span>
+<span class="sd">    :param product_info: (Config) The configuration specific to the product</span>
+<span class="sd">    :return: (str) The path of the product installation</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">install_dir</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
     <span class="n">in_base</span> <span class="o">=</span> <span class="kc">False</span>
 
     <span class="k">return</span> <span class="n">install_dir</span></div>
 
-<div class="viewcode-block" id="get_base_install_dir"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.get_base_install_dir">[docs]</a><span class="k">def</span> <span class="nf">get_base_install_dir</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">prod_info</span><span class="p">,</span> <span class="n">version</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Compute the installation directory of a product in base </span>
+<div class="viewcode-block" id="get_base_install_dir"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.get_base_install_dir">[docs]</a><span class="k">def</span> <span class="nf">get_base_install_dir</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">prod_info</span><span class="p">,</span> <span class="n">version</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Compute the installation directory of a product in base </span>
 <span class="sd">    </span>
-<span class="sd">    :param config Config: The global configuration</span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :param version str: The version of the product    </span>
-<span class="sd">    :return: The path of the product installation</span>
-<span class="sd">    :rtype: str</span>
-<span class="sd">    &#39;&#39;&#39;</span>    
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param product_info: (Config) </span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :param version: (str) The version of the product    </span>
+<span class="sd">    :return: (str) The path of the product installation</span>
+<span class="sd">    &quot;&quot;&quot;</span>    
     <span class="n">base_path</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_base_path</span><span class="p">(</span><span class="n">config</span><span class="p">)</span> 
     <span class="n">prod_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">base_path</span><span class="p">,</span> <span class="n">prod_info</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">&quot;-&quot;</span> <span class="o">+</span> <span class="n">version</span><span class="p">)</span>
     <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">prod_dir</span><span class="p">):</span>
             
     <span class="k">return</span> <span class="n">install_dir</span></div>
 
-<div class="viewcode-block" id="check_config_exists"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.check_config_exists">[docs]</a><span class="k">def</span> <span class="nf">check_config_exists</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">prod_dir</span><span class="p">,</span> <span class="n">prod_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Verify that the installation directory of a product in a base exists</span>
-<span class="sd">       Check all the config-&lt;i&gt; directory and verify the sat-config.pyconf file</span>
-<span class="sd">       that is in it </span>
+<div class="viewcode-block" id="check_config_exists"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.check_config_exists">[docs]</a><span class="k">def</span> <span class="nf">check_config_exists</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">prod_dir</span><span class="p">,</span> <span class="n">prod_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Verify that the installation directory of a product in a base exists</span>
+<span class="sd">    Check all the config-&lt;i&gt; directory and verify the sat-config.pyconf file</span>
+<span class="sd">    that is in it </span>
 <span class="sd">    </span>
-<span class="sd">    :param config Config: The global configuration</span>
-<span class="sd">    :param prod_dir str: The product installation directory path </span>
-<span class="sd">                         (without config-&lt;i&gt;)</span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True or false is the installation is found or not </span>
-<span class="sd">             and if it is found, the path of the found installation</span>
-<span class="sd">    :rtype: (boolean, str)</span>
-<span class="sd">    &#39;&#39;&#39;</span>   
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param prod_dir: (str) </span>
+<span class="sd">      The product installation directory path </span>
+<span class="sd">      (without config-&lt;i&gt;)</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (tuple) as (boolean, str)</span>
+<span class="sd">      True or false is the installation is found or not </span>
+<span class="sd">      and if it is found, the path of the found installation</span>
+<span class="sd">    &quot;&quot;&quot;</span>   
     <span class="c1"># check if the directories or files of the directory corresponds to the </span>
     <span class="c1"># directory installation of the product</span>
     <span class="n">l_dir_and_files</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">prod_dir</span><span class="p">)</span>
             
             
     
-<div class="viewcode-block" id="get_products_infos"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.get_products_infos">[docs]</a><span class="k">def</span> <span class="nf">get_products_infos</span><span class="p">(</span><span class="n">lproducts</span><span class="p">,</span> <span class="n">config</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Get the specific configuration of a list of products</span>
+<div class="viewcode-block" id="get_products_infos"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.get_products_infos">[docs]</a><span class="k">def</span> <span class="nf">get_products_infos</span><span class="p">(</span><span class="n">lproducts</span><span class="p">,</span> <span class="n">config</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Get the specific configuration of a list of products</span>
 <span class="sd">    </span>
-<span class="sd">    :param lproducts List: The list of product names</span>
-<span class="sd">    :param config Config: The global configuration</span>
-<span class="sd">    :return: the list of tuples </span>
-<span class="sd">             (product name, specific configuration of the product)</span>
-<span class="sd">    :rtype: [(str, Config)]</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param lproducts: (list) The list of product names</span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :return: (list) of tuples (str, Config)</span>
+<span class="sd">      as (product name, specific configuration of the product)</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">products_infos</span> <span class="o">=</span> <span class="p">[]</span>
     <span class="c1"># Loop on product names</span>
     <span class="k">for</span> <span class="n">prod</span> <span class="ow">in</span> <span class="n">lproducts</span><span class="p">:</span>       
             <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
     <span class="k">return</span> <span class="n">products_infos</span></div>
 
-<div class="viewcode-block" id="get_product_dependencies"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.get_product_dependencies">[docs]</a><span class="k">def</span> <span class="nf">get_product_dependencies</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Get recursively the list of products that are </span>
-<span class="sd">       in the product_info dependencies</span>
+<div class="viewcode-block" id="get_product_dependencies"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.get_product_dependencies">[docs]</a><span class="k">def</span> <span class="nf">get_product_dependencies</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Get recursively the list of products that are </span>
+<span class="sd">    in the product_info dependencies</span>
 <span class="sd">    </span>
-<span class="sd">    :param config Config: The global configuration</span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: the list of products in dependence</span>
-<span class="sd">    :rtype: list</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param config: (Config) The global configuration</span>
+<span class="sd">    :param product_info: (Config) </span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (list) the list of products in dependence</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="s2">&quot;depend&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">product_info</span> <span class="ow">or</span> <span class="n">product_info</span><span class="o">.</span><span class="n">depend</span> <span class="o">==</span> <span class="p">[]:</span>
         <span class="k">return</span> <span class="p">[]</span>
     <span class="n">res</span> <span class="o">=</span> <span class="p">[]</span>
                 <span class="n">res</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">prod_in_dep</span><span class="p">)</span>
     <span class="k">return</span> <span class="n">res</span></div>
 
-<div class="viewcode-block" id="check_installation"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.check_installation">[docs]</a><span class="k">def</span> <span class="nf">check_installation</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Verify if a product is well installed. Checks install directory presence</span>
-<span class="sd">       and some additional files if it is defined in the config </span>
+<div class="viewcode-block" id="check_installation"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.check_installation">[docs]</a><span class="k">def</span> <span class="nf">check_installation</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Verify if a product is well installed. </span>
+<span class="sd">    Checks install directory presence</span>
+<span class="sd">    and some additional files if it is defined in the config </span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True if it is well installed</span>
-<span class="sd">    :rtype: boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config) </span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (bool) True if it is well installed</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="ow">not</span> <span class="n">product_compiles</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
         <span class="k">return</span> <span class="kc">True</span>
     <span class="n">install_dir</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">install_dir</span>
                 <span class="k">return</span> <span class="kc">False</span>
     <span class="k">return</span> <span class="kc">True</span></div>
 
-<div class="viewcode-block" id="product_is_sample"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.product_is_sample">[docs]</a><span class="k">def</span> <span class="nf">product_is_sample</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Know if a product has the sample type</span>
+<div class="viewcode-block" id="product_is_sample"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.product_is_sample">[docs]</a><span class="k">def</span> <span class="nf">product_is_sample</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Know if a product has the sample type</span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True if the product has the sample type, else False</span>
-<span class="sd">    :rtype: boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (bool) </span>
+<span class="sd">      True if the product has the sample type, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="s1">&#39;type&#39;</span> <span class="ow">in</span> <span class="n">product_info</span><span class="p">:</span>
         <span class="n">ptype</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">type</span>
         <span class="k">return</span> <span class="n">ptype</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;sample&#39;</span>
     <span class="k">else</span><span class="p">:</span>
         <span class="k">return</span> <span class="kc">False</span></div>
 
-<div class="viewcode-block" id="product_is_salome"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.product_is_salome">[docs]</a><span class="k">def</span> <span class="nf">product_is_salome</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Know if a product is of type salome</span>
+<div class="viewcode-block" id="product_is_salome"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.product_is_salome">[docs]</a><span class="k">def</span> <span class="nf">product_is_salome</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Know if a product is of type salome</span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True if the product is salome, else False</span>
-<span class="sd">    :rtype: boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config) </span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (bool) </span>
+<span class="sd">      True if the product is salome, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="s1">&#39;type&#39;</span> <span class="ow">in</span> <span class="n">product_info</span><span class="p">:</span>
         <span class="n">ptype</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">type</span>
         <span class="k">return</span> <span class="n">ptype</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;salome&#39;</span>
     <span class="k">else</span><span class="p">:</span>
         <span class="k">return</span> <span class="kc">False</span></div>
 
-<div class="viewcode-block" id="product_is_fixed"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.product_is_fixed">[docs]</a><span class="k">def</span> <span class="nf">product_is_fixed</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Know if a product is fixed</span>
+<div class="viewcode-block" id="product_is_fixed"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.product_is_fixed">[docs]</a><span class="k">def</span> <span class="nf">product_is_fixed</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Know if a product is fixed</span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True if the product is fixed, else False</span>
-<span class="sd">    :rtype: boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (bool) </span>
+<span class="sd">      True if the product is fixed, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">get_src</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">get_source</span>
     <span class="k">return</span> <span class="n">get_src</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;fixed&#39;</span></div>
 
-<div class="viewcode-block" id="product_is_native"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.product_is_native">[docs]</a><span class="k">def</span> <span class="nf">product_is_native</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Know if a product is native</span>
+<div class="viewcode-block" id="product_is_native"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.product_is_native">[docs]</a><span class="k">def</span> <span class="nf">product_is_native</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Know if a product is native</span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True if the product is native, else False</span>
-<span class="sd">    :rtype: boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (bool) </span>
+<span class="sd">      True if the product is native, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">get_src</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">get_source</span>
     <span class="k">return</span> <span class="n">get_src</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;native&#39;</span></div>
 
-<div class="viewcode-block" id="product_is_dev"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.product_is_dev">[docs]</a><span class="k">def</span> <span class="nf">product_is_dev</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Know if a product is in dev mode</span>
+<div class="viewcode-block" id="product_is_dev"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.product_is_dev">[docs]</a><span class="k">def</span> <span class="nf">product_is_dev</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Know if a product is in dev mode</span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True if the product is in dev mode, else False</span>
-<span class="sd">    :rtype: boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (bool) </span>
+<span class="sd">      True if the product is in dev mode, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">dev</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">dev</span>
     <span class="k">return</span> <span class="n">dev</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;yes&#39;</span></div>
 
-<div class="viewcode-block" id="product_is_debug"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.product_is_debug">[docs]</a><span class="k">def</span> <span class="nf">product_is_debug</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Know if a product is in debug mode</span>
+<div class="viewcode-block" id="product_is_debug"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.product_is_debug">[docs]</a><span class="k">def</span> <span class="nf">product_is_debug</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Know if a product is in debug mode</span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True if the product is in debug mode, else False</span>
-<span class="sd">    :rtype: boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (bool) </span>
+<span class="sd">      True if the product is in debug mode, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">debug</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">debug</span>
     <span class="k">return</span> <span class="n">debug</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;yes&#39;</span></div>
 
-<div class="viewcode-block" id="product_is_autotools"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.product_is_autotools">[docs]</a><span class="k">def</span> <span class="nf">product_is_autotools</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Know if a product is compiled using the autotools</span>
+<div class="viewcode-block" id="product_is_autotools"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.product_is_autotools">[docs]</a><span class="k">def</span> <span class="nf">product_is_autotools</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Know if a product is compiled using the autotools</span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True if the product is autotools, else False</span>
-<span class="sd">    :rtype: boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (bool) </span>
+<span class="sd">      True if the product is autotools, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">build_src</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">build_source</span>
     <span class="k">return</span> <span class="n">build_src</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;autotools&#39;</span></div>
 
-<div class="viewcode-block" id="product_is_cmake"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.product_is_cmake">[docs]</a><span class="k">def</span> <span class="nf">product_is_cmake</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Know if a product is compiled using the cmake</span>
+<div class="viewcode-block" id="product_is_cmake"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.product_is_cmake">[docs]</a><span class="k">def</span> <span class="nf">product_is_cmake</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Know if a product is compiled using the cmake</span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True if the product is cmake, else False</span>
-<span class="sd">    :rtype: boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (bool) </span>
+<span class="sd">      True if the product is cmake, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">build_src</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">build_source</span>
     <span class="k">return</span> <span class="n">build_src</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;cmake&#39;</span></div>
 
-<div class="viewcode-block" id="product_is_vcs"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.product_is_vcs">[docs]</a><span class="k">def</span> <span class="nf">product_is_vcs</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Know if a product is download using git, svn or cvs (not archive)</span>
+<div class="viewcode-block" id="product_is_vcs"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.product_is_vcs">[docs]</a><span class="k">def</span> <span class="nf">product_is_vcs</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Know if a product is download using git, svn or cvs (not archive)</span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True if the product is vcs, else False</span>
-<span class="sd">    :rtype: boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (bool)</span>
+<span class="sd">      True if the product is vcs, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">return</span> <span class="n">product_info</span><span class="o">.</span><span class="n">get_source</span> <span class="ow">in</span> <span class="n">AVAILABLE_VCS</span></div>
 
-<div class="viewcode-block" id="product_is_SALOME"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.product_is_SALOME">[docs]</a><span class="k">def</span> <span class="nf">product_is_SALOME</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Know if a product is a SALOME module</span>
+<div class="viewcode-block" id="product_is_SALOME"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.product_is_SALOME">[docs]</a><span class="k">def</span> <span class="nf">product_is_SALOME</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Know if a product is a SALOME module</span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True if the product is a SALOME module, else False</span>
-<span class="sd">    :rtype: boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (bool) </span>
+<span class="sd">      True if the product is a SALOME module, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">return</span> <span class="p">(</span><span class="s2">&quot;properties&quot;</span> <span class="ow">in</span> <span class="n">product_info</span> <span class="ow">and</span>
             <span class="s2">&quot;is_SALOME_module&quot;</span> <span class="ow">in</span> <span class="n">product_info</span><span class="o">.</span><span class="n">properties</span> <span class="ow">and</span>
             <span class="n">product_info</span><span class="o">.</span><span class="n">properties</span><span class="o">.</span><span class="n">is_SALOME_module</span> <span class="o">==</span> <span class="s2">&quot;yes&quot;</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="product_is_smesh_plugin"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.product_is_smesh_plugin">[docs]</a><span class="k">def</span> <span class="nf">product_is_smesh_plugin</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Know if a product is a SMESH plugin</span>
+<div class="viewcode-block" id="product_is_smesh_plugin"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.product_is_smesh_plugin">[docs]</a><span class="k">def</span> <span class="nf">product_is_smesh_plugin</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Know if a product is a SMESH plugin</span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True if the product is a SMESH plugin, else False</span>
-<span class="sd">    :rtype: boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (bool)</span>
+<span class="sd">      True if the product is a SMESH plugin, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">return</span> <span class="p">(</span><span class="s2">&quot;properties&quot;</span> <span class="ow">in</span> <span class="n">product_info</span> <span class="ow">and</span>
             <span class="s2">&quot;smesh_plugin&quot;</span> <span class="ow">in</span> <span class="n">product_info</span><span class="o">.</span><span class="n">properties</span> <span class="ow">and</span>
             <span class="n">product_info</span><span class="o">.</span><span class="n">properties</span><span class="o">.</span><span class="n">smesh_plugin</span> <span class="o">==</span> <span class="s2">&quot;yes&quot;</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="product_is_cpp"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.product_is_cpp">[docs]</a><span class="k">def</span> <span class="nf">product_is_cpp</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Know if a product is cpp</span>
+<div class="viewcode-block" id="product_is_cpp"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.product_is_cpp">[docs]</a><span class="k">def</span> <span class="nf">product_is_cpp</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Know if a product is cpp</span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True if the product is a cpp, else False</span>
-<span class="sd">    :rtype: boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (bool) </span>
+<span class="sd">      True if the product is a cpp, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">return</span> <span class="p">(</span><span class="s2">&quot;properties&quot;</span> <span class="ow">in</span> <span class="n">product_info</span> <span class="ow">and</span>
             <span class="s2">&quot;cpp&quot;</span> <span class="ow">in</span> <span class="n">product_info</span><span class="o">.</span><span class="n">properties</span> <span class="ow">and</span>
             <span class="n">product_info</span><span class="o">.</span><span class="n">properties</span><span class="o">.</span><span class="n">cpp</span> <span class="o">==</span> <span class="s2">&quot;yes&quot;</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="product_compiles"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.product_compiles">[docs]</a><span class="k">def</span> <span class="nf">product_compiles</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Know if a product compiles or not (some products do not have a </span>
+<div class="viewcode-block" id="product_compiles"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.product_compiles">[docs]</a><span class="k">def</span> <span class="nf">product_compiles</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Know if a product compiles or not (some products do not have a </span>
 <span class="sd">       compilation procedure)</span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True if the product compiles, else False</span>
-<span class="sd">    :rtype: boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (bool) </span>
+<span class="sd">      True if the product compiles, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">return</span> <span class="ow">not</span><span class="p">(</span><span class="s2">&quot;properties&quot;</span> <span class="ow">in</span> <span class="n">product_info</span> <span class="ow">and</span>
             <span class="s2">&quot;compilation&quot;</span> <span class="ow">in</span> <span class="n">product_info</span><span class="o">.</span><span class="n">properties</span> <span class="ow">and</span>
             <span class="n">product_info</span><span class="o">.</span><span class="n">properties</span><span class="o">.</span><span class="n">compilation</span> <span class="o">==</span> <span class="s2">&quot;no&quot;</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="product_has_script"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.product_has_script">[docs]</a><span class="k">def</span> <span class="nf">product_has_script</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Know if a product has a compilation script</span>
+<div class="viewcode-block" id="product_has_script"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.product_has_script">[docs]</a><span class="k">def</span> <span class="nf">product_has_script</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Know if a product has a compilation script</span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True if the product it has a compilation script, else False</span>
-<span class="sd">    :rtype: boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (bool) </span>
+<span class="sd">      True if the product it has a compilation script, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="s2">&quot;build_source&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">product_info</span><span class="p">:</span>
         <span class="c1"># Native case</span>
         <span class="k">return</span> <span class="kc">False</span>
     <span class="n">build_src</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">build_source</span>
     <span class="k">return</span> <span class="n">build_src</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;script&#39;</span></div>
 
-<div class="viewcode-block" id="product_has_env_script"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.product_has_env_script">[docs]</a><span class="k">def</span> <span class="nf">product_has_env_script</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Know if a product has an environment script</span>
+<div class="viewcode-block" id="product_has_env_script"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.product_has_env_script">[docs]</a><span class="k">def</span> <span class="nf">product_has_env_script</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Know if a product has an environment script</span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True if the product it has an environment script, else False</span>
-<span class="sd">    :rtype: boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (bool) </span>
+<span class="sd">      True if the product it has an environment script, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">return</span> <span class="s2">&quot;environ&quot;</span> <span class="ow">in</span> <span class="n">product_info</span> <span class="ow">and</span> <span class="s2">&quot;env_script&quot;</span> <span class="ow">in</span> <span class="n">product_info</span><span class="o">.</span><span class="n">environ</span></div>
 
-<div class="viewcode-block" id="product_has_patches"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.product_has_patches">[docs]</a><span class="k">def</span> <span class="nf">product_has_patches</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Know if a product has one or more patches</span>
+<div class="viewcode-block" id="product_has_patches"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.product_has_patches">[docs]</a><span class="k">def</span> <span class="nf">product_has_patches</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Know if a product has one or more patches</span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True if the product has one or more patches</span>
-<span class="sd">    :rtype: boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (bool) </span>
+<span class="sd">      True if the product has one or more patches</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">return</span> <span class="s2">&quot;patches&quot;</span> <span class="ow">in</span> <span class="n">product_info</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">patches</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span></div>
 
-<div class="viewcode-block" id="product_has_logo"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.product_has_logo">[docs]</a><span class="k">def</span> <span class="nf">product_has_logo</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Know if a product has a logo (YACSGEN generate)</span>
+<div class="viewcode-block" id="product_has_logo"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.product_has_logo">[docs]</a><span class="k">def</span> <span class="nf">product_has_logo</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Know if a product has a logo (YACSGEN generate)</span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: The path of the logo if the product has a logo, else False</span>
-<span class="sd">    :rtype: Str</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (str) </span>
+<span class="sd">      The path of the logo if the product has a logo, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="p">(</span><span class="s2">&quot;properties&quot;</span> <span class="ow">in</span> <span class="n">product_info</span> <span class="ow">and</span>
             <span class="s2">&quot;logo&quot;</span> <span class="ow">in</span> <span class="n">product_info</span><span class="o">.</span><span class="n">properties</span><span class="p">):</span>
         <span class="k">return</span> <span class="n">product_info</span><span class="o">.</span><span class="n">properties</span><span class="o">.</span><span class="n">logo</span>
     <span class="k">else</span><span class="p">:</span>
         <span class="k">return</span> <span class="kc">False</span></div>
 
-<div class="viewcode-block" id="product_has_salome_gui"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.product_has_salome_gui">[docs]</a><span class="k">def</span> <span class="nf">product_has_salome_gui</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Know if a product has a SALOME gui</span>
+<div class="viewcode-block" id="product_has_salome_gui"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.product_has_salome_gui">[docs]</a><span class="k">def</span> <span class="nf">product_has_salome_gui</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Know if a product has a SALOME gui</span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True if the product has a SALOME gui, else False</span>
-<span class="sd">    :rtype: Boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (bool) </span>
+<span class="sd">      True if the product has a SALOME gui, else False</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">return</span> <span class="p">(</span><span class="s2">&quot;properties&quot;</span> <span class="ow">in</span> <span class="n">product_info</span> <span class="ow">and</span>
             <span class="s2">&quot;has_salome_gui&quot;</span> <span class="ow">in</span> <span class="n">product_info</span><span class="o">.</span><span class="n">properties</span> <span class="ow">and</span>
             <span class="n">product_info</span><span class="o">.</span><span class="n">properties</span><span class="o">.</span><span class="n">has_salome_gui</span> <span class="o">==</span> <span class="s2">&quot;yes&quot;</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="product_is_mpi"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.product_is_mpi">[docs]</a><span class="k">def</span> <span class="nf">product_is_mpi</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Know if a product has openmpi in its dependencies</span>
+<div class="viewcode-block" id="product_is_mpi"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.product_is_mpi">[docs]</a><span class="k">def</span> <span class="nf">product_is_mpi</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Know if a product has openmpi in its dependencies</span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True if the product has openmpi inits dependencies</span>
-<span class="sd">    :rtype: boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (bool) </span>
+<span class="sd">      True if the product has openmpi inits dependencies</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">return</span> <span class="s2">&quot;openmpi&quot;</span> <span class="ow">in</span> <span class="n">product_info</span><span class="o">.</span><span class="n">depend</span></div>
 
-<div class="viewcode-block" id="product_is_generated"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.product_is_generated">[docs]</a><span class="k">def</span> <span class="nf">product_is_generated</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Know if a product is generated (YACSGEN)</span>
+<div class="viewcode-block" id="product_is_generated"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.product_is_generated">[docs]</a><span class="k">def</span> <span class="nf">product_is_generated</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Know if a product is generated (YACSGEN)</span>
 <span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: True if the product is generated</span>
-<span class="sd">    :rtype: boolean</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (bool) True if the product is generated</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">return</span> <span class="p">(</span><span class="s2">&quot;properties&quot;</span> <span class="ow">in</span> <span class="n">product_info</span> <span class="ow">and</span>
             <span class="s2">&quot;generate&quot;</span> <span class="ow">in</span> <span class="n">product_info</span><span class="o">.</span><span class="n">properties</span> <span class="ow">and</span>
             <span class="n">product_info</span><span class="o">.</span><span class="n">properties</span><span class="o">.</span><span class="n">generate</span> <span class="o">==</span> <span class="s2">&quot;yes&quot;</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="get_product_components"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.product.get_product_components">[docs]</a><span class="k">def</span> <span class="nf">get_product_components</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Get the component list to generate with the product</span>
-<span class="sd">    </span>
-<span class="sd">    :param product_info Config: The configuration specific to </span>
-<span class="sd">                               the product</span>
-<span class="sd">    :return: The list of names of the components</span>
-<span class="sd">    :rtype: List</span>
+<div class="viewcode-block" id="get_product_components"><a class="viewcode-back" href="../../apidoc_src/src.html#src.product.get_product_components">[docs]</a><span class="k">def</span> <span class="nf">get_product_components</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Get the component list to generate with the product</span>
 <span class="sd">    </span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param product_info: (Config)</span>
+<span class="sd">      The configuration specific to the product</span>
+<span class="sd">    :return: (list) The list of names of the components </span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="ow">not</span> <span class="n">product_is_generated</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
         <span class="k">return</span> <span class="p">[]</span>
     
index ce8589425709ea9c9f7971c68df6c0d29b038a31..72289b16f6077a12632342a17f6e6ba0e7ce9729 100644 (file)
 <span class="k">except</span><span class="p">:</span>
     <span class="n">has_utf32</span> <span class="o">=</span> <span class="kc">False</span>
 
-<div class="viewcode-block" id="ConfigInputStream"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigInputStream">[docs]</a><span class="k">class</span> <span class="nc">ConfigInputStream</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigInputStream"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigInputStream">[docs]</a><span class="k">class</span> <span class="nc">ConfigInputStream</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    An input stream which can read either ANSI files with default encoding</span>
 <span class="sd">    or Unicode files with BOMs.</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">stream</span> <span class="o">=</span> <span class="n">stream</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">encoding</span> <span class="o">=</span> <span class="n">encoding</span>
 
-<div class="viewcode-block" id="ConfigInputStream.read"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigInputStream.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigInputStream.read"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigInputStream.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="p">):</span>
         <span class="k">if</span> <span class="p">(</span><span class="n">size</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">encoding</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">):</span>
             <span class="n">rv</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">stream</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">size</span><span class="p">)</span>
         <span class="k">else</span><span class="p">:</span>
                 <span class="n">size</span> <span class="o">-=</span> <span class="mi">1</span>
         <span class="k">return</span> <span class="n">rv</span></div>
 
-<div class="viewcode-block" id="ConfigInputStream.close"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigInputStream.close">[docs]</a>    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigInputStream.close"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigInputStream.close">[docs]</a>    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">stream</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div>
 
-<div class="viewcode-block" id="ConfigInputStream.readline"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigInputStream.readline">[docs]</a>    <span class="k">def</span> <span class="nf">readline</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigInputStream.readline"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigInputStream.readline">[docs]</a>    <span class="k">def</span> <span class="nf">readline</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">encoding</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
             <span class="n">line</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
         <span class="k">else</span><span class="p">:</span>
                 <span class="k">break</span>
         <span class="k">return</span> <span class="n">line</span></div></div>
 
-<div class="viewcode-block" id="ConfigOutputStream"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigOutputStream">[docs]</a><span class="k">class</span> <span class="nc">ConfigOutputStream</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigOutputStream"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigOutputStream">[docs]</a><span class="k">class</span> <span class="nc">ConfigOutputStream</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    An output stream which can write either ANSI files with default encoding</span>
 <span class="sd">    or Unicode files with BOMs.</span>
             <span class="n">stream</span> <span class="o">=</span> <span class="n">writer</span><span class="p">(</span><span class="n">stream</span><span class="p">)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">stream</span> <span class="o">=</span> <span class="n">stream</span>
 
-<div class="viewcode-block" id="ConfigOutputStream.write"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigOutputStream.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigOutputStream.write"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigOutputStream.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">stream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">data</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="ConfigOutputStream.flush"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigOutputStream.flush">[docs]</a>    <span class="k">def</span> <span class="nf">flush</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigOutputStream.flush"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigOutputStream.flush">[docs]</a>    <span class="k">def</span> <span class="nf">flush</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">stream</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span></div>
 
-<div class="viewcode-block" id="ConfigOutputStream.close"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigOutputStream.close">[docs]</a>    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigOutputStream.close"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigOutputStream.close">[docs]</a>    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">stream</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div></div>
 
-<div class="viewcode-block" id="defaultStreamOpener"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.defaultStreamOpener">[docs]</a><span class="k">def</span> <span class="nf">defaultStreamOpener</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
+<div class="viewcode-block" id="defaultStreamOpener"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.defaultStreamOpener">[docs]</a><span class="k">def</span> <span class="nf">defaultStreamOpener</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    This function returns a read-only stream, given its name. The name passed</span>
 <span class="sd">    in should correspond to an existing stream, otherwise an exception will be</span>
 
 <span class="n">__resolveOverwrite__</span> <span class="o">=</span> <span class="kc">True</span>
 
-<div class="viewcode-block" id="ConfigError"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigError">[docs]</a><span class="k">class</span> <span class="nc">ConfigError</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigError"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigError">[docs]</a><span class="k">class</span> <span class="nc">ConfigError</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    This is the base class of exceptions raised by this module.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">pass</span></div>
 
-<div class="viewcode-block" id="ConfigFormatError"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigFormatError">[docs]</a><span class="k">class</span> <span class="nc">ConfigFormatError</span><span class="p">(</span><span class="n">ConfigError</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigFormatError"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigFormatError">[docs]</a><span class="k">class</span> <span class="nc">ConfigFormatError</span><span class="p">(</span><span class="n">ConfigError</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    This is the base class of exceptions raised due to syntax errors in</span>
 <span class="sd">    configurations.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">pass</span></div>
 
-<div class="viewcode-block" id="ConfigResolutionError"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigResolutionError">[docs]</a><span class="k">class</span> <span class="nc">ConfigResolutionError</span><span class="p">(</span><span class="n">ConfigError</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigResolutionError"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigResolutionError">[docs]</a><span class="k">class</span> <span class="nc">ConfigResolutionError</span><span class="p">(</span><span class="n">ConfigError</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    This is the base class of exceptions raised due to semantic errors in</span>
 <span class="sd">    configurations.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">pass</span></div>
 
-<div class="viewcode-block" id="isWord"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.isWord">[docs]</a><span class="k">def</span> <span class="nf">isWord</span><span class="p">(</span><span class="n">s</span><span class="p">):</span>
+<div class="viewcode-block" id="isWord"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.isWord">[docs]</a><span class="k">def</span> <span class="nf">isWord</span><span class="p">(</span><span class="n">s</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    See if a passed-in value is an identifier. If the value passed in is not a</span>
 <span class="sd">    string, False is returned. An identifier consists of alphanumerics or</span>
     <span class="n">s</span> <span class="o">=</span> <span class="n">s</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39;_&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
     <span class="k">return</span> <span class="n">s</span><span class="o">.</span><span class="n">isalnum</span><span class="p">()</span></div>
 
-<div class="viewcode-block" id="makePath"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.makePath">[docs]</a><span class="k">def</span> <span class="nf">makePath</span><span class="p">(</span><span class="n">prefix</span><span class="p">,</span> <span class="n">suffix</span><span class="p">):</span>
+<div class="viewcode-block" id="makePath"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.makePath">[docs]</a><span class="k">def</span> <span class="nf">makePath</span><span class="p">(</span><span class="n">prefix</span><span class="p">,</span> <span class="n">suffix</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Make a path from a prefix and suffix.</span>
 
     <span class="k">return</span> <span class="n">rv</span></div>
 
 
-<div class="viewcode-block" id="Container"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Container">[docs]</a><span class="k">class</span> <span class="nc">Container</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="Container"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Container">[docs]</a><span class="k">class</span> <span class="nc">Container</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    This internal class is the base class for mappings and sequences.</span>
 
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="nb">object</span><span class="o">.</span><span class="fm">__setattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">&#39;parent&#39;</span><span class="p">,</span> <span class="n">parent</span><span class="p">)</span>
 
-<div class="viewcode-block" id="Container.setPath"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Container.setPath">[docs]</a>    <span class="k">def</span> <span class="nf">setPath</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
+<div class="viewcode-block" id="Container.setPath"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Container.setPath">[docs]</a>    <span class="k">def</span> <span class="nf">setPath</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Set the path for this instance.</span>
 <span class="sd">        @param path: The path - a string which describes how to get</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="nb">object</span><span class="o">.</span><span class="fm">__setattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">&#39;path&#39;</span><span class="p">,</span> <span class="n">path</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Container.evaluate"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Container.evaluate">[docs]</a>    <span class="k">def</span> <span class="nf">evaluate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item</span><span class="p">):</span>
+<div class="viewcode-block" id="Container.evaluate"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Container.evaluate">[docs]</a>    <span class="k">def</span> <span class="nf">evaluate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Evaluate items which are instances of L{Reference} or L{Expression}.</span>
 
             <span class="n">item</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
         <span class="k">return</span> <span class="n">item</span></div>
 
-<div class="viewcode-block" id="Container.writeToStream"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Container.writeToStream">[docs]</a>    <span class="k">def</span> <span class="nf">writeToStream</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">stream</span><span class="p">,</span> <span class="n">indent</span><span class="p">,</span> <span class="n">container</span><span class="p">):</span>
+<div class="viewcode-block" id="Container.writeToStream"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Container.writeToStream">[docs]</a>    <span class="k">def</span> <span class="nf">writeToStream</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">stream</span><span class="p">,</span> <span class="n">indent</span><span class="p">,</span> <span class="n">container</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Write this instance to a stream at the specified indentation level.</span>
 
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">raise</span> <span class="ne">NotImplementedError</span></div>
 
-<div class="viewcode-block" id="Container.writeValue"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Container.writeValue">[docs]</a>    <span class="k">def</span> <span class="nf">writeValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">stream</span><span class="p">,</span> <span class="n">indent</span><span class="p">):</span>
+<div class="viewcode-block" id="Container.writeValue"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Container.writeValue">[docs]</a>    <span class="k">def</span> <span class="nf">writeValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">stream</span><span class="p">,</span> <span class="n">indent</span><span class="p">):</span>
         <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Mapping</span><span class="p">):</span>
             <span class="n">indstr</span> <span class="o">=</span> <span class="s1">&#39; &#39;</span>
         <span class="k">else</span><span class="p">:</span>
                 <span class="n">value</span> <span class="o">=</span> <span class="nb">repr</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
             <span class="n">stream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;</span><span class="si">%s%s%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">indstr</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">NEWLINE</span><span class="p">))</span></div></div>
 
-<div class="viewcode-block" id="Mapping"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Mapping">[docs]</a><span class="k">class</span> <span class="nc">Mapping</span><span class="p">(</span><span class="n">Container</span><span class="p">):</span>
+<div class="viewcode-block" id="Mapping"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Mapping">[docs]</a><span class="k">class</span> <span class="nc">Mapping</span><span class="p">(</span><span class="n">Container</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    This internal class implements key-value mappings in configurations.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="fm">__getattr__</span> <span class="o">=</span> <span class="fm">__getitem__</span>
     
-    <span class="sd">&#39;&#39;&#39;</span>
+    <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    def __getattribute__(self, name):</span>
 <span class="sd">        if name == &quot;__dict__&quot;:</span>
 <span class="sd">            return {}</span>
 <span class="sd">            if rv is None:</span>
 <span class="sd">                raise AttributeError(name)</span>
 <span class="sd">        return rv</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    &quot;&quot;&quot;</span>
 
-<div class="viewcode-block" id="Mapping.iteritems"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Mapping.iteritems">[docs]</a>    <span class="k">def</span> <span class="nf">iteritems</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Mapping.iteritems"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Mapping.iteritems">[docs]</a>    <span class="k">def</span> <span class="nf">iteritems</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
             <span class="k">yield</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="bp">self</span><span class="p">[</span><span class="n">key</span><span class="p">])</span>
         <span class="k">raise</span> <span class="ne">StopIteration</span></div>
         <span class="n">order</span> <span class="o">=</span> <span class="nb">object</span><span class="o">.</span><span class="fm">__getattribute__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">&#39;order&#39;</span><span class="p">)</span>
         <span class="k">return</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">order</span>
 
-<div class="viewcode-block" id="Mapping.addMapping"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Mapping.addMapping">[docs]</a>    <span class="k">def</span> <span class="nf">addMapping</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">comment</span><span class="p">,</span> <span class="n">setting</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+<div class="viewcode-block" id="Mapping.addMapping"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Mapping.addMapping">[docs]</a>    <span class="k">def</span> <span class="nf">addMapping</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">comment</span><span class="p">,</span> <span class="n">setting</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Add a key-value mapping with a comment.</span>
 
 
     <span class="fm">__setitem__</span> <span class="o">=</span> <span class="fm">__setattr__</span>
 
-<div class="viewcode-block" id="Mapping.keys"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Mapping.keys">[docs]</a>    <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Mapping.keys"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Mapping.keys">[docs]</a>    <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Return the keys in a similar way to a dictionary.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">return</span> <span class="nb">object</span><span class="o">.</span><span class="fm">__getattribute__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">&#39;order&#39;</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Mapping.get"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Mapping.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="Mapping.get"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Mapping.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Allows a dictionary-style get operation.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
     <span class="k">def</span> <span class="nf">__iter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">iterkeys</span><span class="p">()</span>
 
-<div class="viewcode-block" id="Mapping.iterkeys"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Mapping.iterkeys">[docs]</a>    <span class="k">def</span> <span class="nf">iterkeys</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Mapping.iterkeys"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Mapping.iterkeys">[docs]</a>    <span class="k">def</span> <span class="nf">iterkeys</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="n">order</span> <span class="o">=</span> <span class="nb">object</span><span class="o">.</span><span class="fm">__getattribute__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">&#39;order&#39;</span><span class="p">)</span>
         <span class="k">return</span> <span class="n">order</span><span class="o">.</span><span class="fm">__iter__</span><span class="p">()</span></div>
 
-<div class="viewcode-block" id="Mapping.writeToStream"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Mapping.writeToStream">[docs]</a>    <span class="k">def</span> <span class="nf">writeToStream</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">stream</span><span class="p">,</span> <span class="n">indent</span><span class="p">,</span> <span class="n">container</span><span class="p">):</span>
+<div class="viewcode-block" id="Mapping.writeToStream"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Mapping.writeToStream">[docs]</a>    <span class="k">def</span> <span class="nf">writeToStream</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">stream</span><span class="p">,</span> <span class="n">indent</span><span class="p">,</span> <span class="n">container</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Write this instance to a stream at the specified indentation level.</span>
 
             <span class="k">else</span><span class="p">:</span>
                 <span class="bp">self</span><span class="o">.</span><span class="n">writeValue</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">stream</span><span class="p">,</span> <span class="n">indent</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Config"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Config">[docs]</a><span class="k">class</span> <span class="nc">Config</span><span class="p">(</span><span class="n">Mapping</span><span class="p">):</span>
+<div class="viewcode-block" id="Config"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Config">[docs]</a><span class="k">class</span> <span class="nc">Config</span><span class="p">(</span><span class="n">Mapping</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    This class represents a configuration, and is the only one which clients</span>
 <span class="sd">    need to interface to, under normal circumstances.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
-<div class="viewcode-block" id="Config.Namespace"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Config.Namespace">[docs]</a>    <span class="k">class</span> <span class="nc">Namespace</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="Config.Namespace"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Config.Namespace">[docs]</a>    <span class="k">class</span> <span class="nc">Namespace</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        This internal class is used for implementing default namespaces.</span>
 
                 <span class="k">else</span><span class="p">:</span>
                     <span class="bp">self</span><span class="p">[</span><span class="n">key</span><span class="p">]</span><span class="o">.</span><span class="n">PWD</span> <span class="o">=</span> <span class="n">pwd</span>
 
-<div class="viewcode-block" id="Config.load"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Config.load">[docs]</a>    <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">stream</span><span class="p">):</span>
+<div class="viewcode-block" id="Config.load"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Config.load">[docs]</a>    <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">stream</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Load the configuration from the specified stream. Multiple streams can</span>
 <span class="sd">        be used to populate the same instance, as long as there are no</span>
         <span class="n">reader</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">stream</span><span class="p">)</span>
         <span class="n">stream</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div>
 
-<div class="viewcode-block" id="Config.addNamespace"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Config.addNamespace">[docs]</a>    <span class="k">def</span> <span class="nf">addNamespace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ns</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="Config.addNamespace"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Config.addNamespace">[docs]</a>    <span class="k">def</span> <span class="nf">addNamespace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ns</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Add a namespace to this configuration which can be used to evaluate</span>
 <span class="sd">        (resolve) dotted-identifier expressions.</span>
         <span class="k">else</span><span class="p">:</span>
             <span class="nb">setattr</span><span class="p">(</span><span class="n">namespaces</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">name</span><span class="p">,</span> <span class="n">ns</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Config.removeNamespace"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Config.removeNamespace">[docs]</a>    <span class="k">def</span> <span class="nf">removeNamespace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ns</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="Config.removeNamespace"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Config.removeNamespace">[docs]</a>    <span class="k">def</span> <span class="nf">removeNamespace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ns</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Remove a namespace added with L{addNamespace}.</span>
 <span class="sd">        @param ns: The namespace to be removed.</span>
         <span class="k">if</span> <span class="n">indent</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">no_close</span><span class="p">:</span>
             <span class="n">stream</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
 
-<div class="viewcode-block" id="Config.getByPath"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Config.getByPath">[docs]</a>    <span class="k">def</span> <span class="nf">getByPath</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
+<div class="viewcode-block" id="Config.getByPath"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Config.getByPath">[docs]</a>    <span class="k">def</span> <span class="nf">getByPath</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Obtain a value in the configuration via its path.</span>
 <span class="sd">        @param path: The path of the required value</span>
         <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
             <span class="k">raise</span> <span class="n">ConfigError</span><span class="p">(</span><span class="s2">&quot;Config path not found: &#39;</span><span class="si">%s</span><span class="s2">&#39;&quot;</span> <span class="o">%</span> <span class="n">path</span><span class="p">)</span></div></div>
 
-<div class="viewcode-block" id="Sequence"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Sequence">[docs]</a><span class="k">class</span> <span class="nc">Sequence</span><span class="p">(</span><span class="n">Container</span><span class="p">):</span>
+<div class="viewcode-block" id="Sequence"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Sequence">[docs]</a><span class="k">class</span> <span class="nc">Sequence</span><span class="p">(</span><span class="n">Container</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    This internal class implements a value which is a sequence of other values.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
-<div class="viewcode-block" id="Sequence.SeqIter"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Sequence.SeqIter">[docs]</a>    <span class="k">class</span> <span class="nc">SeqIter</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="Sequence.SeqIter"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Sequence.SeqIter">[docs]</a>    <span class="k">class</span> <span class="nc">SeqIter</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        This internal class implements an iterator for a L{Sequence} instance.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">def</span> <span class="nf">__iter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
             <span class="k">return</span> <span class="bp">self</span>
 
-<div class="viewcode-block" id="Sequence.SeqIter.next"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Sequence.SeqIter.next">[docs]</a>        <span class="k">def</span> <span class="nf">next</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Sequence.SeqIter.next"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Sequence.SeqIter.next">[docs]</a>        <span class="k">def</span> <span class="nf">next</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
             <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">index</span> <span class="o">&gt;=</span> <span class="bp">self</span><span class="o">.</span><span class="n">limit</span><span class="p">:</span>
                 <span class="k">raise</span> <span class="ne">StopIteration</span>
             <span class="n">rv</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seq</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">index</span><span class="p">]</span>
         <span class="nb">object</span><span class="o">.</span><span class="fm">__setattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">&#39;data&#39;</span><span class="p">,</span> <span class="p">[])</span>
         <span class="nb">object</span><span class="o">.</span><span class="fm">__setattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">&#39;comments&#39;</span><span class="p">,</span> <span class="p">[])</span>
 
-<div class="viewcode-block" id="Sequence.append"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Sequence.append">[docs]</a>    <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
+<div class="viewcode-block" id="Sequence.append"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Sequence.append">[docs]</a>    <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Add an item to the sequence.</span>
 
     <span class="k">def</span> <span class="nf">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="nb">object</span><span class="o">.</span><span class="fm">__getattribute__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">&#39;data&#39;</span><span class="p">))</span>
 
-<div class="viewcode-block" id="Sequence.writeToStream"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Sequence.writeToStream">[docs]</a>    <span class="k">def</span> <span class="nf">writeToStream</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">stream</span><span class="p">,</span> <span class="n">indent</span><span class="p">,</span> <span class="n">container</span><span class="p">):</span>
+<div class="viewcode-block" id="Sequence.writeToStream"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Sequence.writeToStream">[docs]</a>    <span class="k">def</span> <span class="nf">writeToStream</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">stream</span><span class="p">,</span> <span class="n">indent</span><span class="p">,</span> <span class="n">container</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Write this instance to a stream at the specified indentation level.</span>
 
             <span class="k">else</span><span class="p">:</span>
                 <span class="bp">self</span><span class="o">.</span><span class="n">writeValue</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">stream</span><span class="p">,</span> <span class="n">indent</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Reference"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Reference">[docs]</a><span class="k">class</span> <span class="nc">Reference</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="Reference"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Reference">[docs]</a><span class="k">class</span> <span class="nc">Reference</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    This internal class implements a value which is a reference to another value.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">type</span> <span class="o">=</span> <span class="nb">type</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">elements</span> <span class="o">=</span> <span class="p">[</span><span class="n">ident</span><span class="p">]</span>
 
-<div class="viewcode-block" id="Reference.addElement"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Reference.addElement">[docs]</a>    <span class="k">def</span> <span class="nf">addElement</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">,</span> <span class="n">ident</span><span class="p">):</span>
+<div class="viewcode-block" id="Reference.addElement"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Reference.addElement">[docs]</a>    <span class="k">def</span> <span class="nf">addElement</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">,</span> <span class="n">ident</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Add an element to the reference.</span>
 
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">elements</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="nb">type</span><span class="p">,</span> <span class="n">ident</span><span class="p">))</span></div>
 
-<div class="viewcode-block" id="Reference.findConfig"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Reference.findConfig">[docs]</a>    <span class="k">def</span> <span class="nf">findConfig</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">):</span>
+<div class="viewcode-block" id="Reference.findConfig"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Reference.findConfig">[docs]</a>    <span class="k">def</span> <span class="nf">findConfig</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Find the closest enclosing configuration to the specified container.</span>
 
             <span class="n">container</span> <span class="o">=</span> <span class="nb">object</span><span class="o">.</span><span class="fm">__getattribute__</span><span class="p">(</span><span class="n">container</span><span class="p">,</span> <span class="s1">&#39;parent&#39;</span><span class="p">)</span>
         <span class="k">return</span> <span class="n">container</span></div>
 
-<div class="viewcode-block" id="Reference.resolve"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Reference.resolve">[docs]</a>    <span class="k">def</span> <span class="nf">resolve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">):</span>
+<div class="viewcode-block" id="Reference.resolve"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Reference.resolve">[docs]</a>    <span class="k">def</span> <span class="nf">resolve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Resolve this instance in the context of a container.</span>
 
     <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="fm">__str__</span><span class="p">()</span></div>
 
-<div class="viewcode-block" id="Expression"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Expression">[docs]</a><span class="k">class</span> <span class="nc">Expression</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="Expression"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Expression">[docs]</a><span class="k">class</span> <span class="nc">Expression</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    This internal class implements a value which is obtained by evaluating an expression.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="fm">__str__</span><span class="p">()</span>
 
-<div class="viewcode-block" id="Expression.evaluate"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.Expression.evaluate">[docs]</a>    <span class="k">def</span> <span class="nf">evaluate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">):</span>
+<div class="viewcode-block" id="Expression.evaluate"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.Expression.evaluate">[docs]</a>    <span class="k">def</span> <span class="nf">evaluate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Evaluate this instance in the context of a container.</span>
 
             <span class="n">rv</span> <span class="o">=</span> <span class="n">lhs</span> <span class="o">%</span> <span class="n">rhs</span>
         <span class="k">return</span> <span class="n">rv</span></div></div>
 
-<div class="viewcode-block" id="ConfigReader"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigReader">[docs]</a><span class="k">class</span> <span class="nc">ConfigReader</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigReader"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigReader">[docs]</a><span class="k">class</span> <span class="nc">ConfigReader</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    This internal class implements a parser for configurations.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">pbtokens</span> <span class="o">=</span> <span class="p">[]</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">comment</span> <span class="o">=</span> <span class="kc">None</span>
 
-<div class="viewcode-block" id="ConfigReader.location"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigReader.location">[docs]</a>    <span class="k">def</span> <span class="nf">location</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigReader.location"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigReader.location">[docs]</a>    <span class="k">def</span> <span class="nf">location</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Return the current location (filename, line, column) in the stream</span>
 <span class="sd">        as a string.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">return</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">(</span><span class="si">%d</span><span class="s2">,</span><span class="si">%d</span><span class="s2">)&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filename</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">lineno</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">colno</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="ConfigReader.getChar"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigReader.getChar">[docs]</a>    <span class="k">def</span> <span class="nf">getChar</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigReader.getChar"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigReader.getChar">[docs]</a>    <span class="k">def</span> <span class="nf">getChar</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Get the next char from the stream. Update line and column numbers</span>
 <span class="sd">        appropriately.</span>
 
     <span class="fm">__str__</span> <span class="o">=</span> <span class="fm">__repr__</span>
 
-<div class="viewcode-block" id="ConfigReader.getToken"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigReader.getToken">[docs]</a>    <span class="k">def</span> <span class="nf">getToken</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigReader.getToken"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigReader.getToken">[docs]</a>    <span class="k">def</span> <span class="nf">getToken</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Get a token from the stream. String values are returned in a form</span>
 <span class="sd">        where you need to eval() the returned value to get the actual</span>
             <span class="n">token</span> <span class="o">=</span> <span class="n">token</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s1">&#39;ascii&#39;</span><span class="p">)</span>
         <span class="k">return</span> <span class="p">(</span><span class="n">tt</span><span class="p">,</span> <span class="n">token</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="ConfigReader.load"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigReader.load">[docs]</a>    <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">stream</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">suffix</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigReader.load"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigReader.load">[docs]</a>    <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">stream</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">suffix</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Load the configuration from the specified stream.</span>
 
         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">token</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="n">EOF</span><span class="p">:</span>
             <span class="k">raise</span> <span class="n">ConfigFormatError</span><span class="p">(</span><span class="s1">&#39;</span><span class="si">%s</span><span class="s1">: expecting EOF, found </span><span class="si">%r</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">location</span><span class="p">(),</span> <span class="bp">self</span><span class="o">.</span><span class="n">token</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span></div>
 
-<div class="viewcode-block" id="ConfigReader.setStream"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigReader.setStream">[docs]</a>    <span class="k">def</span> <span class="nf">setStream</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">stream</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigReader.setStream"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigReader.setStream">[docs]</a>    <span class="k">def</span> <span class="nf">setStream</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">stream</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Set the stream to the specified value, and prepare to read from it.</span>
 
         <span class="bp">self</span><span class="o">.</span><span class="n">lineno</span> <span class="o">=</span> <span class="mi">1</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">colno</span> <span class="o">=</span> <span class="mi">1</span></div>
 
-<div class="viewcode-block" id="ConfigReader.match"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigReader.match">[docs]</a>    <span class="k">def</span> <span class="nf">match</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">t</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigReader.match"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigReader.match">[docs]</a>    <span class="k">def</span> <span class="nf">match</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">t</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Ensure that the current token type matches the specified value, and</span>
 <span class="sd">        advance to the next token.</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">token</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getToken</span><span class="p">()</span>
         <span class="k">return</span> <span class="n">rv</span></div>
 
-<div class="viewcode-block" id="ConfigReader.parseMappingBody"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigReader.parseMappingBody">[docs]</a>    <span class="k">def</span> <span class="nf">parseMappingBody</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigReader.parseMappingBody"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigReader.parseMappingBody">[docs]</a>    <span class="k">def</span> <span class="nf">parseMappingBody</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Parse the internals of a mapping, and add entries to the provided</span>
 <span class="sd">        L{Mapping}.</span>
         <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">token</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="p">[</span><span class="n">WORD</span><span class="p">,</span> <span class="n">STRING</span><span class="p">]:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">parseKeyValuePair</span><span class="p">(</span><span class="n">parent</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="ConfigReader.parseKeyValuePair"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigReader.parseKeyValuePair">[docs]</a>    <span class="k">def</span> <span class="nf">parseKeyValuePair</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigReader.parseKeyValuePair"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigReader.parseKeyValuePair">[docs]</a>    <span class="k">def</span> <span class="nf">parseKeyValuePair</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Parse a key-value pair, and add it to the provided L{Mapping}.</span>
 
         <span class="k">if</span> <span class="n">tt</span> <span class="o">==</span> <span class="n">COMMA</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">token</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getToken</span><span class="p">()</span></div>
 
-<div class="viewcode-block" id="ConfigReader.parseValue"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigReader.parseValue">[docs]</a>    <span class="k">def</span> <span class="nf">parseValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">suffix</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigReader.parseValue"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigReader.parseValue">[docs]</a>    <span class="k">def</span> <span class="nf">parseValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">suffix</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Parse a value.</span>
 
                <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">location</span><span class="p">(),</span> <span class="bp">self</span><span class="o">.</span><span class="n">token</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span>
         <span class="k">return</span> <span class="n">rv</span></div>
 
-<div class="viewcode-block" id="ConfigReader.parseSequence"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigReader.parseSequence">[docs]</a>    <span class="k">def</span> <span class="nf">parseSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">suffix</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigReader.parseSequence"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigReader.parseSequence">[docs]</a>    <span class="k">def</span> <span class="nf">parseSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">suffix</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Parse a sequence.</span>
 
         <span class="bp">self</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">RBRACK</span><span class="p">)</span>
         <span class="k">return</span> <span class="n">rv</span></div>
 
-<div class="viewcode-block" id="ConfigReader.parseMapping"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigReader.parseMapping">[docs]</a>    <span class="k">def</span> <span class="nf">parseMapping</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">suffix</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigReader.parseMapping"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigReader.parseMapping">[docs]</a>    <span class="k">def</span> <span class="nf">parseMapping</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">suffix</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Parse a mapping.</span>
 
             <span class="n">rv</span> <span class="o">=</span> <span class="n">Config</span><span class="p">(</span><span class="nb">eval</span><span class="p">(</span><span class="n">fn</span><span class="p">),</span> <span class="n">parent</span><span class="p">)</span>
         <span class="k">return</span> <span class="n">rv</span></div>
 
-<div class="viewcode-block" id="ConfigReader.parseScalar"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigReader.parseScalar">[docs]</a>    <span class="k">def</span> <span class="nf">parseScalar</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigReader.parseScalar"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigReader.parseScalar">[docs]</a>    <span class="k">def</span> <span class="nf">parseScalar</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Parse a scalar - a terminal value such as a string or number, or</span>
 <span class="sd">        an L{Expression} or L{Reference}.</span>
             <span class="n">tt</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">token</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
         <span class="k">return</span> <span class="n">lhs</span></div>
 
-<div class="viewcode-block" id="ConfigReader.parseTerm"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigReader.parseTerm">[docs]</a>    <span class="k">def</span> <span class="nf">parseTerm</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigReader.parseTerm"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigReader.parseTerm">[docs]</a>    <span class="k">def</span> <span class="nf">parseTerm</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Parse a term in an additive expression (a + b, a - b)</span>
 
             <span class="n">tt</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">token</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
         <span class="k">return</span> <span class="n">lhs</span></div>
 
-<div class="viewcode-block" id="ConfigReader.parseFactor"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigReader.parseFactor">[docs]</a>    <span class="k">def</span> <span class="nf">parseFactor</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigReader.parseFactor"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigReader.parseFactor">[docs]</a>    <span class="k">def</span> <span class="nf">parseFactor</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Parse a factor in an multiplicative expression (a * b, a / b, a % b)</span>
 
                <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">location</span><span class="p">(),</span> <span class="bp">self</span><span class="o">.</span><span class="n">token</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span>
         <span class="k">return</span> <span class="n">rv</span></div>
 
-<div class="viewcode-block" id="ConfigReader.parseReference"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigReader.parseReference">[docs]</a>    <span class="k">def</span> <span class="nf">parseReference</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigReader.parseReference"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigReader.parseReference">[docs]</a>    <span class="k">def</span> <span class="nf">parseReference</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Parse a reference.</span>
 
             <span class="bp">self</span><span class="o">.</span><span class="n">parseSuffix</span><span class="p">(</span><span class="n">rv</span><span class="p">)</span>
         <span class="k">return</span> <span class="n">rv</span></div>
 
-<div class="viewcode-block" id="ConfigReader.parseSuffix"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigReader.parseSuffix">[docs]</a>    <span class="k">def</span> <span class="nf">parseSuffix</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ref</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigReader.parseSuffix"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigReader.parseSuffix">[docs]</a>    <span class="k">def</span> <span class="nf">parseSuffix</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ref</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Parse a reference suffix.</span>
 
             <span class="bp">self</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">RBRACK</span><span class="p">)</span>
             <span class="n">ref</span><span class="o">.</span><span class="n">addElement</span><span class="p">(</span><span class="n">LBRACK</span><span class="p">,</span> <span class="n">tv</span><span class="p">)</span></div></div>
 
-<div class="viewcode-block" id="defaultMergeResolve"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.defaultMergeResolve">[docs]</a><span class="k">def</span> <span class="nf">defaultMergeResolve</span><span class="p">(</span><span class="n">map1</span><span class="p">,</span> <span class="n">map2</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+<div class="viewcode-block" id="defaultMergeResolve"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.defaultMergeResolve">[docs]</a><span class="k">def</span> <span class="nf">defaultMergeResolve</span><span class="p">(</span><span class="n">map1</span><span class="p">,</span> <span class="n">map2</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    A default resolver for merge conflicts. </span>
 <span class="sd">    Returns a string indicating what action to take to resolve the conflict.</span>
         <span class="n">rv</span> <span class="o">=</span> <span class="s2">&quot;mismatch&quot;</span>
     <span class="k">return</span> <span class="n">rv</span></div>
 
-<div class="viewcode-block" id="overwriteMergeResolve"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.overwriteMergeResolve">[docs]</a><span class="k">def</span> <span class="nf">overwriteMergeResolve</span><span class="p">(</span><span class="n">map1</span><span class="p">,</span> <span class="n">map2</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+<div class="viewcode-block" id="overwriteMergeResolve"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.overwriteMergeResolve">[docs]</a><span class="k">def</span> <span class="nf">overwriteMergeResolve</span><span class="p">(</span><span class="n">map1</span><span class="p">,</span> <span class="n">map2</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    An overwriting resolver for merge conflicts. Calls L{defaultMergeResolve},</span>
 <span class="sd">    but where a &quot;mismatch&quot; is detected, returns &quot;overwrite&quot; instead.</span>
         <span class="n">rv</span> <span class="o">=</span> <span class="s2">&quot;overwrite&quot;</span>
     <span class="k">return</span> <span class="n">rv</span></div>
 
-<div class="viewcode-block" id="deepCopyMapping"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.deepCopyMapping">[docs]</a><span class="k">def</span> <span class="nf">deepCopyMapping</span><span class="p">(</span><span class="n">inMapping</span><span class="p">):</span>
+<div class="viewcode-block" id="deepCopyMapping"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.deepCopyMapping">[docs]</a><span class="k">def</span> <span class="nf">deepCopyMapping</span><span class="p">(</span><span class="n">inMapping</span><span class="p">):</span>
     <span class="n">res</span> <span class="o">=</span> <span class="n">Mapping</span><span class="p">()</span>
     <span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">inMapping</span><span class="p">:</span>
         <span class="n">res</span><span class="p">[</span><span class="n">element</span><span class="p">]</span> <span class="o">=</span> <span class="n">inMapping</span><span class="p">[</span><span class="n">element</span><span class="p">]</span>
     <span class="k">return</span> <span class="n">res</span></div>
 
-<div class="viewcode-block" id="ConfigMerger"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigMerger">[docs]</a><span class="k">class</span> <span class="nc">ConfigMerger</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigMerger"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigMerger">[docs]</a><span class="k">class</span> <span class="nc">ConfigMerger</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    This class is used for merging two configurations. If a key exists in the</span>
 <span class="sd">    merge operand but not the merge target, then the entry is copied from the</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">resolver</span> <span class="o">=</span> <span class="n">resolver</span>
 
-<div class="viewcode-block" id="ConfigMerger.merge"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigMerger.merge">[docs]</a>    <span class="k">def</span> <span class="nf">merge</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">merged</span><span class="p">,</span> <span class="n">mergee</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigMerger.merge"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigMerger.merge">[docs]</a>    <span class="k">def</span> <span class="nf">merge</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">merged</span><span class="p">,</span> <span class="n">mergee</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Merge two configurations. The second configuration is unchanged,</span>
 <span class="sd">        and the first is changed to reflect the results of the merge.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">mergeMapping</span><span class="p">(</span><span class="n">merged</span><span class="p">,</span> <span class="n">mergee</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="ConfigMerger.overwriteKeys"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigMerger.overwriteKeys">[docs]</a>    <span class="k">def</span> <span class="nf">overwriteKeys</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">map1</span><span class="p">,</span> <span class="n">seq2</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigMerger.overwriteKeys"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigMerger.overwriteKeys">[docs]</a>    <span class="k">def</span> <span class="nf">overwriteKeys</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">map1</span><span class="p">,</span> <span class="n">seq2</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Renint variables. The second mapping is unchanged,</span>
 <span class="sd">        and the first is changed depending the keys of the second mapping.</span>
                     <span class="k">except</span><span class="p">:</span>
                         <span class="n">exec</span><span class="p">(</span><span class="s1">&#39;map1.&#39;</span> <span class="o">+</span> <span class="n">key</span> <span class="o">+</span> <span class="s2">&quot; = &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">overwrite_instruction</span><span class="p">[</span><span class="n">key</span><span class="p">]))</span></div>
 
-<div class="viewcode-block" id="ConfigMerger.mergeMapping"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigMerger.mergeMapping">[docs]</a>    <span class="k">def</span> <span class="nf">mergeMapping</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">map1</span><span class="p">,</span> <span class="n">map2</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigMerger.mergeMapping"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigMerger.mergeMapping">[docs]</a>    <span class="k">def</span> <span class="nf">mergeMapping</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">map1</span><span class="p">,</span> <span class="n">map2</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Merge two mappings recursively. The second mapping is unchanged,</span>
 <span class="sd">        and the first is changed to reflect the results of the merge.</span>
                     <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;unable to merge: don&#39;t know how to implement </span><span class="si">%r</span><span class="s2">&quot;</span>
                     <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">msg</span> <span class="o">%</span> <span class="n">decision</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="ConfigMerger.mergeSequence"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigMerger.mergeSequence">[docs]</a>    <span class="k">def</span> <span class="nf">mergeSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">seq1</span><span class="p">,</span> <span class="n">seq2</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigMerger.mergeSequence"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigMerger.mergeSequence">[docs]</a>    <span class="k">def</span> <span class="nf">mergeSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">seq1</span><span class="p">,</span> <span class="n">seq2</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Merge two sequences. The second sequence is unchanged,</span>
 <span class="sd">        and the first is changed to have the elements of the second</span>
         <span class="k">for</span> <span class="n">obj</span> <span class="ow">in</span> <span class="n">comment2</span><span class="p">:</span>
             <span class="n">comment1</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="ConfigMerger.handleMismatch"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigMerger.handleMismatch">[docs]</a>    <span class="k">def</span> <span class="nf">handleMismatch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj1</span><span class="p">,</span> <span class="n">obj2</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigMerger.handleMismatch"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigMerger.handleMismatch">[docs]</a>    <span class="k">def</span> <span class="nf">handleMismatch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj1</span><span class="p">,</span> <span class="n">obj2</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Handle a mismatch between two objects.</span>
 
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">raise</span> <span class="n">ConfigError</span><span class="p">(</span><span class="s2">&quot;unable to merge </span><span class="si">%r</span><span class="s2"> with </span><span class="si">%r</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">obj1</span><span class="p">,</span> <span class="n">obj2</span><span class="p">))</span></div></div>
 
-<div class="viewcode-block" id="ConfigList"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigList">[docs]</a><span class="k">class</span> <span class="nc">ConfigList</span><span class="p">(</span><span class="nb">list</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigList"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigList">[docs]</a><span class="k">class</span> <span class="nc">ConfigList</span><span class="p">(</span><span class="nb">list</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    This class implements an ordered list of configurations and allows you</span>
 <span class="sd">    to try getting the configuration from each entry in turn, returning</span>
 <span class="sd">    the first successfully obtained value.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
-<div class="viewcode-block" id="ConfigList.getByPath"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.pyconf.ConfigList.getByPath">[docs]</a>    <span class="k">def</span> <span class="nf">getByPath</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
+<div class="viewcode-block" id="ConfigList.getByPath"><a class="viewcode-back" href="../../apidoc_src/src.html#src.pyconf.ConfigList.getByPath">[docs]</a>    <span class="k">def</span> <span class="nf">getByPath</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Obtain a value from the first configuration in the list which defines</span>
 <span class="sd">        it.</span>
index c2c40be48af01ff98fa4aaf21680feafcb74bcbf..356653b6aa8ef4e52588b08a1b90eeec3398a5b6 100644 (file)
@@ -72,7 +72,7 @@
 <span class="kn">import</span> <span class="nn">pprint</span> <span class="k">as</span> <span class="nn">PP</span>
 
 <span class="c1">#####################################################</span>
-<div class="viewcode-block" id="ReturnCode"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.returnCode.ReturnCode">[docs]</a><span class="k">class</span> <span class="nc">ReturnCode</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="ReturnCode"><a class="viewcode-back" href="../../apidoc_src/src.html#src.returnCode.ReturnCode">[docs]</a><span class="k">class</span> <span class="nc">ReturnCode</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
 
   <span class="sd">&quot;&quot;&quot;\</span>
 <span class="sd">  assume simple return code for methods, with explanation as &#39;why&#39;</span>
     <span class="n">res</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%s</span><span class="s1">: &quot;</span><span class="si">%s</span><span class="s1">&quot;&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_status</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_why</span><span class="p">)</span>
     <span class="k">return</span> <span class="n">res</span>
 
-<div class="viewcode-block" id="ReturnCode.indent"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.returnCode.ReturnCode.indent">[docs]</a>  <span class="k">def</span> <span class="nf">indent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">amount</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">ch</span><span class="o">=</span><span class="s1">&#39; &#39;</span><span class="p">):</span>
+<div class="viewcode-block" id="ReturnCode.indent"><a class="viewcode-back" href="../../apidoc_src/src.html#src.returnCode.ReturnCode.indent">[docs]</a>  <span class="k">def</span> <span class="nf">indent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">amount</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">ch</span><span class="o">=</span><span class="s1">&#39; &#39;</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;indent multi lines message&quot;&quot;&quot;</span>
     <span class="n">padding</span> <span class="o">=</span> <span class="n">amount</span> <span class="o">*</span> <span class="n">ch</span>
     <span class="n">res</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">padding</span> <span class="o">+</span> <span class="n">line</span> <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">text</span><span class="o">.</span><span class="n">splitlines</span><span class="p">(</span><span class="kc">True</span><span class="p">))</span>
     <span class="k">else</span><span class="p">:</span>
       <span class="k">return</span> <span class="n">strOrList</span>
 
-<div class="viewcode-block" id="ReturnCode.toSys"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.returnCode.ReturnCode.toSys">[docs]</a>  <span class="k">def</span> <span class="nf">toSys</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="ReturnCode.toSys"><a class="viewcode-back" href="../../apidoc_src/src.html#src.returnCode.ReturnCode.toSys">[docs]</a>  <span class="k">def</span> <span class="nf">toSys</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
     <span class="k">try</span><span class="p">:</span>
       <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_TOSYS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_status</span><span class="p">]</span>
     <span class="k">except</span><span class="p">:</span>
       <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_TOSYS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">NA_STATUS</span><span class="p">]</span></div>
     
-<div class="viewcode-block" id="ReturnCode.getWhy"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.returnCode.ReturnCode.getWhy">[docs]</a>  <span class="k">def</span> <span class="nf">getWhy</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="ReturnCode.getWhy"><a class="viewcode-back" href="../../apidoc_src/src.html#src.returnCode.ReturnCode.getWhy">[docs]</a>  <span class="k">def</span> <span class="nf">getWhy</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
     <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_why</span></div>
     
-<div class="viewcode-block" id="ReturnCode.setWhy"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.returnCode.ReturnCode.setWhy">[docs]</a>  <span class="k">def</span> <span class="nf">setWhy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">why</span><span class="p">):</span>
+<div class="viewcode-block" id="ReturnCode.setWhy"><a class="viewcode-back" href="../../apidoc_src/src.html#src.returnCode.ReturnCode.setWhy">[docs]</a>  <span class="k">def</span> <span class="nf">setWhy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">why</span><span class="p">):</span>
     <span class="bp">self</span><span class="o">.</span><span class="n">_why</span> <span class="o">=</span> <span class="n">why</span></div>
     
-<div class="viewcode-block" id="ReturnCode.getValue"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.returnCode.ReturnCode.getValue">[docs]</a>  <span class="k">def</span> <span class="nf">getValue</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="ReturnCode.getValue"><a class="viewcode-back" href="../../apidoc_src/src.html#src.returnCode.ReturnCode.getValue">[docs]</a>  <span class="k">def</span> <span class="nf">getValue</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
     <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_value</span></div>
     
-<div class="viewcode-block" id="ReturnCode.setValue"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.returnCode.ReturnCode.setValue">[docs]</a>  <span class="k">def</span> <span class="nf">setValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
+<div class="viewcode-block" id="ReturnCode.setValue"><a class="viewcode-back" href="../../apidoc_src/src.html#src.returnCode.ReturnCode.setValue">[docs]</a>  <span class="k">def</span> <span class="nf">setValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
     <span class="bp">self</span><span class="o">.</span><span class="n">_value</span> <span class="o">=</span> <span class="n">value</span></div>
     
-<div class="viewcode-block" id="ReturnCode.setStatus"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.returnCode.ReturnCode.setStatus">[docs]</a>  <span class="k">def</span> <span class="nf">setStatus</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">status</span><span class="p">,</span> <span class="n">why</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="ReturnCode.setStatus"><a class="viewcode-back" href="../../apidoc_src/src.html#src.returnCode.ReturnCode.setStatus">[docs]</a>  <span class="k">def</span> <span class="nf">setStatus</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">status</span><span class="p">,</span> <span class="n">why</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
     <span class="k">if</span> <span class="n">why</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> 
       <span class="n">aWhy</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_DEFAULT_WHY</span>
     <span class="k">else</span><span class="p">:</span>
     <span class="k">else</span><span class="p">:</span>
       <span class="bp">self</span><span class="o">.</span><span class="n">_value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_DEFAULT_VALUE</span></div>
 
-<div class="viewcode-block" id="ReturnCode.isOk"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.returnCode.ReturnCode.isOk">[docs]</a>  <span class="k">def</span> <span class="nf">isOk</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="ReturnCode.isOk"><a class="viewcode-back" href="../../apidoc_src/src.html#src.returnCode.ReturnCode.isOk">[docs]</a>  <span class="k">def</span> <span class="nf">isOk</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
     <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_status</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">OK_STATUS</span><span class="p">)</span></div></div>
 </pre></div>
 
index 6ef76da5a9273eb085702a526cf4d1ac3e16df6a..4ea1fb5323783a03d6de220d4d85e8c6fd2dfede 100644 (file)
 <span class="c1">########################################################################</span>
 <span class="c1"># utility methods</span>
 <span class="c1">########################################################################</span>
-<div class="viewcode-block" id="find_command_list"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.salomeTools.find_command_list">[docs]</a><span class="k">def</span> <span class="nf">find_command_list</span><span class="p">(</span><span class="n">dirPath</span><span class="p">):</span>
+<div class="viewcode-block" id="find_command_list"><a class="viewcode-back" href="../../apidoc_src/src.html#src.salomeTools.find_command_list">[docs]</a><span class="k">def</span> <span class="nf">find_command_list</span><span class="p">(</span><span class="n">dirPath</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Parse files in dirPath that end with &#39;.py&#39; : it gives commands list</span>
 <span class="sd">    </span>
 <span class="c1"># [&#39;config&#39;, &#39;compile&#39;, &#39;prepare&#39;, ...]</span>
 <span class="n">_COMMANDS_NAMES</span> <span class="o">=</span> <span class="n">find_command_list</span><span class="p">(</span><span class="n">cmdsdir</span><span class="p">)</span>
 
-<div class="viewcode-block" id="getCommandsList"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.salomeTools.getCommandsList">[docs]</a><span class="k">def</span> <span class="nf">getCommandsList</span><span class="p">():</span>
+<div class="viewcode-block" id="getCommandsList"><a class="viewcode-back" href="../../apidoc_src/src.html#src.salomeTools.getCommandsList">[docs]</a><span class="k">def</span> <span class="nf">getCommandsList</span><span class="p">():</span>
     <span class="sd">&quot;&quot;&quot;Gives commands list (as basename of files .py in directory commands&quot;&quot;&quot;</span> 
     <span class="k">return</span> <span class="n">_COMMANDS_NAMES</span></div>
 
-<div class="viewcode-block" id="launchSat"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.salomeTools.launchSat">[docs]</a><span class="k">def</span> <span class="nf">launchSat</span><span class="p">(</span><span class="n">command</span><span class="p">):</span>
+<div class="viewcode-block" id="launchSat"><a class="viewcode-back" href="../../apidoc_src/src.html#src.salomeTools.launchSat">[docs]</a><span class="k">def</span> <span class="nf">launchSat</span><span class="p">(</span><span class="n">command</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;\</span>
 <span class="sd">    launch sat as subprocess popen</span>
 <span class="sd">    command as string (&#39;sat --help&#39; for example)</span>
     <span class="n">res</span> <span class="o">=</span> <span class="n">SP</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">command</span><span class="p">,</span> <span class="n">shell</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">env</span><span class="o">=</span><span class="n">env</span><span class="p">,</span> <span class="n">stdout</span><span class="o">=</span><span class="n">SP</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span> <span class="n">stderr</span><span class="o">=</span><span class="n">SP</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span><span class="o">.</span><span class="n">communicate</span><span class="p">()</span>
     <span class="k">return</span> <span class="n">res</span></div>
 
-<div class="viewcode-block" id="setNotLocale"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.salomeTools.setNotLocale">[docs]</a><span class="k">def</span> <span class="nf">setNotLocale</span><span class="p">():</span>
+<div class="viewcode-block" id="setNotLocale"><a class="viewcode-back" href="../../apidoc_src/src.html#src.salomeTools.setNotLocale">[docs]</a><span class="k">def</span> <span class="nf">setNotLocale</span><span class="p">():</span>
     <span class="sd">&quot;&quot;&quot;force english at any moment&quot;&quot;&quot;</span>
     <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">&quot;LANG&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
     <span class="n">gettext</span><span class="o">.</span><span class="n">install</span><span class="p">(</span><span class="s2">&quot;salomeTools&quot;</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">srcdir</span><span class="p">,</span> <span class="s2">&quot;i18n&quot;</span><span class="p">))</span>
     <span class="n">DBG</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;setNotLocale&quot;</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">&quot;LANG&quot;</span><span class="p">])</span></div>
     
-<div class="viewcode-block" id="setLocale"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.salomeTools.setLocale">[docs]</a><span class="k">def</span> <span class="nf">setLocale</span><span class="p">():</span>
+<div class="viewcode-block" id="setLocale"><a class="viewcode-back" href="../../apidoc_src/src.html#src.salomeTools.setLocale">[docs]</a><span class="k">def</span> <span class="nf">setLocale</span><span class="p">():</span>
     <span class="sd">&quot;&quot;&quot;\</span>
 <span class="sd">    reset initial locale at any moment </span>
 <span class="sd">    &#39;fr&#39; or else (TODO) from initial environment var &#39;$LANG&#39;</span>
     <span class="n">gettext</span><span class="o">.</span><span class="n">install</span><span class="p">(</span><span class="s2">&quot;salomeTools&quot;</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">srcdir</span><span class="p">,</span> <span class="s2">&quot;i18n&quot;</span><span class="p">))</span>
     <span class="n">DBG</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;setLocale&quot;</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">&quot;LANG&quot;</span><span class="p">])</span></div>
     
-<div class="viewcode-block" id="getVersion"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.salomeTools.getVersion">[docs]</a><span class="k">def</span> <span class="nf">getVersion</span><span class="p">():</span>
+<div class="viewcode-block" id="getVersion"><a class="viewcode-back" href="../../apidoc_src/src.html#src.salomeTools.getVersion">[docs]</a><span class="k">def</span> <span class="nf">getVersion</span><span class="p">():</span>
     <span class="sd">&quot;&quot;&quot;get version number as string&quot;&quot;&quot;</span>
     <span class="k">return</span> <span class="n">src</span><span class="o">.</span><span class="n">__version__</span></div>
  
-<div class="viewcode-block" id="assumeAsList"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.salomeTools.assumeAsList">[docs]</a><span class="k">def</span> <span class="nf">assumeAsList</span><span class="p">(</span><span class="n">strOrList</span><span class="p">):</span>
+<div class="viewcode-block" id="assumeAsList"><a class="viewcode-back" href="../../apidoc_src/src.html#src.salomeTools.assumeAsList">[docs]</a><span class="k">def</span> <span class="nf">assumeAsList</span><span class="p">(</span><span class="n">strOrList</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;return a list as sys.argv if string&quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">strOrList</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
       <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="n">strOrList</span><span class="p">)</span> <span class="c1"># copy</span>
 <span class="c1">########################################################################</span>
 <span class="c1"># Sat class</span>
 <span class="c1">########################################################################</span>
-<div class="viewcode-block" id="Sat"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.salomeTools.Sat">[docs]</a><span class="k">class</span> <span class="nc">Sat</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+<div class="viewcode-block" id="Sat"><a class="viewcode-back" href="../../apidoc_src/src.html#src.salomeTools.Sat">[docs]</a><span class="k">class</span> <span class="nc">Sat</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;The main class that stores all the commands of salomeTools</span>
 <span class="sd">    (usually known as &#39;runner&#39; argument in Command classes)</span>
 <span class="sd">    &quot;&quot;&quot;</span>
         <span class="n">res</span> <span class="o">=</span> <span class="s2">&quot;Sat(</span><span class="se">\n</span><span class="s2"> </span><span class="si">%s</span><span class="se">\n</span><span class="s2">)</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">tmp</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
         <span class="k">return</span> <span class="n">res</span>
     
-<div class="viewcode-block" id="Sat.getLogger"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.salomeTools.Sat.getLogger">[docs]</a>    <span class="k">def</span> <span class="nf">getLogger</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Sat.getLogger"><a class="viewcode-back" href="../../apidoc_src/src.html#src.salomeTools.Sat.getLogger">[docs]</a>    <span class="k">def</span> <span class="nf">getLogger</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">logger</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="c1"># could use owner Sat instance logger</span>
           <span class="kn">import</span> <span class="nn">src.loggingSat</span> <span class="k">as</span> <span class="nn">LOG</span>
           <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">=</span><span class="n">LOG</span><span class="o">.</span><span class="n">getDefaultLogger</span><span class="p">()</span>
         <span class="k">else</span><span class="p">:</span>                   <span class="c1"># could use local logger</span>
           <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">logger</span></div>
         
-<div class="viewcode-block" id="Sat.getConfig"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.salomeTools.Sat.getConfig">[docs]</a>    <span class="k">def</span> <span class="nf">getConfig</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Sat.getConfig"><a class="viewcode-back" href="../../apidoc_src/src.html#src.salomeTools.Sat.getConfig">[docs]</a>    <span class="k">def</span> <span class="nf">getConfig</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span></div>
         
-<div class="viewcode-block" id="Sat.assumeAsList"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.salomeTools.Sat.assumeAsList">[docs]</a>    <span class="k">def</span> <span class="nf">assumeAsList</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">strOrList</span><span class="p">):</span>
+<div class="viewcode-block" id="Sat.assumeAsList"><a class="viewcode-back" href="../../apidoc_src/src.html#src.salomeTools.Sat.assumeAsList">[docs]</a>    <span class="k">def</span> <span class="nf">assumeAsList</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">strOrList</span><span class="p">):</span>
         <span class="k">return</span> <span class="n">assumeAsList</span><span class="p">(</span><span class="n">strOrList</span><span class="p">)</span></div>
 
     <span class="k">def</span> <span class="nf">_getParser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">return</span> <span class="n">parser</span>
  
      
-<div class="viewcode-block" id="Sat.parseArguments"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.salomeTools.Sat.parseArguments">[docs]</a>    <span class="k">def</span> <span class="nf">parseArguments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arguments</span><span class="p">):</span>
+<div class="viewcode-block" id="Sat.parseArguments"><a class="viewcode-back" href="../../apidoc_src/src.html#src.salomeTools.Sat.parseArguments">[docs]</a>    <span class="k">def</span> <span class="nf">parseArguments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arguments</span><span class="p">):</span>
         <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">arguments</span><span class="p">)</span>
         <span class="n">genericOptions</span><span class="p">,</span> <span class="n">remaindersArgs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser</span><span class="o">.</span><span class="n">parse_args</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
         <span class="n">DBG</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;Sat generic options&quot;</span><span class="p">,</span> <span class="n">genericOptions</span><span class="p">)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;Sat load module command </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">name</span><span class="p">)</span>
         <span class="k">return</span> <span class="n">module</span>
       
-<div class="viewcode-block" id="Sat.getModule"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.salomeTools.Sat.getModule">[docs]</a>    <span class="k">def</span> <span class="nf">getModule</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
+<div class="viewcode-block" id="Sat.getModule"><a class="viewcode-back" href="../../apidoc_src/src.html#src.salomeTools.Sat.getModule">[docs]</a>    <span class="k">def</span> <span class="nf">getModule</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        returns only-one-time loaded module Command &#39;name&#39;</span>
 <span class="sd">        assume load if not done yet</span>
         <span class="k">else</span><span class="p">:</span>
           <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_getModule</span><span class="p">(</span><span class="n">name</span><span class="p">)</span></div>
         
-<div class="viewcode-block" id="Sat.getCommandInstance"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.salomeTools.Sat.getCommandInstance">[docs]</a>    <span class="k">def</span> <span class="nf">getCommandInstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
+<div class="viewcode-block" id="Sat.getCommandInstance"><a class="viewcode-back" href="../../apidoc_src/src.html#src.salomeTools.Sat.getCommandInstance">[docs]</a>    <span class="k">def</span> <span class="nf">getCommandInstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;\</span>
 <span class="sd">        returns inherited instance of Command(_BaseCmd) for command &#39;name&#39;</span>
 <span class="sd">        if module not loaded yet, load it.</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;Sat new instance </span><span class="si">%s</span><span class="s2">.Command()&quot;</span> <span class="o">%</span> <span class="n">name</span><span class="p">)</span>
         <span class="k">return</span> <span class="n">commandInstance</span>                          </div>
 
-<div class="viewcode-block" id="Sat.execute_cli"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.salomeTools.Sat.execute_cli">[docs]</a>    <span class="k">def</span> <span class="nf">execute_cli</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cli_arguments</span><span class="p">):</span>
+<div class="viewcode-block" id="Sat.execute_cli"><a class="viewcode-back" href="../../apidoc_src/src.html#src.salomeTools.Sat.execute_cli">[docs]</a>    <span class="k">def</span> <span class="nf">execute_cli</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cli_arguments</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;select first argument as a command in directory &#39;commands&#39;, and launch on arguments</span>
 <span class="sd">        </span>
 <span class="sd">        :param args str or list, The sat cli arguments (as sys.argv)</span>
         <span class="n">returnCode</span> <span class="o">=</span> <span class="n">cmdInstance</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">commandArguments</span><span class="p">)</span>
         <span class="k">return</span> <span class="n">returnCode</span></div>
         
-<div class="viewcode-block" id="Sat.getCommandAndAppli"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.salomeTools.Sat.getCommandAndAppli">[docs]</a>    <span class="k">def</span> <span class="nf">getCommandAndAppli</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arguments</span><span class="p">):</span>
+<div class="viewcode-block" id="Sat.getCommandAndAppli"><a class="viewcode-back" href="../../apidoc_src/src.html#src.salomeTools.Sat.getCommandAndAppli">[docs]</a>    <span class="k">def</span> <span class="nf">getCommandAndAppli</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arguments</span><span class="p">):</span>
         <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">assumeAsList</span><span class="p">(</span><span class="n">arguments</span><span class="p">)</span>
         <span class="n">namecmd</span><span class="p">,</span> <span class="n">nameAppli</span><span class="p">,</span> <span class="n">remainderArgs</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="p">[]</span>
         <span class="n">iremain</span> <span class="o">=</span> <span class="mi">0</span>
         <span class="k">return</span> <span class="n">res</span></div>
         
       
-<div class="viewcode-block" id="Sat.get_help"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.salomeTools.Sat.get_help">[docs]</a>    <span class="k">def</span> <span class="nf">get_help</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Sat.get_help"><a class="viewcode-back" href="../../apidoc_src/src.html#src.salomeTools.Sat.get_help">[docs]</a>    <span class="k">def</span> <span class="nf">get_help</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;get general help colored string&quot;&quot;&quot;</span>
         <span class="n">msg</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getColoredVersion</span><span class="p">()</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">&quot;</span>
         <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;&lt;header&gt;Usage:&lt;reset&gt;  sat [generic_options] &lt;command&gt; [product] [command_options]</span><span class="se">\n\n</span><span class="s2">&quot;</span>
                <span class="s2">&quot;&lt;reset&gt;sat &lt;command&gt; --help</span><span class="se">\n</span><span class="s2">&quot;</span>
         <span class="k">return</span> <span class="n">msg</span></div>
     
-<div class="viewcode-block" id="Sat.print_help"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.salomeTools.Sat.print_help">[docs]</a>    <span class="k">def</span> <span class="nf">print_help</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Sat.print_help"><a class="viewcode-back" href="../../apidoc_src/src.html#src.salomeTools.Sat.print_help">[docs]</a>    <span class="k">def</span> <span class="nf">print_help</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;prints salomeTools general help&quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_help</span><span class="p">())</span></div>
           
-<div class="viewcode-block" id="Sat.getConfigManager"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.salomeTools.Sat.getConfigManager">[docs]</a>    <span class="k">def</span> <span class="nf">getConfigManager</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Sat.getConfigManager"><a class="viewcode-back" href="../../apidoc_src/src.html#src.salomeTools.Sat.getConfigManager">[docs]</a>    <span class="k">def</span> <span class="nf">getConfigManager</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="kn">import</span> <span class="nn">src.configManager</span> <span class="k">as</span> <span class="nn">CFGMGR</span>
         <span class="k">return</span> <span class="n">CFGMGR</span><span class="o">.</span><span class="n">ConfigManager</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span></div>
         
-<div class="viewcode-block" id="Sat.getColoredVersion"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.salomeTools.Sat.getColoredVersion">[docs]</a>    <span class="k">def</span> <span class="nf">getColoredVersion</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Sat.getColoredVersion"><a class="viewcode-back" href="../../apidoc_src/src.html#src.salomeTools.Sat.getColoredVersion">[docs]</a>    <span class="k">def</span> <span class="nf">getColoredVersion</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;get colored salomeTools version message&quot;&quot;&quot;</span>
         <span class="n">version</span> <span class="o">=</span> <span class="n">getVersion</span><span class="p">()</span>
         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
index d98363a4430f1b57b00f780a3af346d70e254def..5e5c8c526251cd7eb4ee7c38f0278dbb9b21fb97 100644 (file)
 <span class="c1">#  License along with this library; if not, write to the Free Software</span>
 <span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
 
-<span class="sd">&#39;&#39;&#39;</span>
+<span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">All utilities method doing a system call, </span>
 <span class="sd">like open a browser or an editor, or call a git command</span>
 
 <span class="sd">usage:</span>
 <span class="sd">  &gt;&gt; import src.system as SYSS</span>
-<span class="sd">&#39;&#39;&#39;</span>
+<span class="sd">&quot;&quot;&quot;</span>
 
 <span class="kn">import</span> <span class="nn">subprocess</span>
 <span class="kn">import</span> <span class="nn">os</span>
 <span class="kn">import</span> <span class="nn">tarfile</span>
 <span class="kn">import</span> <span class="nn">src.returnCode</span> <span class="k">as</span> <span class="nn">RCO</span>
 
-<div class="viewcode-block" id="show_in_editor"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.system.show_in_editor">[docs]</a><span class="k">def</span> <span class="nf">show_in_editor</span><span class="p">(</span><span class="n">editor</span><span class="p">,</span> <span class="n">filePath</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;\</span>
-<span class="sd">    open filePath using editor.</span>
+<div class="viewcode-block" id="show_in_editor"><a class="viewcode-back" href="../../apidoc_src/src.html#src.system.show_in_editor">[docs]</a><span class="k">def</span> <span class="nf">show_in_editor</span><span class="p">(</span><span class="n">editor</span><span class="p">,</span> <span class="n">filePath</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;open filePath using editor.</span>
 <span class="sd">    </span>
-<span class="sd">    :param editor str: The editor to use.</span>
-<span class="sd">    :param filePath str: The path to the file to open.</span>
+<span class="sd">    :param editor: (str) The editor to use.</span>
+<span class="sd">    :param filePath: (str) The path to the file to open.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="c1"># default editor is vi</span>
     <span class="k">if</span> <span class="n">editor</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">len</span><span class="p">(</span><span class="n">editor</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
         <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;KO&quot;</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span></div>
 
 
-<div class="viewcode-block" id="git_extract"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.system.git_extract">[docs]</a><span class="k">def</span> <span class="nf">git_extract</span><span class="p">(</span><span class="n">from_what</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">where</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">environment</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;\</span>
-<span class="sd">    Extracts sources from a git repository.</span>
+<div class="viewcode-block" id="git_extract"><a class="viewcode-back" href="../../apidoc_src/src.html#src.system.git_extract">[docs]</a><span class="k">def</span> <span class="nf">git_extract</span><span class="p">(</span><span class="n">from_what</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">where</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">environment</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Extracts sources from a git repository.</span>
 <span class="sd">    </span>
-<span class="sd">    :param from_what str: The remote git repository.</span>
-<span class="sd">    :param tag str: The tag.</span>
-<span class="sd">    :param where str: The path where to extract.</span>
-<span class="sd">    :param logger Logger: The logger instance to use.</span>
-<span class="sd">    :param environment src.environment.Environ: The environment to source when</span>
-<span class="sd">                                                extracting.</span>
-<span class="sd">    :return: True if the extraction is successful</span>
-<span class="sd">    :rtype: boolean</span>
+<span class="sd">    :param from_what: (str) The remote git repository.</span>
+<span class="sd">    :param tag: (str) The tag.</span>
+<span class="sd">    :param where: (str) The path where to extract.</span>
+<span class="sd">    :param logger: (Logger) The logger instance to use.</span>
+<span class="sd">    :param environment: (Environ) </span>
+<span class="sd">      The environment to source when extracting.</span>
+<span class="sd">    :return: (bool) True if the extraction is successful</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="ow">not</span> <span class="n">where</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span>
         <span class="n">where</span><span class="o">.</span><span class="n">make</span><span class="p">()</span>
                           <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">STDOUT</span><span class="p">)</span>
     <span class="k">return</span> <span class="p">(</span><span class="n">res</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="archive_extract"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.system.archive_extract">[docs]</a><span class="k">def</span> <span class="nf">archive_extract</span><span class="p">(</span><span class="n">from_what</span><span class="p">,</span> <span class="n">where</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;\</span>
-<span class="sd">    Extracts sources from an archive.</span>
+<div class="viewcode-block" id="archive_extract"><a class="viewcode-back" href="../../apidoc_src/src.html#src.system.archive_extract">[docs]</a><span class="k">def</span> <span class="nf">archive_extract</span><span class="p">(</span><span class="n">from_what</span><span class="p">,</span> <span class="n">where</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Extracts sources from an archive.</span>
 <span class="sd">    </span>
-<span class="sd">    :param from_what str: The path to the archive.</span>
-<span class="sd">    :param where str: The path where to extract.</span>
-<span class="sd">    :param logger Logger: The logger instance to use.</span>
-<span class="sd">    :return: True if the extraction is successful</span>
-<span class="sd">    :rtype: boolean</span>
+<span class="sd">    :param from_what: (str) The path to the archive.</span>
+<span class="sd">    :param where: (str) The path where to extract.</span>
+<span class="sd">    :param logger: (Logger) The logger instance to use.</span>
+<span class="sd">    :return: (bool) True if the extraction is successful</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">try</span><span class="p">:</span>
         <span class="n">archive</span> <span class="o">=</span> <span class="n">tarfile</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">from_what</span><span class="p">)</span>
         <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">&quot;archive_extract: </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">exc</span><span class="p">)</span>
         <span class="k">return</span> <span class="kc">False</span><span class="p">,</span> <span class="kc">None</span></div>
 
-<div class="viewcode-block" id="cvs_extract"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.system.cvs_extract">[docs]</a><span class="k">def</span> <span class="nf">cvs_extract</span><span class="p">(</span><span class="n">protocol</span><span class="p">,</span> <span class="n">user</span><span class="p">,</span> <span class="n">server</span><span class="p">,</span> <span class="n">base</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">product</span><span class="p">,</span> <span class="n">where</span><span class="p">,</span>
+<div class="viewcode-block" id="cvs_extract"><a class="viewcode-back" href="../../apidoc_src/src.html#src.system.cvs_extract">[docs]</a><span class="k">def</span> <span class="nf">cvs_extract</span><span class="p">(</span><span class="n">protocol</span><span class="p">,</span> <span class="n">user</span><span class="p">,</span> <span class="n">server</span><span class="p">,</span> <span class="n">base</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">product</span><span class="p">,</span> <span class="n">where</span><span class="p">,</span>
                 <span class="n">logger</span><span class="p">,</span> <span class="n">checkout</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">environment</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;\</span>
-<span class="sd">    Extracts sources from a cvs repository.</span>
+    <span class="sd">&quot;&quot;&quot;Extracts sources from a cvs repository.</span>
 <span class="sd">    </span>
-<span class="sd">    :param protocol str: The cvs protocol.</span>
-<span class="sd">    :param user str: The user to be used.</span>
-<span class="sd">    :param server str: The remote cvs server.</span>
-<span class="sd">    :param base str: .</span>
-<span class="sd">    :param tag str: The tag.</span>
-<span class="sd">    :param product str: The product.</span>
-<span class="sd">    :param where str: The path where to extract.</span>
-<span class="sd">    :param logger Logger: The logger instance to use.</span>
-<span class="sd">    :param checkout boolean: If true use checkout cvs.</span>
-<span class="sd">    :param environment src.environment.Environ: The environment to source when</span>
-<span class="sd">                                                extracting.</span>
-<span class="sd">    :return: True if the extraction is successful</span>
-<span class="sd">    :rtype: boolean</span>
+<span class="sd">    :param protocol: (str) The cvs protocol.</span>
+<span class="sd">    :param user: (str) The user to be used.</span>
+<span class="sd">    :param server: (str) The remote cvs server.</span>
+<span class="sd">    :param base: (str) .</span>
+<span class="sd">    :param tag: (str) The tag.</span>
+<span class="sd">    :param product: (str) The product.</span>
+<span class="sd">    :param where: (str) The path where to extract.</span>
+<span class="sd">    :param logger: (Logger) The logger instance to use.</span>
+<span class="sd">    :param checkout: (bool) If true use checkout cvs.</span>
+<span class="sd">    :param environment: (Environ) </span>
+<span class="sd">      The environment to source when extracting.</span>
+<span class="sd">    :return: (bool) True if the extraction is successful</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="n">opttag</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
                           <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">STDOUT</span><span class="p">)</span>
     <span class="k">return</span> <span class="p">(</span><span class="n">res</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="svn_extract"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.system.svn_extract">[docs]</a><span class="k">def</span> <span class="nf">svn_extract</span><span class="p">(</span><span class="n">user</span><span class="p">,</span>
+<div class="viewcode-block" id="svn_extract"><a class="viewcode-back" href="../../apidoc_src/src.html#src.system.svn_extract">[docs]</a><span class="k">def</span> <span class="nf">svn_extract</span><span class="p">(</span><span class="n">user</span><span class="p">,</span>
                 <span class="n">from_what</span><span class="p">,</span>
                 <span class="n">tag</span><span class="p">,</span>
                 <span class="n">where</span><span class="p">,</span>
                 <span class="n">logger</span><span class="p">,</span>
                 <span class="n">checkout</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                 <span class="n">environment</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;\</span>
-<span class="sd">    Extracts sources from a svn repository.</span>
+    <span class="sd">&quot;&quot;&quot;Extracts sources from a svn repository.</span>
 <span class="sd">    </span>
-<span class="sd">    :param user str: The user to be used.</span>
-<span class="sd">    :param from_what str: The remote git repository.</span>
-<span class="sd">    :param tag str: The tag.</span>
-<span class="sd">    :param where str: The path where to extract.</span>
-<span class="sd">    :param logger Logger: The logger instance to use.</span>
-<span class="sd">    :param checkout boolean: If true use checkout svn.</span>
-<span class="sd">    :param environment src.environment.Environ: The environment to source when</span>
-<span class="sd">                                                extracting.</span>
-<span class="sd">    :return: True if the extraction is successful</span>
-<span class="sd">    :rtype: boolean</span>
+<span class="sd">    :param user: (str) The user to be used.</span>
+<span class="sd">    :param from_what: (str) The remote git repository.</span>
+<span class="sd">    :param tag: (str) The tag.</span>
+<span class="sd">    :param where: (str) The path where to extract.</span>
+<span class="sd">    :param logger: (Logger) The logger instance to use.</span>
+<span class="sd">    :param checkout: (bool) If true use checkout svn.</span>
+<span class="sd">    :param environment: (Environ)</span>
+<span class="sd">      The environment to source when extracting.</span>
+<span class="sd">    :return: (bool) True if the extraction is successful</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="ow">not</span> <span class="n">where</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span>
         <span class="n">where</span><span class="o">.</span><span class="n">make</span><span class="p">()</span>
index f7d99589e0855c0f76dfc665e121653e3956a55b..4c4de27d18bc6b25af109474f3071d2ae90900d8 100644 (file)
 
 <span class="kn">import</span> <span class="nn">string</span>
 
-<div class="viewcode-block" id="MyTemplate"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.template.MyTemplate">[docs]</a><span class="k">class</span> <span class="nc">MyTemplate</span><span class="p">(</span><span class="n">string</span><span class="o">.</span><span class="n">Template</span><span class="p">):</span>
+<div class="viewcode-block" id="MyTemplate"><a class="viewcode-back" href="../../apidoc_src/src.html#src.template.MyTemplate">[docs]</a><span class="k">class</span> <span class="nc">MyTemplate</span><span class="p">(</span><span class="n">string</span><span class="o">.</span><span class="n">Template</span><span class="p">):</span>
     <span class="n">delimiter</span> <span class="o">=</span> <span class="s1">&#39;¤&#39;</span></div>
 
-<div class="viewcode-block" id="substitute"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.template.substitute">[docs]</a><span class="k">def</span> <span class="nf">substitute</span><span class="p">(</span><span class="n">template_file</span><span class="p">,</span> <span class="n">subst_dic</span><span class="p">):</span>
+<div class="viewcode-block" id="substitute"><a class="viewcode-back" href="../../apidoc_src/src.html#src.template.substitute">[docs]</a><span class="k">def</span> <span class="nf">substitute</span><span class="p">(</span><span class="n">template_file</span><span class="p">,</span> <span class="n">subst_dic</span><span class="p">):</span>
     <span class="n">template</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">template_file</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span>
     <span class="n">template</span> <span class="o">=</span> <span class="n">MyTemplate</span><span class="p">(</span><span class="n">template</span><span class="o">.</span><span class="n">read</span><span class="p">())</span>
 
index 275eb381b63dc308cbb0184c1571b0ad7960da08..aee1eeb458a5ca37e7b2662bf6d90a01e22c0ba2 100644 (file)
@@ -91,7 +91,7 @@
 
 <span class="c1"># Get directory to be used for the temporary files.</span>
 <span class="c1">#</span>
-<div class="viewcode-block" id="getTmpDirDEFAULT"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.getTmpDirDEFAULT">[docs]</a><span class="k">def</span> <span class="nf">getTmpDirDEFAULT</span><span class="p">():</span>
+<div class="viewcode-block" id="getTmpDirDEFAULT"><a class="viewcode-back" href="../../apidoc_src/src.html#src.test_module.getTmpDirDEFAULT">[docs]</a><span class="k">def</span> <span class="nf">getTmpDirDEFAULT</span><span class="p">():</span>
     <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">architecture</span><span class="o">.</span><span class="n">is_windows</span><span class="p">():</span>
         <span class="n">directory</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s2">&quot;TEMP&quot;</span><span class="p">)</span>
     <span class="k">else</span><span class="p">:</span>
@@ -99,7 +99,7 @@
         <span class="n">directory</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> <span class="s1">&#39;/tmp&#39;</span><span class="p">,</span> <span class="s1">&#39;logs&#39;</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s2">&quot;USER&quot;</span><span class="p">,</span> <span class="s2">&quot;unknown&quot;</span><span class="p">))</span>
     <span class="k">return</span> <span class="n">directory</span></div>
 
-<div class="viewcode-block" id="Test"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test">[docs]</a><span class="k">class</span> <span class="nc">Test</span><span class="p">:</span>
+<div class="viewcode-block" id="Test"><a class="viewcode-back" href="../../apidoc_src/src.html#src.test_module.Test">[docs]</a><span class="k">class</span> <span class="nc">Test</span><span class="p">:</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
                  <span class="n">config</span><span class="p">,</span>
                  <span class="n">logger</span><span class="p">,</span>
             <span class="n">shutil</span><span class="o">.</span><span class="n">copytree</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">target</span><span class="p">,</span>
                             <span class="n">symlinks</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
 
-<div class="viewcode-block" id="Test.prepare_testbase_from_dir"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.prepare_testbase_from_dir">[docs]</a>    <span class="k">def</span> <span class="nf">prepare_testbase_from_dir</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">testbase_name</span><span class="p">,</span> <span class="n">testbase_dir</span><span class="p">):</span>
+<div class="viewcode-block" id="Test.prepare_testbase_from_dir"><a class="viewcode-back" href="../../apidoc_src/src.html#src.test_module.Test.prepare_testbase_from_dir">[docs]</a>    <span class="k">def</span> <span class="nf">prepare_testbase_from_dir</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">testbase_name</span><span class="p">,</span> <span class="n">testbase_dir</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;get test base from dir: </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">testbase_dir</span><span class="p">))</span>
         <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">access</span><span class="p">(</span><span class="n">testbase_dir</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">X_OK</span><span class="p">):</span>
             <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_copy_dir</span><span class="p">(</span><span class="n">testbase_dir</span><span class="p">,</span>
                        <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span> <span class="s1">&#39;BASES&#39;</span><span class="p">,</span> <span class="n">testbase_name</span><span class="p">))</span></div>
 
-<div class="viewcode-block" id="Test.prepare_testbase_from_git"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.prepare_testbase_from_git">[docs]</a>    <span class="k">def</span> <span class="nf">prepare_testbase_from_git</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
+<div class="viewcode-block" id="Test.prepare_testbase_from_git"><a class="viewcode-back" href="../../apidoc_src/src.html#src.test_module.Test.prepare_testbase_from_git">[docs]</a>    <span class="k">def</span> <span class="nf">prepare_testbase_from_git</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
                                   <span class="n">testbase_name</span><span class="p">,</span>
                                   <span class="n">testbase_base</span><span class="p">,</span>
                                   <span class="n">testbase_tag</span><span class="p">):</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;git is not installed. exiting...</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">))</span>
             <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Test.prepare_testbase_from_svn"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.prepare_testbase_from_svn">[docs]</a>    <span class="k">def</span> <span class="nf">prepare_testbase_from_svn</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">user</span><span class="p">,</span> <span class="n">testbase_name</span><span class="p">,</span> <span class="n">testbase_base</span><span class="p">):</span>
+<div class="viewcode-block" id="Test.prepare_testbase_from_svn"><a class="viewcode-back" href="../../apidoc_src/src.html#src.test_module.Test.prepare_testbase_from_svn">[docs]</a>    <span class="k">def</span> <span class="nf">prepare_testbase_from_svn</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">user</span><span class="p">,</span> <span class="n">testbase_name</span><span class="p">,</span> <span class="n">testbase_base</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;get test base &#39;</span><span class="si">%s</span><span class="s2">&#39; from svn</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="n">testbase_name</span><span class="p">))</span>
         <span class="k">try</span><span class="p">:</span>
             <span class="k">def</span> <span class="nf">set_signal</span><span class="p">():</span> <span class="c1"># pragma: no cover</span>
 
     <span class="c1">##</span>
     <span class="c1"># Configure tests base.</span>
-<div class="viewcode-block" id="Test.prepare_testbase"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.prepare_testbase">[docs]</a>    <span class="k">def</span> <span class="nf">prepare_testbase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">test_base_name</span><span class="p">):</span>
+<div class="viewcode-block" id="Test.prepare_testbase"><a class="viewcode-back" href="../../apidoc_src/src.html#src.test_module.Test.prepare_testbase">[docs]</a>    <span class="k">def</span> <span class="nf">prepare_testbase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">test_base_name</span><span class="p">):</span>
         <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">logger</span>
         <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;  </span><span class="si">%s</span><span class="s2"> = </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Test base&quot;</span><span class="p">),</span> <span class="n">test_base_name</span><span class="p">))</span>
 
     <span class="c1">##</span>
     <span class="c1"># Searches if the script is declared in known errors pyconf.</span>
     <span class="c1"># Update the status if needed.</span>
-<div class="viewcode-block" id="Test.search_known_errors"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.search_known_errors">[docs]</a>    <span class="k">def</span> <span class="nf">search_known_errors</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">status</span><span class="p">,</span> <span class="n">test_grid</span><span class="p">,</span> <span class="n">test_session</span><span class="p">,</span> <span class="n">test</span><span class="p">):</span>
+<div class="viewcode-block" id="Test.search_known_errors"><a class="viewcode-back" href="../../apidoc_src/src.html#src.test_module.Test.search_known_errors">[docs]</a>    <span class="k">def</span> <span class="nf">search_known_errors</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">status</span><span class="p">,</span> <span class="n">test_grid</span><span class="p">,</span> <span class="n">test_session</span><span class="p">,</span> <span class="n">test</span><span class="p">):</span>
         <span class="n">test_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">test_grid</span><span class="p">,</span> <span class="n">test_session</span><span class="p">,</span> <span class="n">test</span><span class="p">)</span>
         <span class="k">if</span> <span class="ow">not</span> <span class="n">src</span><span class="o">.</span><span class="n">config_has_application</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">):</span>
             <span class="k">return</span> <span class="n">status</span><span class="p">,</span> <span class="p">[]</span>
 
     <span class="c1">##</span>
     <span class="c1"># Read the *.result.py files.</span>
-<div class="viewcode-block" id="Test.read_results"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.read_results">[docs]</a>    <span class="k">def</span> <span class="nf">read_results</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">listTest</span><span class="p">,</span> <span class="n">has_timed_out</span><span class="p">):</span>
+<div class="viewcode-block" id="Test.read_results"><a class="viewcode-back" href="../../apidoc_src/src.html#src.test_module.Test.read_results">[docs]</a>    <span class="k">def</span> <span class="nf">read_results</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">listTest</span><span class="p">,</span> <span class="n">has_timed_out</span><span class="p">):</span>
         <span class="n">results</span> <span class="o">=</span> <span class="p">{}</span>
         <span class="k">for</span> <span class="n">test</span> <span class="ow">in</span> <span class="n">listTest</span><span class="p">:</span>
             <span class="n">resfile</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span>
     <span class="c1"># Generates the script to be run by Salome.</span>
     <span class="c1"># This python script includes init and close statements and a loop</span>
     <span class="c1"># calling all the scripts of a single directory.</span>
-<div class="viewcode-block" id="Test.generate_script"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.generate_script">[docs]</a>    <span class="k">def</span> <span class="nf">generate_script</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">listTest</span><span class="p">,</span> <span class="n">script_path</span><span class="p">,</span> <span class="n">ignoreList</span><span class="p">):</span>
+<div class="viewcode-block" id="Test.generate_script"><a class="viewcode-back" href="../../apidoc_src/src.html#src.test_module.Test.generate_script">[docs]</a>    <span class="k">def</span> <span class="nf">generate_script</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">listTest</span><span class="p">,</span> <span class="n">script_path</span><span class="p">,</span> <span class="n">ignoreList</span><span class="p">):</span>
         <span class="c1"># open template file</span>
         <span class="n">template_file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">srcDir</span><span class="p">,</span>
                                           <span class="s2">&quot;test_module&quot;</span><span class="p">,</span>
 
     <span class="c1"># Find the getTmpDir function that gives access to *pidict file directory.</span>
     <span class="c1"># (the *pidict file exists when SALOME is launched) </span>
-<div class="viewcode-block" id="Test.get_tmp_dir"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.get_tmp_dir">[docs]</a>    <span class="k">def</span> <span class="nf">get_tmp_dir</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Test.get_tmp_dir"><a class="viewcode-back" href="../../apidoc_src/src.html#src.test_module.Test.get_tmp_dir">[docs]</a>    <span class="k">def</span> <span class="nf">get_tmp_dir</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="c1"># Rare case where there is no KERNEL in grid list </span>
         <span class="c1"># (for example MED_STANDALONE)</span>
         <span class="k">if</span> <span class="p">(</span><span class="s1">&#39;APPLICATION&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span> 
                 <span class="n">file_</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div>
 
 
-<div class="viewcode-block" id="Test.get_test_timeout"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.get_test_timeout">[docs]</a>    <span class="k">def</span> <span class="nf">get_test_timeout</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">test_name</span><span class="p">,</span> <span class="n">default_value</span><span class="p">):</span>
+<div class="viewcode-block" id="Test.get_test_timeout"><a class="viewcode-back" href="../../apidoc_src/src.html#src.test_module.Test.get_test_timeout">[docs]</a>    <span class="k">def</span> <span class="nf">get_test_timeout</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">test_name</span><span class="p">,</span> <span class="n">default_value</span><span class="p">):</span>
         <span class="k">if</span> <span class="p">(</span><span class="s2">&quot;timeout&quot;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span> <span class="ow">and</span> 
                 <span class="n">test_name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s2">&quot;timeout&quot;</span><span class="p">]):</span>
             <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s2">&quot;timeout&quot;</span><span class="p">][</span><span class="n">test_name</span><span class="p">]</span>
 
         <span class="k">return</span> <span class="n">default_value</span></div>
 
-<div class="viewcode-block" id="Test.generate_launching_commands"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.generate_launching_commands">[docs]</a>    <span class="k">def</span> <span class="nf">generate_launching_commands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Test.generate_launching_commands"><a class="viewcode-back" href="../../apidoc_src/src.html#src.test_module.Test.generate_launching_commands">[docs]</a>    <span class="k">def</span> <span class="nf">generate_launching_commands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="c1"># Case where &quot;sat test&quot; is launched in an existing SALOME environment</span>
         <span class="k">if</span> <span class="s1">&#39;KERNEL_ROOT_DIR&#39;</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
             <span class="n">binSalome</span> <span class="o">=</span> <span class="s2">&quot;runSalome&quot;</span>
 
     <span class="c1">##</span>
     <span class="c1"># Runs tests of a session (using a single instance of Salome).</span>
-<div class="viewcode-block" id="Test.run_tests"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.run_tests">[docs]</a>    <span class="k">def</span> <span class="nf">run_tests</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">listTest</span><span class="p">,</span> <span class="n">ignoreList</span><span class="p">):</span>
+<div class="viewcode-block" id="Test.run_tests"><a class="viewcode-back" href="../../apidoc_src/src.html#src.test_module.Test.run_tests">[docs]</a>    <span class="k">def</span> <span class="nf">run_tests</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">listTest</span><span class="p">,</span> <span class="n">ignoreList</span><span class="p">):</span>
         <span class="n">out_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span>
                                 <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">,</span>
                                 <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">)</span>
 
     <span class="c1">##</span>
     <span class="c1"># Runs all tests of a session.</span>
-<div class="viewcode-block" id="Test.run_session_tests"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.run_session_tests">[docs]</a>    <span class="k">def</span> <span class="nf">run_session_tests</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Test.run_session_tests"><a class="viewcode-back" href="../../apidoc_src/src.html#src.test_module.Test.run_session_tests">[docs]</a>    <span class="k">def</span> <span class="nf">run_session_tests</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        
         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">write_test_margin</span><span class="p">(</span><span class="mi">2</span><span class="p">))</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Session = </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">))</span>
 
     <span class="c1">##</span>
     <span class="c1"># Runs all tests of a grid.</span>
-<div class="viewcode-block" id="Test.run_grid_tests"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.run_grid_tests">[docs]</a>    <span class="k">def</span> <span class="nf">run_grid_tests</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Test.run_grid_tests"><a class="viewcode-back" href="../../apidoc_src/src.html#src.test_module.Test.run_grid_tests">[docs]</a>    <span class="k">def</span> <span class="nf">run_grid_tests</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">write_test_margin</span><span class="p">(</span><span class="mi">1</span><span class="p">))</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;grid = </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">UTS</span><span class="o">.</span><span class="n">label</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">))</span>
 
                 <span class="bp">self</span><span class="o">.</span><span class="n">run_session_tests</span><span class="p">()</span></div>
 
 
-<div class="viewcode-block" id="Test.run_testbase_tests"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.run_testbase_tests">[docs]</a>    <span class="k">def</span> <span class="nf">run_testbase_tests</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Test.run_testbase_tests"><a class="viewcode-back" href="../../apidoc_src/src.html#src.test_module.Test.run_testbase_tests">[docs]</a>    <span class="k">def</span> <span class="nf">run_testbase_tests</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Runs test testbase&quot;&quot;&quot;</span>
         <span class="n">logger</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">logger</span>
         <span class="n">res_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span> <span class="s2">&quot;RESSOURCES&quot;</span><span class="p">)</span>
                 <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span> <span class="o">=</span> <span class="n">grid</span>
                 <span class="bp">self</span><span class="o">.</span><span class="n">run_grid_tests</span><span class="p">()</span></div>
 
-<div class="viewcode-block" id="Test.run_script"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.run_script">[docs]</a>    <span class="k">def</span> <span class="nf">run_script</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">script_name</span><span class="p">):</span>
+<div class="viewcode-block" id="Test.run_script"><a class="viewcode-back" href="../../apidoc_src/src.html#src.test_module.Test.run_script">[docs]</a>    <span class="k">def</span> <span class="nf">run_script</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">script_name</span><span class="p">):</span>
         <span class="k">if</span> <span class="p">(</span><span class="s1">&#39;APPLICATION&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span> <span class="ow">and</span> 
                 <span class="n">script_name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="p">):</span>
             <span class="n">script</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="p">[</span><span class="n">script_name</span><span class="p">]</span>
                 <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">script</span><span class="p">,</span> <span class="n">shell</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="o">.</span><span class="n">wait</span><span class="p">()</span>
                 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;----------- end </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">script_name</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Test.run_all_tests"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.run_all_tests">[docs]</a>    <span class="k">def</span> <span class="nf">run_all_tests</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Test.run_all_tests"><a class="viewcode-back" href="../../apidoc_src/src.html#src.test_module.Test.run_all_tests">[docs]</a>    <span class="k">def</span> <span class="nf">run_all_tests</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="n">initTime</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">()</span>
 
         <span class="bp">self</span><span class="o">.</span><span class="n">run_script</span><span class="p">(</span><span class="s1">&#39;test_setup&#39;</span><span class="p">)</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_run</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_succeed</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_acknoledge</span></div>
 
     <span class="c1"># Write margin to show test results.</span>
-<div class="viewcode-block" id="Test.write_test_margin"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.write_test_margin">[docs]</a>    <span class="k">def</span> <span class="nf">write_test_margin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tab</span><span class="p">):</span>
+<div class="viewcode-block" id="Test.write_test_margin"><a class="viewcode-back" href="../../apidoc_src/src.html#src.test_module.Test.write_test_margin">[docs]</a>    <span class="k">def</span> <span class="nf">write_test_margin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tab</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;indent with &#39;| ... +&#39; to show test results.&quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="n">tab</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
             <span class="k">return</span> <span class="s2">&quot;&quot;</span>
index c76e1911889368ef4ef8ff8a4676b8bd84191481..403d5dd955d2262421c9c28cb90cd4defb7c0794 100644 (file)
 <span class="c1">##############################################################################</span>
 <span class="c1"># file system utilities</span>
 <span class="c1">##############################################################################</span>
-<div class="viewcode-block" id="ensure_path_exists"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.ensure_path_exists">[docs]</a><span class="k">def</span> <span class="nf">ensure_path_exists</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
+<div class="viewcode-block" id="ensure_path_exists"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.ensure_path_exists">[docs]</a><span class="k">def</span> <span class="nf">ensure_path_exists</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;Create a path if not existing</span>
 <span class="sd">    </span>
-<span class="sd">    :param p str: The path.</span>
+<span class="sd">    :param path: (str) The path.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
-    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
-        <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">p</span><span class="p">)</span></div>
+    <span class="nb">print</span> <span class="s2">&quot;the path&quot;</span><span class="p">,</span><span class="n">path</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
+        <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">path</span><span class="p">)</span></div>
         
-<div class="viewcode-block" id="replace_in_file"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.replace_in_file">[docs]</a><span class="k">def</span> <span class="nf">replace_in_file</span><span class="p">(</span><span class="n">filein</span><span class="p">,</span> <span class="n">strin</span><span class="p">,</span> <span class="n">strout</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;Replace &lt;strin&gt; by &lt;strout&gt; in file &lt;filein&gt;&quot;&quot;&quot;</span>
-    <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">filein</span><span class="p">,</span> <span class="s2">&quot;r&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> 
+<div class="viewcode-block" id="replace_in_file"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.replace_in_file">[docs]</a><span class="k">def</span> <span class="nf">replace_in_file</span><span class="p">(</span><span class="n">file_in</span><span class="p">,</span> <span class="n">str_in</span><span class="p">,</span> <span class="n">str_out</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Replace &lt;str_in&gt; by &lt;str_out&gt; in file &lt;file_in&gt;</span>
+
+<span class="sd">    :param file_in: (str) The file name</span>
+<span class="sd">    :param str_in: (str) The string to search</span>
+<span class="sd">    :param str_out: (str) The string to replace.    </span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">file_in</span><span class="p">,</span> <span class="s2">&quot;r&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> 
       <span class="n">contents</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
-    <span class="n">shutil</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="n">filein</span><span class="p">,</span> <span class="n">filein</span> <span class="o">+</span> <span class="s2">&quot;_old&quot;</span><span class="p">)</span>
-    <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">filein</span><span class="p">,</span> <span class="s2">&quot;w&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> 
-      <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">contents</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">strin</span><span class="p">,</span> <span class="n">strout</span><span class="p">))</span></div>
+    <span class="n">shutil</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="n">file_in</span><span class="p">,</span> <span class="n">file_in</span> <span class="o">+</span> <span class="s2">&quot;_old&quot;</span><span class="p">)</span>
+    <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">file_in</span><span class="p">,</span> <span class="s2">&quot;w&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> 
+      <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">contents</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">str_in</span><span class="p">,</span> <span class="n">str_out</span><span class="p">))</span></div>
   
 <span class="c1">##############################################################################</span>
 <span class="c1"># Utils class to simplify path manipulations.</span>
 <span class="c1">##############################################################################</span>
-<div class="viewcode-block" id="Path"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.Path">[docs]</a><span class="k">class</span> <span class="nc">Path</span><span class="p">:</span>
+<div class="viewcode-block" id="Path"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.Path">[docs]</a><span class="k">class</span> <span class="nc">Path</span><span class="p">:</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">path</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
 
     <span class="k">def</span> <span class="nf">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">path</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">path</span>
 
-<div class="viewcode-block" id="Path.exists"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.Path.exists">[docs]</a>    <span class="k">def</span> <span class="nf">exists</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Path.exists"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.Path.exists">[docs]</a>    <span class="k">def</span> <span class="nf">exists</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">islink</span><span class="p">()</span> <span class="ow">or</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Path.islink"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.Path.islink">[docs]</a>    <span class="k">def</span> <span class="nf">islink</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Path.islink"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.Path.islink">[docs]</a>    <span class="k">def</span> <span class="nf">islink</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">islink</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Path.isdir"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.Path.isdir">[docs]</a>    <span class="k">def</span> <span class="nf">isdir</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Path.isdir"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.Path.isdir">[docs]</a>    <span class="k">def</span> <span class="nf">isdir</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Path.isfile"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.Path.isfile">[docs]</a>    <span class="k">def</span> <span class="nf">isfile</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Path.isfile"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.Path.isfile">[docs]</a>    <span class="k">def</span> <span class="nf">isfile</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Path.list"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.Path.list">[docs]</a>    <span class="k">def</span> <span class="nf">list</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Path.list"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.Path.list">[docs]</a>    <span class="k">def</span> <span class="nf">list</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">return</span> <span class="p">[</span><span class="n">Path</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">)]</span></div>
 
-<div class="viewcode-block" id="Path.dir"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.Path.dir">[docs]</a>    <span class="k">def</span> <span class="nf">dir</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Path.dir"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.Path.dir">[docs]</a>    <span class="k">def</span> <span class="nf">dir</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">return</span> <span class="n">Path</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">))</span></div>
 
-<div class="viewcode-block" id="Path.base"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.Path.base">[docs]</a>    <span class="k">def</span> <span class="nf">base</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Path.base"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.Path.base">[docs]</a>    <span class="k">def</span> <span class="nf">base</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">return</span> <span class="n">Path</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">))</span></div>
 
-<div class="viewcode-block" id="Path.make"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.Path.make">[docs]</a>    <span class="k">def</span> <span class="nf">make</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="Path.make"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.Path.make">[docs]</a>    <span class="k">def</span> <span class="nf">make</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">)</span>        
         <span class="k">if</span> <span class="n">mode</span><span class="p">:</span>
             <span class="n">os</span><span class="o">.</span><span class="n">chmod</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">,</span> <span class="n">mode</span><span class="p">)</span></div>
         
-<div class="viewcode-block" id="Path.chmod"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.Path.chmod">[docs]</a>    <span class="k">def</span> <span class="nf">chmod</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mode</span><span class="p">):</span>
+<div class="viewcode-block" id="Path.chmod"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.Path.chmod">[docs]</a>    <span class="k">def</span> <span class="nf">chmod</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mode</span><span class="p">):</span>
         <span class="n">os</span><span class="o">.</span><span class="n">chmod</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">,</span> <span class="n">mode</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Path.rm"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.Path.rm">[docs]</a>    <span class="k">def</span> <span class="nf">rm</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>    
+<div class="viewcode-block" id="Path.rm"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.Path.rm">[docs]</a>    <span class="k">def</span> <span class="nf">rm</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>    
         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">islink</span><span class="p">():</span>
             <span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">)</span>
         <span class="k">else</span><span class="p">:</span>
             <span class="n">shutil</span><span class="o">.</span><span class="n">rmtree</span><span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">,</span> <span class="n">onerror</span> <span class="o">=</span> <span class="n">handleRemoveReadonly</span> <span class="p">)</span></div>
 
-<div class="viewcode-block" id="Path.copy"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.Path.copy">[docs]</a>    <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">smart</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+<div class="viewcode-block" id="Path.copy"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.Path.copy">[docs]</a>    <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">smart</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
         <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">Path</span><span class="p">):</span>
             <span class="n">path</span> <span class="o">=</span> <span class="n">Path</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
 
         <span class="k">else</span><span class="p">:</span>
             <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">copyfile</span><span class="p">(</span><span class="n">path</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Path.smartcopy"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.Path.smartcopy">[docs]</a>    <span class="k">def</span> <span class="nf">smartcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
+<div class="viewcode-block" id="Path.smartcopy"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.Path.smartcopy">[docs]</a>    <span class="k">def</span> <span class="nf">smartcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="Path.readlink"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.Path.readlink">[docs]</a>    <span class="k">def</span> <span class="nf">readlink</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Path.readlink"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.Path.readlink">[docs]</a>    <span class="k">def</span> <span class="nf">readlink</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">islink</span><span class="p">():</span>
             <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">readlink</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">)</span>
         <span class="k">else</span><span class="p">:</span>
             <span class="k">return</span> <span class="kc">False</span></div>
 
-<div class="viewcode-block" id="Path.symlink"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.Path.symlink">[docs]</a>    <span class="k">def</span> <span class="nf">symlink</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
+<div class="viewcode-block" id="Path.symlink"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.Path.symlink">[docs]</a>    <span class="k">def</span> <span class="nf">symlink</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
         <span class="k">try</span><span class="p">:</span>
             <span class="n">os</span><span class="o">.</span><span class="n">symlink</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">path</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">)</span>
             <span class="k">return</span> <span class="kc">True</span>
         <span class="k">except</span><span class="p">:</span>
             <span class="k">return</span> <span class="kc">False</span></div>
 
-<div class="viewcode-block" id="Path.copylink"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.Path.copylink">[docs]</a>    <span class="k">def</span> <span class="nf">copylink</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
+<div class="viewcode-block" id="Path.copylink"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.Path.copylink">[docs]</a>    <span class="k">def</span> <span class="nf">copylink</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
         <span class="k">try</span><span class="p">:</span>
             <span class="n">os</span><span class="o">.</span><span class="n">symlink</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">readlink</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">),</span> <span class="nb">str</span><span class="p">(</span><span class="n">path</span><span class="p">))</span>
             <span class="k">return</span> <span class="kc">True</span>
         <span class="k">except</span><span class="p">:</span>
             <span class="k">return</span> <span class="kc">False</span></div>
 
-<div class="viewcode-block" id="Path.copydir"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.Path.copydir">[docs]</a>    <span class="k">def</span> <span class="nf">copydir</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dst</span><span class="p">,</span> <span class="n">smart</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+<div class="viewcode-block" id="Path.copydir"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.Path.copydir">[docs]</a>    <span class="k">def</span> <span class="nf">copydir</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dst</span><span class="p">,</span> <span class="n">smart</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
         <span class="k">try</span><span class="p">:</span>
             <span class="n">names</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">list</span><span class="p">()</span>
 
         <span class="k">except</span><span class="p">:</span>
             <span class="k">return</span> <span class="kc">False</span></div>
 
-<div class="viewcode-block" id="Path.copyfile"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.Path.copyfile">[docs]</a>    <span class="k">def</span> <span class="nf">copyfile</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
+<div class="viewcode-block" id="Path.copyfile"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.Path.copyfile">[docs]</a>    <span class="k">def</span> <span class="nf">copyfile</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
         <span class="k">try</span><span class="p">:</span>
             <span class="n">shutil</span><span class="o">.</span><span class="n">copy2</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">path</span><span class="p">))</span>
             <span class="k">return</span> <span class="kc">True</span>
         <span class="k">except</span><span class="p">:</span>
             <span class="k">return</span> <span class="kc">False</span></div></div>
 
-<div class="viewcode-block" id="find_file_in_lpath"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.find_file_in_lpath">[docs]</a><span class="k">def</span> <span class="nf">find_file_in_lpath</span><span class="p">(</span><span class="n">file_name</span><span class="p">,</span> <span class="n">lpath</span><span class="p">,</span> <span class="n">additional_dir</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;Find in all the directories in lpath list the file that has the same name</span>
-<span class="sd">       as file_name. If it is found, return the full path of the file, else,</span>
-<span class="sd">       return False. </span>
-<span class="sd">       The additional_dir (optional) is the name of the directory to add to all </span>
-<span class="sd">       paths in lpath.</span>
+<div class="viewcode-block" id="find_file_in_lpath"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.find_file_in_lpath">[docs]</a><span class="k">def</span> <span class="nf">find_file_in_lpath</span><span class="p">(</span><span class="n">file_name</span><span class="p">,</span> <span class="n">lpath</span><span class="p">,</span> <span class="n">additional_dir</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Find in all the directories in lpath list the file </span>
+<span class="sd">    that has the same name as file_name. </span>
+<span class="sd">    If it is found, return the full path of the file, else, return False. </span>
+<span class="sd">    The additional_dir (optional) is the name of the directory </span>
+<span class="sd">    to add to all paths in lpath.</span>
 <span class="sd">    </span>
-<span class="sd">    :param file_name str: The file name to search</span>
-<span class="sd">    :param lpath List: The list of directories where to search</span>
-<span class="sd">    :param additional_dir str: The name of the additional directory</span>
-<span class="sd">    :return: the full path of the file or False if not found</span>
-<span class="sd">    :rtype: str</span>
+<span class="sd">    :param file_name: (str) The file name to search</span>
+<span class="sd">    :param lpath: (list) The list of directories where to search</span>
+<span class="sd">    :param additional_dir: (str) The name of the additional directory</span>
+<span class="sd">    :return: (str) The full path of the file or False if not found</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">for</span> <span class="n">directory</span> <span class="ow">in</span> <span class="n">lpath</span><span class="p">:</span>
         <span class="n">dir_complete</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">directory</span><span class="p">,</span> <span class="n">additional_dir</span><span class="p">)</span>
                 <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">dir_complete</span><span class="p">,</span> <span class="n">file_name</span><span class="p">)</span>
     <span class="k">return</span> <span class="kc">False</span></div>
 
-<div class="viewcode-block" id="handleRemoveReadonly"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.handleRemoveReadonly">[docs]</a><span class="k">def</span> <span class="nf">handleRemoveReadonly</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">exc</span><span class="p">):</span>
+<div class="viewcode-block" id="handleRemoveReadonly"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.handleRemoveReadonly">[docs]</a><span class="k">def</span> <span class="nf">handleRemoveReadonly</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">exc</span><span class="p">):</span>
     <span class="n">excvalue</span> <span class="o">=</span> <span class="n">exc</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
     <span class="k">if</span> <span class="n">func</span> <span class="ow">in</span> <span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">rmdir</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">)</span> <span class="ow">and</span> <span class="n">excvalue</span><span class="o">.</span><span class="n">errno</span> <span class="o">==</span> <span class="n">errno</span><span class="o">.</span><span class="n">EACCES</span><span class="p">:</span>
         <span class="n">os</span><span class="o">.</span><span class="n">chmod</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">stat</span><span class="o">.</span><span class="n">S_IRWXU</span><span class="o">|</span> <span class="n">stat</span><span class="o">.</span><span class="n">S_IRWXG</span><span class="o">|</span> <span class="n">stat</span><span class="o">.</span><span class="n">S_IRWXO</span><span class="p">)</span> <span class="c1"># 0777</span>
 <span class="c1">##############################################################################</span>
 <span class="c1"># pyconf config utilities</span>
 <span class="c1">##############################################################################</span>
-<div class="viewcode-block" id="check_config_has_application"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.check_config_has_application">[docs]</a><span class="k">def</span> <span class="nf">check_config_has_application</span><span class="p">(</span> <span class="n">config</span><span class="p">,</span> <span class="n">details</span> <span class="o">=</span> <span class="kc">None</span> <span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;check that the config has the key APPLICATION. Else raise an exception.</span>
+<div class="viewcode-block" id="check_config_has_application"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.check_config_has_application">[docs]</a><span class="k">def</span> <span class="nf">check_config_has_application</span><span class="p">(</span> <span class="n">config</span><span class="p">,</span> <span class="n">details</span> <span class="o">=</span> <span class="kc">None</span> <span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Check that the config has the key APPLICATION. </span>
+<span class="sd">    Else raise an exception.</span>
 <span class="sd">    </span>
-<span class="sd">    :param config class &#39;common.pyconf.Config&#39;: The config.</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param config: (Config) The config.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="s1">&#39;APPLICATION&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">config</span><span class="p">:</span>
         <span class="n">message</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;An APPLICATION is required. Use &#39;config --list&#39; to get&quot;</span>
                     <span class="s2">&quot; the list of available applications.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
             <span class="n">details</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
         <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span> <span class="n">message</span> <span class="p">)</span></div>
 
-<div class="viewcode-block" id="check_config_has_profile"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.check_config_has_profile">[docs]</a><span class="k">def</span> <span class="nf">check_config_has_profile</span><span class="p">(</span> <span class="n">config</span><span class="p">,</span> <span class="n">details</span> <span class="o">=</span> <span class="kc">None</span> <span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;check that the config has the key APPLICATION.profile.</span>
-<span class="sd">       Else, raise an exception.</span>
+<div class="viewcode-block" id="check_config_has_profile"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.check_config_has_profile">[docs]</a><span class="k">def</span> <span class="nf">check_config_has_profile</span><span class="p">(</span> <span class="n">config</span><span class="p">,</span> <span class="n">details</span> <span class="o">=</span> <span class="kc">None</span> <span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Check that the config has the key APPLICATION.profile.</span>
+<span class="sd">    Else, raise an exception.</span>
 <span class="sd">    </span>
-<span class="sd">    :param config class &#39;common.pyconf.Config&#39;: The config.</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param config: (Config) The config.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">check_config_has_application</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
     <span class="k">if</span> <span class="s1">&#39;profile&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="p">:</span>
         <span class="n">message</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;A profile section is required in your application.</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
             <span class="n">details</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
         <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span> <span class="n">message</span> <span class="p">)</span></div>
 
-<div class="viewcode-block" id="config_has_application"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.config_has_application">[docs]</a><span class="k">def</span> <span class="nf">config_has_application</span><span class="p">(</span> <span class="n">config</span> <span class="p">):</span>
+<div class="viewcode-block" id="config_has_application"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.config_has_application">[docs]</a><span class="k">def</span> <span class="nf">config_has_application</span><span class="p">(</span> <span class="n">config</span> <span class="p">):</span>
     <span class="k">return</span> <span class="s1">&#39;APPLICATION&#39;</span> <span class="ow">in</span> <span class="n">config</span></div>
 
-<div class="viewcode-block" id="get_cfg_param"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.get_cfg_param">[docs]</a><span class="k">def</span> <span class="nf">get_cfg_param</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">param_name</span><span class="p">,</span> <span class="n">default</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Search for param_name value in config.</span>
-<span class="sd">       If param_name is not in config, then return default,</span>
-<span class="sd">       else, return the found value</span>
+<div class="viewcode-block" id="get_cfg_param"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.get_cfg_param">[docs]</a><span class="k">def</span> <span class="nf">get_cfg_param</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">param_name</span><span class="p">,</span> <span class="n">default</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Search for param_name value in config.</span>
+<span class="sd">    If param_name is not in config, then return default,</span>
+<span class="sd">    else, return the found value</span>
 <span class="sd">       </span>
-<span class="sd">    :param config class &#39;common.pyconf.Config&#39;: The config.</span>
-<span class="sd">    :param param_name str: the name of the parameter to get the value</span>
-<span class="sd">    :param default str: The value to return if param_name is not in config</span>
-<span class="sd">    :return: see initial description of the function</span>
-<span class="sd">    :rtype: str</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param config: (Config) The config.</span>
+<span class="sd">    :param param_name: (str) the name of the parameter to get the value</span>
+<span class="sd">    :param default: (str) The value to return if param_name is not in config</span>
+<span class="sd">    :return: (str) see initial description of the function</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="n">param_name</span> <span class="ow">in</span> <span class="n">config</span><span class="p">:</span>
         <span class="k">return</span> <span class="n">config</span><span class="p">[</span><span class="n">param_name</span><span class="p">]</span>
     <span class="k">return</span> <span class="n">default</span></div>
 
-<div class="viewcode-block" id="get_base_path"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.get_base_path">[docs]</a><span class="k">def</span> <span class="nf">get_base_path</span><span class="p">(</span><span class="n">config</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Returns the path of the products base.</span>
+<div class="viewcode-block" id="get_base_path"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.get_base_path">[docs]</a><span class="k">def</span> <span class="nf">get_base_path</span><span class="p">(</span><span class="n">config</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Returns the path of the products base.</span>
 <span class="sd">    </span>
-<span class="sd">    :param config Config: The global Config instance.</span>
-<span class="sd">    :return: The path of the products base.</span>
-<span class="sd">    :rtype: str</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param config: (Config) The global Config instance.</span>
+<span class="sd">    :return: (str) The path of the products base.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="s2">&quot;base&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">LOCAL</span><span class="p">:</span>
-        <span class="n">local_file_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">salometoolsway</span><span class="p">,</span>
-                                      <span class="s2">&quot;data&quot;</span><span class="p">,</span>
-                                      <span class="s2">&quot;local.pyconf&quot;</span><span class="p">)</span>
+        <span class="n">local_file_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">salometoolsway</span><span class="p">,</span> <span class="s2">&quot;data&quot;</span><span class="p">,</span> <span class="s2">&quot;local.pyconf&quot;</span><span class="p">)</span>
         <span class="n">msg</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Please define a base path in the file </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="n">local_file_path</span>
         <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
         
-    <span class="n">base_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">base</span><span class="p">)</span>
-    
+    <span class="n">base_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">LOCAL</span><span class="o">.</span><span class="n">base</span><span class="p">)</span>   
     <span class="k">return</span> <span class="n">base_path</span></div>
 
-<div class="viewcode-block" id="get_launcher_name"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.get_launcher_name">[docs]</a><span class="k">def</span> <span class="nf">get_launcher_name</span><span class="p">(</span><span class="n">config</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Returns the name of salome launcher.</span>
+<div class="viewcode-block" id="get_launcher_name"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.get_launcher_name">[docs]</a><span class="k">def</span> <span class="nf">get_launcher_name</span><span class="p">(</span><span class="n">config</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Returns the name of salome launcher.</span>
 <span class="sd">    </span>
-<span class="sd">    :param config Config: The global Config instance.</span>
-<span class="sd">    :return: The name of salome launcher.</span>
-<span class="sd">    :rtype: str</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param config: (Config) The global Config instance.</span>
+<span class="sd">    :return: (str) The name of salome launcher.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">check_config_has_application</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>
     <span class="k">if</span> <span class="s1">&#39;profile&#39;</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span> <span class="ow">and</span> <span class="s1">&#39;launcher_name&#39;</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">profile</span><span class="p">:</span>
         <span class="n">launcher_name</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">profile</span><span class="o">.</span><span class="n">launcher_name</span>
 
     <span class="k">return</span> <span class="n">launcher_name</span></div>
 
-<div class="viewcode-block" id="get_log_path"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.get_log_path">[docs]</a><span class="k">def</span> <span class="nf">get_log_path</span><span class="p">(</span><span class="n">config</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Returns the path of the logs.</span>
+<div class="viewcode-block" id="get_log_path"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.get_log_path">[docs]</a><span class="k">def</span> <span class="nf">get_log_path</span><span class="p">(</span><span class="n">config</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Returns the path of the logs.</span>
 <span class="sd">    </span>
-<span class="sd">    :param config Config: The global Config instance.</span>
-<span class="sd">    :return: The path of the logs.</span>
-<span class="sd">    :rtype: str</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param config: (Config) The global Config instance.</span>
+<span class="sd">    :return: (str) The path of the logs.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="s2">&quot;log_dir&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">LOCAL</span><span class="p">:</span>
         <span class="n">local_file_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">salometoolsway</span><span class="p">,</span>
                                       <span class="s2">&quot;data&quot;</span><span class="p">,</span>
     
     <span class="k">return</span> <span class="n">log_dir_path</span></div>
 
-<div class="viewcode-block" id="get_salome_version"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.get_salome_version">[docs]</a><span class="k">def</span> <span class="nf">get_salome_version</span><span class="p">(</span><span class="n">config</span><span class="p">):</span>
+<div class="viewcode-block" id="get_salome_version"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.get_salome_version">[docs]</a><span class="k">def</span> <span class="nf">get_salome_version</span><span class="p">(</span><span class="n">config</span><span class="p">):</span>
     <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="p">,</span> <span class="s1">&#39;version_salome&#39;</span><span class="p">):</span>
         <span class="n">Version</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">version_salome</span>
     <span class="k">else</span><span class="p">:</span>
     <span class="n">VersionSalome</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">only_numbers</span><span class="p">(</span><span class="n">Version</span><span class="p">))</span>    
     <span class="k">return</span> <span class="n">VersionSalome</span></div>
 
-<div class="viewcode-block" id="only_numbers"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.only_numbers">[docs]</a><span class="k">def</span> <span class="nf">only_numbers</span><span class="p">(</span><span class="n">str_num</span><span class="p">):</span>
+<div class="viewcode-block" id="only_numbers"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.only_numbers">[docs]</a><span class="k">def</span> <span class="nf">only_numbers</span><span class="p">(</span><span class="n">str_num</span><span class="p">):</span>
     <span class="k">return</span> <span class="s1">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">nb</span> <span class="k">for</span> <span class="n">nb</span> <span class="ow">in</span> <span class="n">str_num</span> <span class="k">if</span> <span class="n">nb</span> <span class="ow">in</span> <span class="s1">&#39;0123456789&#39;</span><span class="p">]</span> <span class="ow">or</span> <span class="s1">&#39;0&#39;</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="read_config_from_a_file"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.read_config_from_a_file">[docs]</a><span class="k">def</span> <span class="nf">read_config_from_a_file</span><span class="p">(</span><span class="n">filePath</span><span class="p">):</span>
+<div class="viewcode-block" id="read_config_from_a_file"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.read_config_from_a_file">[docs]</a><span class="k">def</span> <span class="nf">read_config_from_a_file</span><span class="p">(</span><span class="n">filePath</span><span class="p">):</span>
     <span class="k">try</span><span class="p">:</span>
         <span class="n">cfg_file</span> <span class="o">=</span> <span class="n">pyconf</span><span class="o">.</span><span class="n">Config</span><span class="p">(</span><span class="n">filePath</span><span class="p">)</span>
     <span class="k">except</span> <span class="n">pyconf</span><span class="o">.</span><span class="n">ConfigError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
             <span class="p">{</span> <span class="s1">&#39;file&#39;</span><span class="p">:</span> <span class="n">filePath</span><span class="p">,</span> <span class="s1">&#39;error&#39;</span><span class="p">:</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)</span> <span class="p">}</span> <span class="p">)</span>
     <span class="k">return</span> <span class="n">cfg_file</span></div>
 
-<div class="viewcode-block" id="get_tmp_filename"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.get_tmp_filename">[docs]</a><span class="k">def</span> <span class="nf">get_tmp_filename</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
+<div class="viewcode-block" id="get_tmp_filename"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.get_tmp_filename">[docs]</a><span class="k">def</span> <span class="nf">get_tmp_filename</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
     <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">tmp_root</span><span class="p">):</span>
         <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">tmp_root</span><span class="p">)</span>
 
     <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">tmp_root</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="get_property_in_product_cfg"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.get_property_in_product_cfg">[docs]</a><span class="k">def</span> <span class="nf">get_property_in_product_cfg</span><span class="p">(</span><span class="n">product_cfg</span><span class="p">,</span> <span class="n">pprty</span><span class="p">):</span>
+<div class="viewcode-block" id="get_property_in_product_cfg"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.get_property_in_product_cfg">[docs]</a><span class="k">def</span> <span class="nf">get_property_in_product_cfg</span><span class="p">(</span><span class="n">product_cfg</span><span class="p">,</span> <span class="n">pprty</span><span class="p">):</span>
     <span class="k">if</span> <span class="ow">not</span> <span class="s2">&quot;properties&quot;</span> <span class="ow">in</span> <span class="n">product_cfg</span><span class="p">:</span>
         <span class="k">return</span> <span class="kc">None</span>
     <span class="k">if</span> <span class="ow">not</span> <span class="n">pprty</span> <span class="ow">in</span> <span class="n">product_cfg</span><span class="o">.</span><span class="n">properties</span><span class="p">:</span>
 <span class="c1">##############################################################################</span>
 <span class="c1"># logger and color utilities</span>
 <span class="c1">##############################################################################</span>
-<div class="viewcode-block" id="formatTuples"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.formatTuples">[docs]</a><span class="k">def</span> <span class="nf">formatTuples</span><span class="p">(</span><span class="n">tuples</span><span class="p">):</span>
+<div class="viewcode-block" id="formatTuples"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.formatTuples">[docs]</a><span class="k">def</span> <span class="nf">formatTuples</span><span class="p">(</span><span class="n">tuples</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    format &#39;label = value&#39; the tuples in a tabulated way.</span>
 <span class="sd">    </span>
-<span class="sd">    :param tuples list: The list of tuples to format</span>
-<span class="sd">    :return: The tabulated text. (mutiples lines)</span>
+<span class="sd">    :param tuples: (list) The list of tuples to format</span>
+<span class="sd">    :return: (str) The tabulated text. (as mutiples lines)</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="c1"># find the maximum length of the first value of the tuples</span>
     <span class="n">smax</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="nb">len</span><span class="p">(</span><span class="n">l</span><span class="p">[</span><span class="mi">0</span><span class="p">]),</span> <span class="n">tuples</span><span class="p">))</span>
     <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">tuples</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span> <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="c1"># for long list</span>
     <span class="k">return</span> <span class="n">msg</span></div>
     
-<div class="viewcode-block" id="formatValue"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.formatValue">[docs]</a><span class="k">def</span> <span class="nf">formatValue</span><span class="p">(</span><span class="n">label</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">suffix</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
+<div class="viewcode-block" id="formatValue"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.formatValue">[docs]</a><span class="k">def</span> <span class="nf">formatValue</span><span class="p">(</span><span class="n">label</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">suffix</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    format &#39;label = value&#39; with the info color</span>
 <span class="sd">    </span>
-<span class="sd">    :param label int: the label to print.</span>
-<span class="sd">    :param value str: the value to print.</span>
-<span class="sd">    :param suffix str: the optionnal suffix to add at the end.</span>
+<span class="sd">    :param label: (int) the label to print.</span>
+<span class="sd">    :param value: (str) the value to print.</span>
+<span class="sd">    :param suffix: (str) the optionnal suffix to add at the end.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;  </span><span class="si">%s</span><span class="s2"> = </span><span class="si">%s</span><span class="s2"> </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">label</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">suffix</span><span class="p">)</span>
     <span class="k">return</span> <span class="n">msg</span></div>
     
-<div class="viewcode-block" id="logger_info_tuples"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.logger_info_tuples">[docs]</a><span class="k">def</span> <span class="nf">logger_info_tuples</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">tuples</span><span class="p">):</span>
+<div class="viewcode-block" id="logger_info_tuples"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.logger_info_tuples">[docs]</a><span class="k">def</span> <span class="nf">logger_info_tuples</span><span class="p">(</span><span class="n">logger</span><span class="p">,</span> <span class="n">tuples</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    for convenience</span>
 <span class="sd">    format as formatTuples() and call logger.info()</span>
 <span class="c1"># for convenience    </span>
 <span class="n">_colors</span> <span class="o">=</span> <span class="s2">&quot;BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE&quot;</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot; &quot;</span><span class="p">)</span>
     
-<div class="viewcode-block" id="black"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.black">[docs]</a><span class="k">def</span> <span class="nf">black</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="black"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.black">[docs]</a><span class="k">def</span> <span class="nf">black</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
     <span class="k">return</span> <span class="s2">&quot;&lt;black&gt;&quot;</span><span class="o">+</span><span class="n">msg</span><span class="o">+</span><span class="s2">&quot;&lt;reset&gt;&quot;</span></div>
 
-<div class="viewcode-block" id="red"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.red">[docs]</a><span class="k">def</span> <span class="nf">red</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="red"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.red">[docs]</a><span class="k">def</span> <span class="nf">red</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
     <span class="k">return</span> <span class="s2">&quot;&lt;red&gt;&quot;</span><span class="o">+</span><span class="n">msg</span><span class="o">+</span><span class="s2">&quot;&lt;reset&gt;&quot;</span></div>
 
-<div class="viewcode-block" id="green"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.green">[docs]</a><span class="k">def</span> <span class="nf">green</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="green"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.green">[docs]</a><span class="k">def</span> <span class="nf">green</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
     <span class="k">return</span> <span class="s2">&quot;&lt;green&gt;&quot;</span><span class="o">+</span><span class="n">msg</span><span class="o">+</span><span class="s2">&quot;&lt;reset&gt;&quot;</span></div>
 
-<div class="viewcode-block" id="yellow"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.yellow">[docs]</a><span class="k">def</span> <span class="nf">yellow</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="yellow"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.yellow">[docs]</a><span class="k">def</span> <span class="nf">yellow</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
     <span class="k">return</span> <span class="s2">&quot;&lt;yellow&gt;&quot;</span><span class="o">+</span><span class="n">msg</span><span class="o">+</span><span class="s2">&quot;&lt;reset&gt;&quot;</span></div>
 
-<div class="viewcode-block" id="blue"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.blue">[docs]</a><span class="k">def</span> <span class="nf">blue</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="blue"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.blue">[docs]</a><span class="k">def</span> <span class="nf">blue</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
     <span class="k">return</span> <span class="s2">&quot;&lt;blue&gt;&quot;</span><span class="o">+</span><span class="n">msg</span><span class="o">+</span><span class="s2">&quot;&lt;reset&gt;&quot;</span></div>
 
-<div class="viewcode-block" id="magenta"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.magenta">[docs]</a><span class="k">def</span> <span class="nf">magenta</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="magenta"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.magenta">[docs]</a><span class="k">def</span> <span class="nf">magenta</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
     <span class="k">return</span> <span class="s2">&quot;&lt;magenta&gt;&quot;</span><span class="o">+</span><span class="n">msg</span><span class="o">+</span><span class="s2">&quot;&lt;reset&gt;&quot;</span></div>
 
-<div class="viewcode-block" id="cyan"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.cyan">[docs]</a><span class="k">def</span> <span class="nf">cyan</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="cyan"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.cyan">[docs]</a><span class="k">def</span> <span class="nf">cyan</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
     <span class="k">return</span> <span class="s2">&quot;&lt;cyan&gt;&quot;</span><span class="o">+</span><span class="n">msg</span><span class="o">+</span><span class="s2">&quot;&lt;reset&gt;&quot;</span></div>
 
-<div class="viewcode-block" id="white"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.white">[docs]</a><span class="k">def</span> <span class="nf">white</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="white"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.white">[docs]</a><span class="k">def</span> <span class="nf">white</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
     <span class="k">return</span> <span class="s2">&quot;&lt;white&gt;&quot;</span><span class="o">+</span><span class="n">msg</span><span class="o">+</span><span class="s2">&quot;&lt;reset&gt;&quot;</span></div>
 
-<div class="viewcode-block" id="normal"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.normal">[docs]</a><span class="k">def</span> <span class="nf">normal</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="normal"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.normal">[docs]</a><span class="k">def</span> <span class="nf">normal</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
     <span class="k">return</span> <span class="s2">&quot;&lt;normal&gt;&quot;</span><span class="o">+</span><span class="n">msg</span><span class="o">+</span><span class="s2">&quot;&lt;reset&gt;&quot;</span></div>
 
-<div class="viewcode-block" id="reset"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.reset">[docs]</a><span class="k">def</span> <span class="nf">reset</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="reset"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.reset">[docs]</a><span class="k">def</span> <span class="nf">reset</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
     <span class="k">return</span> <span class="s2">&quot;&lt;reset&gt;&quot;</span><span class="o">+</span><span class="n">msg</span></div>
 
-<div class="viewcode-block" id="info"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.info">[docs]</a><span class="k">def</span> <span class="nf">info</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="info"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.info">[docs]</a><span class="k">def</span> <span class="nf">info</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
     <span class="k">return</span> <span class="s2">&quot;&lt;info&gt;&quot;</span><span class="o">+</span><span class="n">msg</span><span class="o">+</span><span class="s2">&quot;&lt;reset&gt;&quot;</span></div>
 
-<div class="viewcode-block" id="header"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.header">[docs]</a><span class="k">def</span> <span class="nf">header</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="header"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.header">[docs]</a><span class="k">def</span> <span class="nf">header</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
     <span class="k">return</span> <span class="s2">&quot;&lt;info&gt;&quot;</span><span class="o">+</span><span class="n">msg</span><span class="o">+</span><span class="s2">&quot;&lt;reset&gt;&quot;</span></div>
 
-<div class="viewcode-block" id="label"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.label">[docs]</a><span class="k">def</span> <span class="nf">label</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="label"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.label">[docs]</a><span class="k">def</span> <span class="nf">label</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
     <span class="k">return</span> <span class="s2">&quot;&lt;label&gt;&quot;</span><span class="o">+</span><span class="n">msg</span><span class="o">+</span><span class="s2">&quot;&lt;reset&gt;&quot;</span></div>
 
-<div class="viewcode-block" id="success"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.success">[docs]</a><span class="k">def</span> <span class="nf">success</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="success"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.success">[docs]</a><span class="k">def</span> <span class="nf">success</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
     <span class="k">return</span> <span class="s2">&quot;&lt;success&gt;&quot;</span><span class="o">+</span><span class="n">msg</span><span class="o">+</span><span class="s2">&quot;&lt;reset&gt;&quot;</span></div>
 
-<div class="viewcode-block" id="warning"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.warning">[docs]</a><span class="k">def</span> <span class="nf">warning</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="warning"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.warning">[docs]</a><span class="k">def</span> <span class="nf">warning</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
     <span class="k">return</span> <span class="s2">&quot;&lt;warning&gt;&quot;</span><span class="o">+</span><span class="n">msg</span><span class="o">+</span><span class="s2">&quot;&lt;reset&gt;&quot;</span></div>
 
-<div class="viewcode-block" id="error"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.error">[docs]</a><span class="k">def</span> <span class="nf">error</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="error"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.error">[docs]</a><span class="k">def</span> <span class="nf">error</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
     <span class="k">return</span> <span class="s2">&quot;&lt;error&gt;&quot;</span><span class="o">+</span><span class="n">msg</span><span class="o">+</span><span class="s2">&quot;&lt;reset&gt;&quot;</span></div>
 
-<div class="viewcode-block" id="critical"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.critical">[docs]</a><span class="k">def</span> <span class="nf">critical</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
+<div class="viewcode-block" id="critical"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.critical">[docs]</a><span class="k">def</span> <span class="nf">critical</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
     <span class="k">return</span> <span class="s2">&quot;&lt;critical&gt;&quot;</span><span class="o">+</span><span class="n">msg</span><span class="o">+</span><span class="s2">&quot;&lt;reset&gt;&quot;</span></div>
 
 
 <span class="c1">##############################################################################</span>
 <span class="c1"># list and dict utilities</span>
 <span class="c1">##############################################################################</span>
-<div class="viewcode-block" id="deepcopy_list"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.deepcopy_list">[docs]</a><span class="k">def</span> <span class="nf">deepcopy_list</span><span class="p">(</span><span class="n">input_list</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot; Do a deep copy of a list</span>
+<div class="viewcode-block" id="deepcopy_list"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.deepcopy_list">[docs]</a><span class="k">def</span> <span class="nf">deepcopy_list</span><span class="p">(</span><span class="n">input_list</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Do a deep copy of a list</span>
 <span class="sd">    </span>
-<span class="sd">    :param input_list List: The list to copy</span>
-<span class="sd">    :return: The copy of the list</span>
-<span class="sd">    :rtype: List</span>
+<span class="sd">    :param input_list: (list) The list to copy</span>
+<span class="sd">    :return: (list) The copy of the list</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">res</span> <span class="o">=</span> <span class="p">[]</span>
     <span class="k">for</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">input_list</span><span class="p">:</span>
         <span class="n">res</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">elem</span><span class="p">)</span>
     <span class="k">return</span> <span class="n">res</span></div>
 
-<div class="viewcode-block" id="remove_item_from_list"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.remove_item_from_list">[docs]</a><span class="k">def</span> <span class="nf">remove_item_from_list</span><span class="p">(</span><span class="n">input_list</span><span class="p">,</span> <span class="n">item</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot; Remove all occurences of item from input_list</span>
+<div class="viewcode-block" id="remove_item_from_list"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.remove_item_from_list">[docs]</a><span class="k">def</span> <span class="nf">remove_item_from_list</span><span class="p">(</span><span class="n">input_list</span><span class="p">,</span> <span class="n">item</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Remove all occurences of item from input_list</span>
 <span class="sd">    </span>
-<span class="sd">    :param input_list List: The list to modify</span>
-<span class="sd">    :return: The without any item</span>
-<span class="sd">    :rtype: List</span>
+<span class="sd">    :param input_list: (list) The list to modify</span>
+<span class="sd">    :return: (list) The without any item</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">res</span> <span class="o">=</span> <span class="p">[]</span>
     <span class="k">for</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">input_list</span><span class="p">:</span>
         <span class="n">res</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">elem</span><span class="p">)</span>
     <span class="k">return</span> <span class="n">res</span></div>
 
-<div class="viewcode-block" id="merge_dicts"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.merge_dicts">[docs]</a><span class="k">def</span> <span class="nf">merge_dicts</span><span class="p">(</span><span class="o">*</span><span class="n">dict_args</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;</span>
+<div class="viewcode-block" id="merge_dicts"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.merge_dicts">[docs]</a><span class="k">def</span> <span class="nf">merge_dicts</span><span class="p">(</span><span class="o">*</span><span class="n">dict_args</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Given any number of dicts, shallow copy and merge into a new dict,</span>
 <span class="sd">    precedence goes to key value pairs in latter dicts.</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">result</span> <span class="o">=</span> <span class="p">{}</span>
     <span class="k">for</span> <span class="n">dictionary</span> <span class="ow">in</span> <span class="n">dict_args</span><span class="p">:</span>
         <span class="n">result</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">dictionary</span><span class="p">)</span>
 <span class="c1">##############################################################################</span>
 <span class="c1"># date utilities</span>
 <span class="c1">##############################################################################</span>
-<div class="viewcode-block" id="parse_date"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.parse_date">[docs]</a><span class="k">def</span> <span class="nf">parse_date</span><span class="p">(</span><span class="n">date</span><span class="p">):</span>
+<div class="viewcode-block" id="parse_date"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.parse_date">[docs]</a><span class="k">def</span> <span class="nf">parse_date</span><span class="p">(</span><span class="n">date</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;Transform YYYYMMDD_hhmmss into YYYY-MM-DD hh:mm:ss.</span>
 <span class="sd">    </span>
-<span class="sd">    :param date str: The date to transform</span>
-<span class="sd">    :return: The date in the new format</span>
-<span class="sd">    :rtype: str</span>
+<span class="sd">    :param date: (str) The date to transform</span>
+<span class="sd">    :return: (str) The date in the new format</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">date</span><span class="p">)</span> <span class="o">!=</span> <span class="mi">15</span><span class="p">:</span>
         <span class="k">return</span> <span class="n">date</span>
 <span class="c1">##############################################################################</span>
 
     
-<div class="viewcode-block" id="date_to_datetime"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.date_to_datetime">[docs]</a><span class="k">def</span> <span class="nf">date_to_datetime</span><span class="p">(</span><span class="n">date</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;\</span>
+<div class="viewcode-block" id="date_to_datetime"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.date_to_datetime">[docs]</a><span class="k">def</span> <span class="nf">date_to_datetime</span><span class="p">(</span><span class="n">date</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    From a string date in format YYYYMMDD_HHMMSS</span>
 <span class="sd">    returns list year, mon, day, hour, minutes, seconds </span>
 <span class="sd">    </span>
-<span class="sd">    :param date str: The date in format YYYYMMDD_HHMMSS</span>
-<span class="sd">    :return: the same date and time in separate variables.</span>
-<span class="sd">    :rtype: (str,str,str,str,str,str)</span>
+<span class="sd">    :param date: (str) The date in format YYYYMMDD_HHMMSS</span>
+<span class="sd">    :return: (tuple) as (str,str,str,str,str,str)</span>
+<span class="sd">      The same date and time in separate variables.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">Y</span> <span class="o">=</span> <span class="n">date</span><span class="p">[:</span><span class="mi">4</span><span class="p">]</span>
     <span class="n">m</span> <span class="o">=</span> <span class="n">date</span><span class="p">[</span><span class="mi">4</span><span class="p">:</span><span class="mi">6</span><span class="p">]</span>
     <span class="n">S</span> <span class="o">=</span> <span class="n">date</span><span class="p">[</span><span class="mi">13</span><span class="p">:</span><span class="mi">15</span><span class="p">]</span>
     <span class="k">return</span> <span class="n">Y</span><span class="p">,</span> <span class="n">m</span><span class="p">,</span> <span class="n">dd</span><span class="p">,</span> <span class="n">H</span><span class="p">,</span> <span class="n">M</span><span class="p">,</span> <span class="n">S</span></div>
 
-<div class="viewcode-block" id="timedelta_total_seconds"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.timedelta_total_seconds">[docs]</a><span class="k">def</span> <span class="nf">timedelta_total_seconds</span><span class="p">(</span><span class="n">timedelta</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;\</span>
+<div class="viewcode-block" id="timedelta_total_seconds"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.timedelta_total_seconds">[docs]</a><span class="k">def</span> <span class="nf">timedelta_total_seconds</span><span class="p">(</span><span class="n">timedelta</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Replace total_seconds from datetime module </span>
 <span class="sd">    in order to be compatible with old python versions</span>
 <span class="sd">    </span>
-<span class="sd">    :param timedelta datetime.timedelta: The delta between two dates</span>
-<span class="sd">    :return: The number of seconds corresponding to timedelta.</span>
-<span class="sd">    :rtype: float</span>
+<span class="sd">    :param timedelta: (datetime.timedelta) </span>
+<span class="sd">      The delta between two dates</span>
+<span class="sd">    :return: (float) </span>
+<span class="sd">      The number of seconds corresponding to timedelta.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">return</span> <span class="p">(</span>
         <span class="n">timedelta</span><span class="o">.</span><span class="n">microseconds</span> <span class="o">+</span> <span class="mf">0.0</span> <span class="o">+</span>
 <span class="n">_log_macro_command_file_expression</span> <span class="o">=</span> <span class="s2">&quot;^[0-9]</span><span class="si">{8}</span><span class="s2">_+[0-9]</span><span class="si">{6}</span><span class="s2">_+.*\.xml$&quot;</span>
 <span class="n">_log_all_command_file_expression</span> <span class="o">=</span> <span class="s2">&quot;^.*[0-9]</span><span class="si">{8}</span><span class="s2">_+[0-9]</span><span class="si">{6}</span><span class="s2">_+.*\.xml$&quot;</span>
 
-<div class="viewcode-block" id="show_command_log"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.show_command_log">[docs]</a><span class="k">def</span> <span class="nf">show_command_log</span><span class="p">(</span><span class="n">logFilePath</span><span class="p">,</span> <span class="n">cmd</span><span class="p">,</span> <span class="n">application</span><span class="p">,</span> <span class="n">notShownCommands</span><span class="p">):</span>
-    <span class="sd">&quot;&quot;&quot;\</span>
+<div class="viewcode-block" id="show_command_log"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.show_command_log">[docs]</a><span class="k">def</span> <span class="nf">show_command_log</span><span class="p">(</span><span class="n">logFilePath</span><span class="p">,</span> <span class="n">cmd</span><span class="p">,</span> <span class="n">application</span><span class="p">,</span> <span class="n">notShownCommands</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Used in updateHatXml. </span>
 <span class="sd">    Determine if the log xml file logFilePath </span>
 <span class="sd">    has to be shown or not in the hat log.</span>
 <span class="sd">    </span>
-<span class="sd">    :param logFilePath str: the path to the command xml log file</span>
-<span class="sd">    :param cmd str: the command of the log file</span>
-<span class="sd">    :param application str: the application passed as parameter </span>
-<span class="sd">                            to the salomeTools command</span>
-<span class="sd">    :param notShownCommands list: the list of commands </span>
-<span class="sd">                                  that are not shown by default</span>
-<span class="sd">    </span>
-<span class="sd">    :return: RCO.ReturnCode(&quot;OK&quot;) if cmd is not in notShownCommands and the application </span>
-<span class="sd">             in the log file corresponds to application</span>
-<span class="sd">             ReturnCode value is tuple (appliLog, launched_cmd)</span>
+<span class="sd">    :param logFilePath: (str) the path to the command xml log file</span>
+<span class="sd">    :param cmd: (str) the command of the log file</span>
+<span class="sd">    :param application: (str) </span>
+<span class="sd">      The application passed as parameter to the salomeTools command</span>
+<span class="sd">    :param notShownCommands: (list) </span>
+<span class="sd">      The list of commands that are not shown by default</span>
+<span class="sd">    :return: (RCO.ReturnCode)</span>
+<span class="sd">      OK if cmd is not in notShownCommands and the application </span>
+<span class="sd">      in the log file corresponds to application</span>
+<span class="sd">      ReturnCode value is tuple (appliLog, launched_cmd)</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="c1"># When the command is not in notShownCommands, no need to go further :</span>
     <span class="c1"># Do not show</span>
         
     <span class="k">return</span> <span class="n">RCO</span><span class="o">.</span><span class="n">ReturnCode</span><span class="p">(</span><span class="s2">&quot;KO&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="p">(</span><span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">))</span></div>
 
-<div class="viewcode-block" id="list_log_file"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.list_log_file">[docs]</a><span class="k">def</span> <span class="nf">list_log_file</span><span class="p">(</span><span class="n">dirPath</span><span class="p">,</span> <span class="n">expression</span><span class="p">):</span>
+<div class="viewcode-block" id="list_log_file"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.list_log_file">[docs]</a><span class="k">def</span> <span class="nf">list_log_file</span><span class="p">(</span><span class="n">dirPath</span><span class="p">,</span> <span class="n">expression</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;Find all files corresponding to expression in dirPath</span>
 <span class="sd">    </span>
-<span class="sd">    :param dirPath str: the directory where to search the files</span>
-<span class="sd">    :param expression str: the regular expression of files to find</span>
-<span class="sd">    :return: the list of files path and informations about it</span>
-<span class="sd">    :rtype: list</span>
+<span class="sd">    :param dirPath: (str) the directory where to search the files</span>
+<span class="sd">    :param expression: (str) the regular expression of files to find</span>
+<span class="sd">    :return: (list) the list of files path and informations about it</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">lRes</span> <span class="o">=</span> <span class="p">[]</span>
     <span class="k">for</span> <span class="n">fileName</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">dirPath</span><span class="p">):</span>
                          <span class="n">host</span><span class="p">))</span>
     <span class="k">return</span> <span class="n">lRes</span></div>
 
-<div class="viewcode-block" id="update_hat_xml"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.utilsSat.update_hat_xml">[docs]</a><span class="k">def</span> <span class="nf">update_hat_xml</span><span class="p">(</span><span class="n">logDir</span><span class="p">,</span> <span class="n">application</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">notShownCommands</span> <span class="o">=</span> <span class="p">[]):</span>
-    <span class="sd">&quot;&quot;&quot;\</span>
+<div class="viewcode-block" id="update_hat_xml"><a class="viewcode-back" href="../../apidoc_src/src.html#src.utilsSat.update_hat_xml">[docs]</a><span class="k">def</span> <span class="nf">update_hat_xml</span><span class="p">(</span><span class="n">logDir</span><span class="p">,</span> <span class="n">application</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">notShownCommands</span> <span class="o">=</span> <span class="p">[]):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Create the xml file in logDir that contain all the xml file </span>
 <span class="sd">    and have a name like YYYYMMDD_HHMMSS_namecmd.xml</span>
 <span class="sd">    </span>
-<span class="sd">    :param logDir str: the directory to parse</span>
-<span class="sd">    :param application str: the name of the application if there is any</span>
+<span class="sd">    :param logDir: (str) the directory to parse</span>
+<span class="sd">    :param application: (str) the name of the application if there is any</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="c1"># Create an instance of XmlLogFile class to create hat.xml file</span>
     
index 066b55503fc99138bd86668a242ab6e9c5a5ce28..3881e9e17dff0b1f5cf1f64a39664c74e6b4d87b 100644 (file)
@@ -62,7 +62,8 @@
 <span class="c1">#  License along with this library; if not, write to the Free Software</span>
 <span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
 
-<span class="sd">&quot;&quot;&quot;Utilities to read xml logging files</span>
+<span class="sd">&quot;&quot;&quot;\</span>
+<span class="sd">Utilities to read xml logging files</span>
 
 <span class="sd">usage:</span>
 <span class="sd">  &gt;&gt; import src.xmlManager as XMLMGR</span>
 <span class="kn">import</span> <span class="nn">src.ElementTree</span> <span class="k">as</span> <span class="nn">etree</span>
 <span class="kn">import</span> <span class="nn">src.utilsSat</span> <span class="k">as</span> <span class="nn">UTS</span>
 
-<div class="viewcode-block" id="XmlLogFile"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.xmlManager.XmlLogFile">[docs]</a><span class="k">class</span> <span class="nc">XmlLogFile</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Class to manage writing in salomeTools xml log file</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<div class="viewcode-block" id="XmlLogFile"><a class="viewcode-back" href="../../apidoc_src/src.html#src.xmlManager.XmlLogFile">[docs]</a><span class="k">class</span> <span class="nc">XmlLogFile</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;\</span>
+<span class="sd">    Class to manage writing in salomeTools xml log file</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filePath</span><span class="p">,</span> <span class="n">rootname</span><span class="p">,</span> <span class="n">attrib</span> <span class="o">=</span> <span class="p">{}):</span>
-        <span class="sd">&#39;&#39;&#39;Initialization</span>
+        <span class="sd">&quot;&quot;&quot;Initialization</span>
 <span class="sd">        </span>
-<span class="sd">        :param filePath str: The path to the file where to write the log file</span>
-<span class="sd">        :param rootname str: The name of the root node of the xml file</span>
-<span class="sd">        :param attrib dict: the dictionary that contains the attributes </span>
-<span class="sd">                            and value of the root node</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param filePath: (str) The path to the file where to write the log file</span>
+<span class="sd">        :param rootname: (str) The name of the root node of the xml file</span>
+<span class="sd">        :param attrib: (dict) </span>
+<span class="sd">          The dictionary that contains the attributes and value of the root node</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="c1"># Initialize the filePath and ensure that the directory </span>
         <span class="c1"># that contain the file exists (make it if necessary)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">logFile</span> <span class="o">=</span> <span class="n">filePath</span>
         <span class="c1"># Initialize the field that contain the xml in memory</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">xmlroot</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="n">rootname</span><span class="p">,</span> <span class="n">attrib</span> <span class="o">=</span> <span class="n">attrib</span><span class="p">)</span>
     
-<div class="viewcode-block" id="XmlLogFile.write_tree"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.xmlManager.XmlLogFile.write_tree">[docs]</a>    <span class="k">def</span> <span class="nf">write_tree</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">stylesheet</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">file_path</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Write the xml tree in the log file path. Add the stylesheet if asked.</span>
+<div class="viewcode-block" id="XmlLogFile.write_tree"><a class="viewcode-back" href="../../apidoc_src/src.html#src.xmlManager.XmlLogFile.write_tree">[docs]</a>    <span class="k">def</span> <span class="nf">write_tree</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">stylesheet</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">file_path</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Write the xml tree in the log file path. Add the stylesheet if asked.</span>
 <span class="sd">        </span>
-<span class="sd">        :param stylesheet str: The stylesheet to apply to the xml file</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param stylesheet: (str) The stylesheet to apply to the xml file</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">log_file_path</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">logFile</span>
         <span class="k">if</span> <span class="n">file_path</span><span class="p">:</span>
             <span class="n">log_file_path</span> <span class="o">=</span> <span class="n">file_path</span>
         <span class="k">except</span> <span class="ne">IOError</span><span class="p">:</span>
             <span class="k">pass</span>  </div>
         
-<div class="viewcode-block" id="XmlLogFile.add_simple_node"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.xmlManager.XmlLogFile.add_simple_node">[docs]</a>    <span class="k">def</span> <span class="nf">add_simple_node</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_name</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">attrib</span><span class="o">=</span><span class="p">{}):</span>
-        <span class="sd">&#39;&#39;&#39;Add a node with some attibutes and text to the root node.</span>
+<div class="viewcode-block" id="XmlLogFile.add_simple_node"><a class="viewcode-back" href="../../apidoc_src/src.html#src.xmlManager.XmlLogFile.add_simple_node">[docs]</a>    <span class="k">def</span> <span class="nf">add_simple_node</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_name</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">attrib</span><span class="o">=</span><span class="p">{}):</span>
+        <span class="sd">&quot;&quot;&quot;Add a node with some attibutes and text to the root node.</span>
 <span class="sd">        </span>
-<span class="sd">        :param node_name str: the name of the node to add</span>
-<span class="sd">        :param text str: the text of the node</span>
-<span class="sd">        :param attrib dict: the dictionary containing the </span>
-<span class="sd">                            attribute of the new node</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param node_name: (str) the name of the node to add</span>
+<span class="sd">        :param text: (str) the text of the node</span>
+<span class="sd">        :param attrib: (dict)</span>
+<span class="sd">          The dictionary containing the attribute of the new node</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">n</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="n">node_name</span><span class="p">,</span> <span class="n">attrib</span><span class="o">=</span><span class="n">attrib</span><span class="p">)</span>
         <span class="n">n</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="n">text</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">xmlroot</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
         <span class="k">return</span> <span class="n">n</span></div>
     
-<div class="viewcode-block" id="XmlLogFile.append_node_text"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.xmlManager.XmlLogFile.append_node_text">[docs]</a>    <span class="k">def</span> <span class="nf">append_node_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_name</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Append a new text to the node that has node_name as name</span>
+<div class="viewcode-block" id="XmlLogFile.append_node_text"><a class="viewcode-back" href="../../apidoc_src/src.html#src.xmlManager.XmlLogFile.append_node_text">[docs]</a>    <span class="k">def</span> <span class="nf">append_node_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_name</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Append a new text to the node that has node_name as name</span>
 <span class="sd">        </span>
-<span class="sd">        :param node_name str: The name of the node on which append text</span>
-<span class="sd">        :param text str: The text to append</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param node_name: (str) The name of the node on which append text</span>
+<span class="sd">        :param text: (str) The text to append</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="c1"># find the corresponding node</span>
         <span class="k">for</span> <span class="n">field</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">xmlroot</span><span class="p">:</span>
             <span class="k">if</span> <span class="n">field</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="n">node_name</span><span class="p">:</span>
                 <span class="c1"># append the text</span>
                 <span class="n">field</span><span class="o">.</span><span class="n">text</span> <span class="o">+=</span> <span class="n">text</span></div>
 
-<div class="viewcode-block" id="XmlLogFile.append_node_attrib"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.xmlManager.XmlLogFile.append_node_attrib">[docs]</a>    <span class="k">def</span> <span class="nf">append_node_attrib</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_name</span><span class="p">,</span> <span class="n">attrib</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Append a new attributes to the node that has node_name as name</span>
+<div class="viewcode-block" id="XmlLogFile.append_node_attrib"><a class="viewcode-back" href="../../apidoc_src/src.html#src.xmlManager.XmlLogFile.append_node_attrib">[docs]</a>    <span class="k">def</span> <span class="nf">append_node_attrib</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_name</span><span class="p">,</span> <span class="n">attrib</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Append a new attributes to the node that has node_name as name</span>
 <span class="sd">        </span>
-<span class="sd">        :param node_name str: The name of the node on which append text</span>
-<span class="sd">        :param attrib dixt: The attrib to append</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param node_name: (str) The name of the node on which append text</span>
+<span class="sd">        :param attrib: (dict) The attrib to append</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">xmlroot</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">node_name</span><span class="p">)</span><span class="o">.</span><span class="n">attrib</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">attrib</span><span class="p">)</span></div></div>
 
-<div class="viewcode-block" id="ReadXmlFile"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.xmlManager.ReadXmlFile">[docs]</a><span class="k">class</span> <span class="nc">ReadXmlFile</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Class to manage reading of an xml log file</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<div class="viewcode-block" id="ReadXmlFile"><a class="viewcode-back" href="../../apidoc_src/src.html#src.xmlManager.ReadXmlFile">[docs]</a><span class="k">class</span> <span class="nc">ReadXmlFile</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Class to manage reading of an xml log file</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filePath</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Initialization</span>
+        <span class="sd">&quot;&quot;&quot;Initialization</span>
 <span class="sd">        </span>
-<span class="sd">        :param filePath str: The xml file to be read</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param filePath: (str) The xml file to be read</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">filePath</span> <span class="o">=</span> <span class="n">filePath</span>
         <span class="n">etree_inst</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">filePath</span><span class="p">)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">xmlroot</span> <span class="o">=</span> <span class="n">etree_inst</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">filePath</span><span class="p">)</span>
 
-<div class="viewcode-block" id="ReadXmlFile.getRootAttrib"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.xmlManager.ReadXmlFile.getRootAttrib">[docs]</a>    <span class="k">def</span> <span class="nf">getRootAttrib</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Get the attibutes of the self.xmlroot</span>
+<div class="viewcode-block" id="ReadXmlFile.getRootAttrib"><a class="viewcode-back" href="../../apidoc_src/src.html#src.xmlManager.ReadXmlFile.getRootAttrib">[docs]</a>    <span class="k">def</span> <span class="nf">getRootAttrib</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Get the attibutes of the self.xmlroot</span>
 <span class="sd">        </span>
-<span class="sd">        :return: The attributes of the root node</span>
-<span class="sd">        :rtype: dict</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :return: (dict) The attributes of the root node</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">xmlroot</span><span class="o">.</span><span class="n">attrib</span></div>
     
-<div class="viewcode-block" id="ReadXmlFile.get_attrib"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.xmlManager.ReadXmlFile.get_attrib">[docs]</a>    <span class="k">def</span> <span class="nf">get_attrib</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_name</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Get the attibutes of the node node_name in self.xmlroot</span>
+<div class="viewcode-block" id="ReadXmlFile.get_attrib"><a class="viewcode-back" href="../../apidoc_src/src.html#src.xmlManager.ReadXmlFile.get_attrib">[docs]</a>    <span class="k">def</span> <span class="nf">get_attrib</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_name</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Get the attibutes of the node node_name in self.xmlroot</span>
 <span class="sd">        </span>
-<span class="sd">        :param node_name str: the name of the node</span>
-<span class="sd">        :return: the attibutes of the node node_name in self.xmlroot</span>
-<span class="sd">        :rtype: dict</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param node_name: (str) the name of the node</span>
+<span class="sd">        :return: (dict) the attibutes of the node node_name in self.xmlroot</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">attrib</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">xmlroot</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">node_name</span><span class="p">)</span><span class="o">.</span><span class="n">attrib</span>
         <span class="c1"># To be python 3 compatible, convert bytes to str if there are any</span>
         <span class="n">fixedAttrib</span> <span class="o">=</span> <span class="p">{}</span>
             <span class="n">fixedAttrib</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
         <span class="k">return</span> <span class="n">fixedAttrib</span></div>
     
-<div class="viewcode-block" id="ReadXmlFile.get_node_text"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.xmlManager.ReadXmlFile.get_node_text">[docs]</a>    <span class="k">def</span> <span class="nf">get_node_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">):</span>
-        <span class="sd">&#39;&#39;&#39;Get the text of the first node that has name </span>
-<span class="sd">           that corresponds to the parameter node</span>
+<div class="viewcode-block" id="ReadXmlFile.get_node_text"><a class="viewcode-back" href="../../apidoc_src/src.html#src.xmlManager.ReadXmlFile.get_node_text">[docs]</a>    <span class="k">def</span> <span class="nf">get_node_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Get the text of the first node that has name </span>
+<span class="sd">        that corresponds to the parameter node</span>
 <span class="sd">        </span>
-<span class="sd">        :param node str: the name of the node from which get the text</span>
-<span class="sd">        :return: the text of the first node that has name </span>
-<span class="sd">                 that corresponds to the parameter node</span>
-<span class="sd">        :rtype: str</span>
-<span class="sd">        &#39;&#39;&#39;</span>
+<span class="sd">        :param node: (str) the name of the node from which get the text</span>
+<span class="sd">        :return: (str) </span>
+<span class="sd">          The text of the first node that has name </span>
+<span class="sd">          that corresponds to the parameter node</span>
+<span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">xmlroot</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">node</span><span class="p">)</span><span class="o">.</span><span class="n">text</span></div></div>
     
-<div class="viewcode-block" id="add_simple_node"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.xmlManager.add_simple_node">[docs]</a><span class="k">def</span> <span class="nf">add_simple_node</span><span class="p">(</span><span class="n">root_node</span><span class="p">,</span> <span class="n">node_name</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">attrib</span><span class="o">=</span><span class="p">{}):</span>
-    <span class="sd">&#39;&#39;&#39;Add a node with some attibutes and text to the root node.</span>
+<div class="viewcode-block" id="add_simple_node"><a class="viewcode-back" href="../../apidoc_src/src.html#src.xmlManager.add_simple_node">[docs]</a><span class="k">def</span> <span class="nf">add_simple_node</span><span class="p">(</span><span class="n">root_node</span><span class="p">,</span> <span class="n">node_name</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">attrib</span><span class="o">=</span><span class="p">{}):</span>
+    <span class="sd">&quot;&quot;&quot;Add a node with some attibutes and text to the root node.</span>
 
-<span class="sd">    :param root_node etree.Element: the Etree element where to add the new node    </span>
-<span class="sd">    :param node_name str: the name of the node to add</span>
-<span class="sd">    :param text str: the text of the node</span>
-<span class="sd">    :param attrib dict: the dictionary containing the </span>
-<span class="sd">                        attribute of the new node</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param root_node: (etree.Element) </span>
+<span class="sd">      the Etree element where to add the new node    </span>
+<span class="sd">    :param node_name: (str) the name of the node to add</span>
+<span class="sd">    :param text: (str) the text of the node</span>
+<span class="sd">    :param attrib: (dict) </span>
+<span class="sd">      the dictionary containing the attribute(s) of the new node</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">n</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">Element</span><span class="p">(</span><span class="n">node_name</span><span class="p">,</span> <span class="n">attrib</span><span class="o">=</span><span class="n">attrib</span><span class="p">)</span>
     <span class="n">n</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="n">text</span>
     <span class="n">root_node</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
     <span class="k">return</span> <span class="n">n</span></div>
 
-<div class="viewcode-block" id="append_node_attrib"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.xmlManager.append_node_attrib">[docs]</a><span class="k">def</span> <span class="nf">append_node_attrib</span><span class="p">(</span><span class="n">root_node</span><span class="p">,</span> <span class="n">attrib</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Append a new attributes to the node that has node_name as name</span>
+<div class="viewcode-block" id="append_node_attrib"><a class="viewcode-back" href="../../apidoc_src/src.html#src.xmlManager.append_node_attrib">[docs]</a><span class="k">def</span> <span class="nf">append_node_attrib</span><span class="p">(</span><span class="n">root_node</span><span class="p">,</span> <span class="n">attrib</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Append a new attributes to the node that has node_name as name</span>
 <span class="sd">    </span>
-<span class="sd">    :param root_node etree.Element: the Etree element </span>
-<span class="sd">                                    where to append the new attibutes</span>
-<span class="sd">    :param attrib dixt: The attrib to append</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param root_node: (etree.Element)</span>
+<span class="sd">      the Etree element where to append the new attibutes</span>
+<span class="sd">    :param attrib: (dict) The attrib to append</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">root_node</span><span class="o">.</span><span class="n">attrib</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">attrib</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="find_node_by_attrib"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.xmlManager.find_node_by_attrib">[docs]</a><span class="k">def</span> <span class="nf">find_node_by_attrib</span><span class="p">(</span><span class="n">xmlroot</span><span class="p">,</span> <span class="n">name_node</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
-    <span class="sd">&#39;&#39;&#39;Find the nfirst ode from xmlroot that has name name_node and that has in </span>
-<span class="sd">       its attributes {key : value}. Return the node</span>
+<div class="viewcode-block" id="find_node_by_attrib"><a class="viewcode-back" href="../../apidoc_src/src.html#src.xmlManager.find_node_by_attrib">[docs]</a><span class="k">def</span> <span class="nf">find_node_by_attrib</span><span class="p">(</span><span class="n">xmlroot</span><span class="p">,</span> <span class="n">name_node</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Find the first node from xmlroot that has name name_node </span>
+<span class="sd">    and that has in its attributes {key : value}. </span>
+<span class="sd">    Return the node</span>
 <span class="sd">    </span>
-<span class="sd">    :param xmlroot etree.Element: the Etree element where to search</span>
-<span class="sd">    :param name_node str: the name of node to search</span>
-<span class="sd">    :param key str: the key to search</span>
-<span class="sd">    :param value str: the value to search</span>
-<span class="sd">    :return: the found node</span>
-<span class="sd">    :rtype: xmlroot etree.Element</span>
-<span class="sd">    &#39;&#39;&#39;</span>
+<span class="sd">    :param xmlroot: (etree.Element) </span>
+<span class="sd">      the Etree element where to search</span>
+<span class="sd">    :param name_node: (str) the name of node to search</span>
+<span class="sd">    :param key: (str) the key to search</span>
+<span class="sd">    :param value: (str) the value to search</span>
+<span class="sd">    :return: (etree.Element) the found node</span>
+<span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">l_nodes</span> <span class="o">=</span>  <span class="n">xmlroot</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="n">name_node</span><span class="p">)</span>
     <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">l_nodes</span><span class="p">:</span>
         <span class="k">if</span> <span class="n">key</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">attrib</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
     <span class="k">return</span> <span class="kc">None</span></div>
     
 
-<div class="viewcode-block" id="write_report"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.xmlManager.write_report">[docs]</a><span class="k">def</span> <span class="nf">write_report</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">xmlroot</span><span class="p">,</span> <span class="n">stylesheet</span><span class="p">):</span>
+<div class="viewcode-block" id="write_report"><a class="viewcode-back" href="../../apidoc_src/src.html#src.xmlManager.write_report">[docs]</a><span class="k">def</span> <span class="nf">write_report</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">xmlroot</span><span class="p">,</span> <span class="n">stylesheet</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;Writes a report file from a XML tree.</span>
 <span class="sd">    </span>
-<span class="sd">    :param filename str: The path to the file to create</span>
-<span class="sd">    :param xmlroot etree.Element: the Etree element to write to the file</span>
-<span class="sd">    :param stylesheet str: The stylesheet to add to the begin of the file</span>
+<span class="sd">    :param filename: (str) The path to the file to create</span>
+<span class="sd">    :param xmlroot: (etree.Element) the Etree element to write to the file</span>
+<span class="sd">    :param stylesheet: (str) The stylesheet to add to the begin of the file</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">filename</span><span class="p">)):</span>
         <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">filename</span><span class="p">))</span>
diff --git a/doc/build/html/_sources/apidoc_commands/commands.txt b/doc/build/html/_sources/apidoc_commands/commands.txt
new file mode 100644 (file)
index 0000000..d9a4c75
--- /dev/null
@@ -0,0 +1,222 @@
+commands package
+================
+
+Submodules
+----------
+
+commands.application module
+---------------------------
+
+.. automodule:: commands.application
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.check module
+---------------------
+
+.. automodule:: commands.check
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.clean module
+---------------------
+
+.. automodule:: commands.clean
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.compile module
+-----------------------
+
+.. automodule:: commands.compile
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.config module
+----------------------
+
+.. automodule:: commands.config
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.configure module
+-------------------------
+
+.. automodule:: commands.configure
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.environ module
+-----------------------
+
+.. automodule:: commands.environ
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.find_duplicates module
+-------------------------------
+
+.. automodule:: commands.find_duplicates
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.generate module
+------------------------
+
+.. automodule:: commands.generate
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.init module
+--------------------
+
+.. automodule:: commands.init
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.job module
+-------------------
+
+.. automodule:: commands.job
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.jobs module
+--------------------
+
+.. automodule:: commands.jobs
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.launcher module
+------------------------
+
+.. automodule:: commands.launcher
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.log module
+-------------------
+
+.. automodule:: commands.log
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.make module
+--------------------
+
+.. automodule:: commands.make
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.makeinstall module
+---------------------------
+
+.. automodule:: commands.makeinstall
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.package module
+-----------------------
+
+.. automodule:: commands.package
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.patch module
+---------------------
+
+.. automodule:: commands.patch
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.prepare module
+-----------------------
+
+.. automodule:: commands.prepare
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.profile module
+-----------------------
+
+.. automodule:: commands.profile
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.run module
+-------------------
+
+.. automodule:: commands.run
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.script module
+----------------------
+
+.. automodule:: commands.script
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.shell module
+---------------------
+
+.. automodule:: commands.shell
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.source module
+----------------------
+
+.. automodule:: commands.source
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.template module
+------------------------
+
+.. automodule:: commands.template
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.test module
+--------------------
+
+.. automodule:: commands.test
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: commands
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/doc/build/html/_sources/apidoc_commands/modules.txt b/doc/build/html/_sources/apidoc_commands/modules.txt
new file mode 100644 (file)
index 0000000..6a11c3d
--- /dev/null
@@ -0,0 +1,7 @@
+commands
+========
+
+.. toctree::
+   :maxdepth: 4
+
+   commands
diff --git a/doc/build/html/_sources/apidoc_src/modules.txt b/doc/build/html/_sources/apidoc_src/modules.txt
new file mode 100644 (file)
index 0000000..e9ff8ac
--- /dev/null
@@ -0,0 +1,7 @@
+src
+===
+
+.. toctree::
+   :maxdepth: 4
+
+   src
diff --git a/doc/build/html/_sources/apidoc_src/src.colorama.txt b/doc/build/html/_sources/apidoc_src/src.colorama.txt
new file mode 100644 (file)
index 0000000..65cd0c2
--- /dev/null
@@ -0,0 +1,54 @@
+src.colorama package
+====================
+
+Submodules
+----------
+
+src.colorama.ansi module
+------------------------
+
+.. automodule:: src.colorama.ansi
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.colorama.ansitowin32 module
+-------------------------------
+
+.. automodule:: src.colorama.ansitowin32
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.colorama.initialise module
+------------------------------
+
+.. automodule:: src.colorama.initialise
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.colorama.win32 module
+-------------------------
+
+.. automodule:: src.colorama.win32
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.colorama.winterm module
+---------------------------
+
+.. automodule:: src.colorama.winterm
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: src.colorama
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/doc/build/html/_sources/apidoc_src/src.example.txt b/doc/build/html/_sources/apidoc_src/src.example.txt
new file mode 100644 (file)
index 0000000..1000632
--- /dev/null
@@ -0,0 +1,30 @@
+src.example package
+===================
+
+Submodules
+----------
+
+src.example.essai_logging_1 module
+----------------------------------
+
+.. automodule:: src.example.essai_logging_1
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.example.essai_logging_2 module
+----------------------------------
+
+.. automodule:: src.example.essai_logging_2
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: src.example
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/doc/build/html/_sources/apidoc_src/src.txt b/doc/build/html/_sources/apidoc_src/src.txt
new file mode 100644 (file)
index 0000000..fd0d004
--- /dev/null
@@ -0,0 +1,206 @@
+src package
+===========
+
+Subpackages
+-----------
+
+.. toctree::
+
+    src.colorama
+    src.example
+
+Submodules
+----------
+
+src.ElementTree module
+----------------------
+
+.. automodule:: src.ElementTree
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.architecture module
+-----------------------
+
+.. automodule:: src.architecture
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.catchAll module
+-------------------
+
+.. automodule:: src.catchAll
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.coloringSat module
+----------------------
+
+.. automodule:: src.coloringSat
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.compilation module
+----------------------
+
+.. automodule:: src.compilation
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.configManager module
+------------------------
+
+.. automodule:: src.configManager
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.debug module
+----------------
+
+.. automodule:: src.debug
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.environment module
+----------------------
+
+.. automodule:: src.environment
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.environs module
+-------------------
+
+.. automodule:: src.environs
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.exceptionSat module
+-----------------------
+
+.. automodule:: src.exceptionSat
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.fileEnviron module
+----------------------
+
+.. automodule:: src.fileEnviron
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.fork module
+---------------
+
+.. automodule:: src.fork
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.loggingSat module
+---------------------
+
+.. automodule:: src.loggingSat
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.options module
+------------------
+
+.. automodule:: src.options
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.product module
+------------------
+
+.. automodule:: src.product
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.pyconf module
+-----------------
+
+.. automodule:: src.pyconf
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.returnCode module
+---------------------
+
+.. automodule:: src.returnCode
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.salomeTools module
+----------------------
+
+.. automodule:: src.salomeTools
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.system module
+-----------------
+
+.. automodule:: src.system
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.template module
+-------------------
+
+.. automodule:: src.template
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.test_module module
+----------------------
+
+.. automodule:: src.test_module
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.utilsSat module
+-------------------
+
+.. automodule:: src.utilsSat
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.xmlManager module
+---------------------
+
+.. automodule:: src.xmlManager
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: src
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/doc/build/html/_sources/commands/apidoc/modules.txt b/doc/build/html/_sources/commands/apidoc/modules.txt
deleted file mode 100644 (file)
index e9ff8ac..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-src
-===
-
-.. toctree::
-   :maxdepth: 4
-
-   src
diff --git a/doc/build/html/_sources/commands/apidoc/src.colorama.txt b/doc/build/html/_sources/commands/apidoc/src.colorama.txt
deleted file mode 100644 (file)
index 65cd0c2..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-src.colorama package
-====================
-
-Submodules
-----------
-
-src.colorama.ansi module
-------------------------
-
-.. automodule:: src.colorama.ansi
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.colorama.ansitowin32 module
--------------------------------
-
-.. automodule:: src.colorama.ansitowin32
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.colorama.initialise module
-------------------------------
-
-.. automodule:: src.colorama.initialise
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.colorama.win32 module
--------------------------
-
-.. automodule:: src.colorama.win32
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.colorama.winterm module
----------------------------
-
-.. automodule:: src.colorama.winterm
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-
-Module contents
----------------
-
-.. automodule:: src.colorama
-    :members:
-    :undoc-members:
-    :show-inheritance:
diff --git a/doc/build/html/_sources/commands/apidoc/src.example.txt b/doc/build/html/_sources/commands/apidoc/src.example.txt
deleted file mode 100644 (file)
index 1000632..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-src.example package
-===================
-
-Submodules
-----------
-
-src.example.essai_logging_1 module
-----------------------------------
-
-.. automodule:: src.example.essai_logging_1
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.example.essai_logging_2 module
-----------------------------------
-
-.. automodule:: src.example.essai_logging_2
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-
-Module contents
----------------
-
-.. automodule:: src.example
-    :members:
-    :undoc-members:
-    :show-inheritance:
diff --git a/doc/build/html/_sources/commands/apidoc/src.txt b/doc/build/html/_sources/commands/apidoc/src.txt
deleted file mode 100644 (file)
index fd0d004..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-src package
-===========
-
-Subpackages
------------
-
-.. toctree::
-
-    src.colorama
-    src.example
-
-Submodules
-----------
-
-src.ElementTree module
-----------------------
-
-.. automodule:: src.ElementTree
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.architecture module
------------------------
-
-.. automodule:: src.architecture
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.catchAll module
--------------------
-
-.. automodule:: src.catchAll
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.coloringSat module
-----------------------
-
-.. automodule:: src.coloringSat
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.compilation module
-----------------------
-
-.. automodule:: src.compilation
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.configManager module
-------------------------
-
-.. automodule:: src.configManager
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.debug module
-----------------
-
-.. automodule:: src.debug
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.environment module
-----------------------
-
-.. automodule:: src.environment
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.environs module
--------------------
-
-.. automodule:: src.environs
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.exceptionSat module
------------------------
-
-.. automodule:: src.exceptionSat
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.fileEnviron module
-----------------------
-
-.. automodule:: src.fileEnviron
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.fork module
----------------
-
-.. automodule:: src.fork
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.loggingSat module
----------------------
-
-.. automodule:: src.loggingSat
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.options module
-------------------
-
-.. automodule:: src.options
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.product module
-------------------
-
-.. automodule:: src.product
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.pyconf module
------------------
-
-.. automodule:: src.pyconf
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.returnCode module
----------------------
-
-.. automodule:: src.returnCode
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.salomeTools module
-----------------------
-
-.. automodule:: src.salomeTools
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.system module
------------------
-
-.. automodule:: src.system
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.template module
--------------------
-
-.. automodule:: src.template
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.test_module module
-----------------------
-
-.. automodule:: src.test_module
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.utilsSat module
--------------------
-
-.. automodule:: src.utilsSat
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-src.xmlManager module
----------------------
-
-.. automodule:: src.xmlManager
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-
-Module contents
----------------
-
-.. automodule:: src
-    :members:
-    :undoc-members:
-    :show-inheritance:
index 3428cdfc927d1a3f034aaed68e3fc5647ec2ff9e..11740aad552ac35f84823f253cf20eef4afffd28 100644 (file)
@@ -70,7 +70,8 @@ Code documentation
 .. toctree::
    :maxdepth: 1
 
-   SAT modules <commands/apidoc/modules.rst>
+   SAT src modules <apidoc_src/modules.rst>
+   SAT commands modules <apidoc_commands/modules.rst>
 
 
 Release Notes
diff --git a/doc/build/html/apidoc_commands/commands.html b/doc/build/html/apidoc_commands/commands.html
new file mode 100644 (file)
index 0000000..98993df
--- /dev/null
@@ -0,0 +1,3805 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands package &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../genindex.html" />
+    <link rel="search" title="Search" href="../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../index.html" />
+    <link rel="up" title="commands" href="modules.html" />
+    <link rel="next" title="Release notes" href="../release_notes/release_notes_5.0.0.html" />
+    <link rel="prev" title="commands" href="modules.html" />
+   
+  <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="commands-package">
+<h1>commands package<a class="headerlink" href="#commands-package" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="submodules">
+<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2>
+</div>
+<div class="section" id="module-commands.application">
+<span id="commands-application-module"></span><h2>commands.application module<a class="headerlink" href="#module-commands.application" title="Permalink to this headline">¶</a></h2>
+<p>Is a salomeTools command module
+see Command class docstring, also used for help</p>
+<dl class="class">
+<dt id="commands.application.Command">
+<em class="property">class </em><code class="descclassname">commands.application.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/application.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.application.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The application command creates a SALOME application.</p>
+<div class="line-block">
+<div class="line">Warning:</div>
+<div class="line-block">
+<div class="line">It works only for SALOME 6.</div>
+<div class="line">Use the 'launcher' command for newer versions of SALOME</div>
+<div class="line"><br /></div>
+</div>
+<div class="line">Examples:</div>
+<div class="line">&gt;&gt; sat application SALOME-6.6.0</div>
+</div>
+<dl class="method">
+<dt id="commands.application.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/application.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.application.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for command 'sat application &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.application.Command.name">
+<code class="descname">name</code><em class="property"> = 'application'</em><a class="headerlink" href="#commands.application.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.application.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/application.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.application.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat application &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.application.add_module_to_appli">
+<code class="descclassname">commands.application.</code><code class="descname">add_module_to_appli</code><span class="sig-paren">(</span><em>out</em>, <em>module</em>, <em>has_gui</em>, <em>module_path</em>, <em>logger</em>, <em>flagline</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/application.html#add_module_to_appli"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.application.add_module_to_appli" title="Permalink to this definition">¶</a></dt>
+<dd><p>add the definition of a module to out stream.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.application.create_application">
+<code class="descclassname">commands.application.</code><code class="descname">create_application</code><span class="sig-paren">(</span><em>config</em>, <em>appli_dir</em>, <em>catalog</em>, <em>logger</em>, <em>display=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/application.html#create_application"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.application.create_application" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.application.create_config_file">
+<code class="descclassname">commands.application.</code><code class="descname">create_config_file</code><span class="sig-paren">(</span><em>config</em>, <em>modules</em>, <em>env_file</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/application.html#create_config_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.application.create_config_file" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.application.customize_app">
+<code class="descclassname">commands.application.</code><code class="descname">customize_app</code><span class="sig-paren">(</span><em>config</em>, <em>appli_dir</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/application.html#customize_app"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.application.customize_app" title="Permalink to this definition">¶</a></dt>
+<dd><p>Customizes the application by editing SalomeApp.xml.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.application.generate_application">
+<code class="descclassname">commands.application.</code><code class="descname">generate_application</code><span class="sig-paren">(</span><em>config</em>, <em>appli_dir</em>, <em>config_file</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/application.html#generate_application"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.application.generate_application" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.application.generate_catalog">
+<code class="descclassname">commands.application.</code><code class="descname">generate_catalog</code><span class="sig-paren">(</span><em>machines</em>, <em>config</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/application.html#generate_catalog"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.application.generate_catalog" title="Permalink to this definition">¶</a></dt>
+<dd><p>Generates the catalog from a list of machines.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.application.generate_launch_file">
+<code class="descclassname">commands.application.</code><code class="descname">generate_launch_file</code><span class="sig-paren">(</span><em>config</em>, <em>appli_dir</em>, <em>catalog</em>, <em>logger</em>, <em>l_SALOME_modules</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/application.html#generate_launch_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.application.generate_launch_file" title="Permalink to this definition">¶</a></dt>
+<dd><p>Obsolescent way of creating the application.
+This method will use appli_gen to create the application directory.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.application.get_SALOME_modules">
+<code class="descclassname">commands.application.</code><code class="descname">get_SALOME_modules</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/application.html#get_SALOME_modules"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.application.get_SALOME_modules" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.application.get_step">
+<code class="descclassname">commands.application.</code><code class="descname">get_step</code><span class="sig-paren">(</span><em>logger</em>, <em>message</em>, <em>pad=50</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/application.html#get_step"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.application.get_step" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns 'message ........ ' with pad 50 by default
+avoid colors '&lt;color&gt;' for now in message</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.application.make_alias">
+<code class="descclassname">commands.application.</code><code class="descname">make_alias</code><span class="sig-paren">(</span><em>appli_path</em>, <em>alias_path</em>, <em>force=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/application.html#make_alias"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.application.make_alias" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</div>
+<div class="section" id="module-commands.check">
+<span id="commands-check-module"></span><h2>commands.check module<a class="headerlink" href="#module-commands.check" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.check.Command">
+<em class="property">class </em><code class="descclassname">commands.check.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/check.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.check.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The check command executes the 'check' command in the build directory of 
+all the products of the application.
+It is possible to reduce the list of products to check
+by using the --products option</p>
+<p>examples:
+&gt;&gt; sat check SALOME --products KERNEL,GUI,GEOM</p>
+<dl class="method">
+<dt id="commands.check.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/check.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.check.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for the check command 'sat check &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.check.Command.name">
+<code class="descname">name</code><em class="property"> = 'check'</em><a class="headerlink" href="#commands.check.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.check.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/check.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.check.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat check &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.check.check_all_products">
+<code class="descclassname">commands.check.</code><code class="descname">check_all_products</code><span class="sig-paren">(</span><em>config</em>, <em>products_infos</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/check.html#check_all_products"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.check.check_all_products" title="Permalink to this definition">¶</a></dt>
+<dd><p>Execute the proper configuration commands 
+in each product build directory.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>products_info</strong> -- (list) 
+List of (str, Config) =&gt; (product_name, product_info)</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(int) the number of failing commands.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.check.check_product">
+<code class="descclassname">commands.check.</code><code class="descname">check_product</code><span class="sig-paren">(</span><em>p_name_info</em>, <em>config</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/check.html#check_product"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.check.check_product" title="Permalink to this definition">¶</a></dt>
+<dd><p>Execute the proper configuration command(s) 
+in the product build directory.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>p_name_info</strong> -- (tuple) 
+(str, Config) =&gt; (product_name, product_info)</li>
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(int) 1 if it fails, else 0.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.check.get_products_list">
+<code class="descclassname">commands.check.</code><code class="descname">get_products_list</code><span class="sig-paren">(</span><em>options</em>, <em>cfg</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/check.html#get_products_list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.check.get_products_list" title="Permalink to this definition">¶</a></dt>
+<dd><p>method that gives the product list with their informations from 
+configuration regarding the passed options.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>options</strong> -- (Options) The Options instance that stores 
+the commands arguments</li>
+<li><strong>cfg</strong> -- (Config) The global configuration</li>
+<li><strong>logger</strong> -- (Logger) The logger instance to use 
+for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(list) The list of (product name, product_informations).</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.check.log_res_step">
+<code class="descclassname">commands.check.</code><code class="descname">log_res_step</code><span class="sig-paren">(</span><em>logger</em>, <em>res</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/check.html#log_res_step"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.check.log_res_step" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.check.log_step">
+<code class="descclassname">commands.check.</code><code class="descname">log_step</code><span class="sig-paren">(</span><em>logger</em>, <em>header</em>, <em>step</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/check.html#log_step"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.check.log_step" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</div>
+<div class="section" id="module-commands.clean">
+<span id="commands-clean-module"></span><h2>commands.clean module<a class="headerlink" href="#module-commands.clean" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.clean.Command">
+<em class="property">class </em><code class="descclassname">commands.clean.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/clean.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.clean.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The clean command suppresses the source, build, or install directories 
+of the application products.
+Use the options to define what directories you want to suppress and 
+to reduce the list of products</p>
+<p>examples:
+&gt;&gt; sat clean SALOME --build --install --properties is_salome_module:yes</p>
+<dl class="method">
+<dt id="commands.clean.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/clean.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.clean.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for the command 'sat clean &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.clean.Command.name">
+<code class="descname">name</code><em class="property"> = 'clean'</em><a class="headerlink" href="#commands.clean.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.clean.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/clean.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.clean.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat clean &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.clean.get_build_directories">
+<code class="descclassname">commands.clean.</code><code class="descname">get_build_directories</code><span class="sig-paren">(</span><em>products_infos</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/clean.html#get_build_directories"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.clean.get_build_directories" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the list of directory build paths corresponding to the list of 
+product information given as input.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>products_infos</strong> -- (list)
+The list of (name, config) corresponding to one product.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(list) the list of build paths.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.clean.get_install_directories">
+<code class="descclassname">commands.clean.</code><code class="descname">get_install_directories</code><span class="sig-paren">(</span><em>products_infos</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/clean.html#get_install_directories"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.clean.get_install_directories" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the list of directory install paths corresponding to the list of 
+product information given as input.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>products_infos</strong> -- (list) 
+The list of (name, config) corresponding to one product.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(list) the list of install paths.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.clean.get_source_directories">
+<code class="descclassname">commands.clean.</code><code class="descname">get_source_directories</code><span class="sig-paren">(</span><em>products_infos</em>, <em>without_dev</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/clean.html#get_source_directories"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.clean.get_source_directories" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the list of directory source paths corresponding to the list of 
+product information given as input. If without_dev (bool), then
+the dev products are ignored.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>products_infos</strong> -- (list) 
+The list of (name, config) corresponding to one product.</li>
+<li><strong>without_dev</strong> -- (boolean) If True, then ignore the dev products.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(list) the list of source paths.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.clean.product_has_dir">
+<code class="descclassname">commands.clean.</code><code class="descname">product_has_dir</code><span class="sig-paren">(</span><em>product_info</em>, <em>without_dev=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/clean.html#product_has_dir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.clean.product_has_dir" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a boolean at True if there is a source, build and install
+directory corresponding to the product described by product_info.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>products_info</strong> -- (Config) 
+The config corresponding to the product.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool)
+True if there is a source, build and install
+directory corresponding to the product described by product_info.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.clean.suppress_directories">
+<code class="descclassname">commands.clean.</code><code class="descname">suppress_directories</code><span class="sig-paren">(</span><em>l_paths</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/clean.html#suppress_directories"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.clean.suppress_directories" title="Permalink to this definition">¶</a></dt>
+<dd><p>Suppress the paths given in the list in l_paths.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>l_paths</strong> -- (list) The list of Path to be suppressed</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-commands.compile">
+<span id="commands-compile-module"></span><h2>commands.compile module<a class="headerlink" href="#module-commands.compile" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.compile.Command">
+<em class="property">class </em><code class="descclassname">commands.compile.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/compile.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.compile.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The compile command constructs the products of the application</p>
+<dl class="docutils">
+<dt>examples:</dt>
+<dd>&gt;&gt; sat compile SALOME --products KERNEL,GUI,MEDCOUPLING --clean_all</dd>
+</dl>
+<dl class="method">
+<dt id="commands.compile.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/compile.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.compile.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for the command 'sat compile &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.compile.Command.name">
+<code class="descname">name</code><em class="property"> = 'compile'</em><a class="headerlink" href="#commands.compile.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.compile.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/compile.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.compile.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat compile &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.compile.add_compile_config_file">
+<code class="descclassname">commands.compile.</code><code class="descname">add_compile_config_file</code><span class="sig-paren">(</span><em>p_info</em>, <em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/compile.html#add_compile_config_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.compile.add_compile_config_file" title="Permalink to this definition">¶</a></dt>
+<dd><p>Execute the proper configuration command(s) 
+in the product build directory.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>p_info</strong> -- (Config) The specific config of the product</li>
+<li><strong>config</strong> -- (Config) The global configuration</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.compile.check_dependencies">
+<code class="descclassname">commands.compile.</code><code class="descname">check_dependencies</code><span class="sig-paren">(</span><em>config</em>, <em>p_name_p_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/compile.html#check_dependencies"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.compile.check_dependencies" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.compile.compile_all_products">
+<code class="descclassname">commands.compile.</code><code class="descname">compile_all_products</code><span class="sig-paren">(</span><em>sat</em>, <em>config</em>, <em>options</em>, <em>products_infos</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/compile.html#compile_all_products"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.compile.compile_all_products" title="Permalink to this definition">¶</a></dt>
+<dd><p>Execute the proper configuration commands 
+in each product build directory.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>products_info</strong> -- (list)
+List of (str, Config) =&gt; (product_name, product_info)</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(int) the number of failing commands.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.compile.compile_product">
+<code class="descclassname">commands.compile.</code><code class="descname">compile_product</code><span class="sig-paren">(</span><em>sat</em>, <em>p_name_info</em>, <em>config</em>, <em>options</em>, <em>logger</em>, <em>header</em>, <em>len_end</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/compile.html#compile_product"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.compile.compile_product" title="Permalink to this definition">¶</a></dt>
+<dd><p>Execute the proper configuration command(s) 
+in the product build directory.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>p_name_info</strong> -- (tuple) (str, Config) =&gt; (product_name, product_info)</li>
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+<li><strong>header</strong> -- (str) the header to display when logging</li>
+<li><strong>len_end</strong> -- (int) the lenght of the the end of line (used in display)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(int) 1 if it fails, else 0.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.compile.compile_product_cmake_autotools">
+<code class="descclassname">commands.compile.</code><code class="descname">compile_product_cmake_autotools</code><span class="sig-paren">(</span><em>sat</em>, <em>p_name_info</em>, <em>config</em>, <em>options</em>, <em>logger</em>, <em>header</em>, <em>len_end</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/compile.html#compile_product_cmake_autotools"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.compile.compile_product_cmake_autotools" title="Permalink to this definition">¶</a></dt>
+<dd><p>Execute the proper build procedure for autotools or cmake
+in the product build directory.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>p_name_info</strong> -- (tuple) 
+(str, Config) =&gt; (product_name, product_info)</li>
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+<li><strong>header</strong> -- (str) the header to display when logging</li>
+<li><strong>len_end</strong> -- (int) the length of the the end of line (used in display)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(int) 1 if it fails, else 0.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.compile.compile_product_script">
+<code class="descclassname">commands.compile.</code><code class="descname">compile_product_script</code><span class="sig-paren">(</span><em>sat</em>, <em>p_name_info</em>, <em>config</em>, <em>options</em>, <em>logger</em>, <em>header</em>, <em>len_end</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/compile.html#compile_product_script"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.compile.compile_product_script" title="Permalink to this definition">¶</a></dt>
+<dd><p>Execute the script build procedure in the product build directory.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>p_name_info</strong> -- (tuple) 
+(str, Config) =&gt; (product_name, product_info)</li>
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+<li><strong>header</strong> -- (str) the header to display when logging</li>
+<li><strong>len_end</strong> -- (int) the lenght of the the end of line (used in display)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(int) 1 if it fails, else 0.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.compile.extend_with_children">
+<code class="descclassname">commands.compile.</code><code class="descname">extend_with_children</code><span class="sig-paren">(</span><em>config</em>, <em>p_infos</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/compile.html#extend_with_children"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.compile.extend_with_children" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.compile.extend_with_fathers">
+<code class="descclassname">commands.compile.</code><code class="descname">extend_with_fathers</code><span class="sig-paren">(</span><em>config</em>, <em>p_infos</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/compile.html#extend_with_fathers"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.compile.extend_with_fathers" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.compile.get_children">
+<code class="descclassname">commands.compile.</code><code class="descname">get_children</code><span class="sig-paren">(</span><em>config</em>, <em>p_name_p_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/compile.html#get_children"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.compile.get_children" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.compile.get_products_list">
+<code class="descclassname">commands.compile.</code><code class="descname">get_products_list</code><span class="sig-paren">(</span><em>options</em>, <em>cfg</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/compile.html#get_products_list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.compile.get_products_list" title="Permalink to this definition">¶</a></dt>
+<dd><p>method that gives the product list with their informations from 
+configuration regarding the passed options.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>options</strong> -- (Options) 
+The Options instance that stores the commands arguments</li>
+<li><strong>cfg</strong> -- (Config) The global configuration</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(list) The list of (product name, product_informations).</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.compile.get_recursive_children">
+<code class="descclassname">commands.compile.</code><code class="descname">get_recursive_children</code><span class="sig-paren">(</span><em>config</em>, <em>p_name_p_info</em>, <em>without_native_fixed=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/compile.html#get_recursive_children"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.compile.get_recursive_children" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the recursive list of the product that depend on 
+the product defined by prod_info</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>prod_info</strong> -- (Config) The specific config of the product</li>
+<li><strong>without_native_fixed</strong> -- (bool) 
+If true, do not include the fixed or native products in the result</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(list) The list of product_informations.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.compile.get_recursive_fathers">
+<code class="descclassname">commands.compile.</code><code class="descname">get_recursive_fathers</code><span class="sig-paren">(</span><em>config</em>, <em>p_name_p_info</em>, <em>without_native_fixed=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/compile.html#get_recursive_fathers"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.compile.get_recursive_fathers" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the recursive list of the dependencies of the product defined 
+by prod_info</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>prod_info</strong> -- (Config) The specific config of the product</li>
+<li><strong>without_native_fixed</strong> -- (bool) 
+If true, do not include the fixed or native products in the result</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(list) The list of product_informations.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.compile.log_res_step">
+<code class="descclassname">commands.compile.</code><code class="descname">log_res_step</code><span class="sig-paren">(</span><em>logger</em>, <em>res</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/compile.html#log_res_step"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.compile.log_res_step" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.compile.log_step">
+<code class="descclassname">commands.compile.</code><code class="descname">log_step</code><span class="sig-paren">(</span><em>logger</em>, <em>header</em>, <em>step</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/compile.html#log_step"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.compile.log_step" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.compile.sort_products">
+<code class="descclassname">commands.compile.</code><code class="descname">sort_products</code><span class="sig-paren">(</span><em>config</em>, <em>p_infos</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/compile.html#sort_products"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.compile.sort_products" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sort the p_infos regarding the dependencies between the products</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>p_infos</strong> -- (list) 
+List of (str, Config) =&gt; (product_name, product_info)</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-commands.config">
+<span id="commands-config-module"></span><h2>commands.config module<a class="headerlink" href="#module-commands.config" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.config.Command">
+<em class="property">class </em><code class="descclassname">commands.config.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/config.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.config.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The config command allows manipulation and operation on config '.pyconf' files.</p>
+<div class="line-block">
+<div class="line">examples:</div>
+<div class="line">&gt;&gt; sat config --list</div>
+<div class="line">&gt;&gt; sat config SALOME --edit</div>
+<div class="line">&gt;&gt; sat config SALOME --copy SALOME-new</div>
+<div class="line">&gt;&gt; sat config SALOME --value VARS</div>
+<div class="line">&gt;&gt; sat config SALOME --debug VARS</div>
+<div class="line">&gt;&gt; sat config SALOME --info ParaView</div>
+<div class="line">&gt;&gt; sat config SALOME --show_patchs</div>
+</div>
+<dl class="method">
+<dt id="commands.config.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/config.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.config.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for command 'sat config &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.config.Command.name">
+<code class="descname">name</code><em class="property"> = 'config'</em><a class="headerlink" href="#commands.config.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.config.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/config.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.config.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat config &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-commands.configure">
+<span id="commands-configure-module"></span><h2>commands.configure module<a class="headerlink" href="#module-commands.configure" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.configure.Command">
+<em class="property">class </em><code class="descclassname">commands.configure.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/configure.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.configure.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The configure command executes in the build directory commands
+corresponding to the compilation mode of the application products.
+The possible compilation modes are 'cmake', 'autotools', or 'script'.</p>
+<p>Here are the commands to be run:
+autotools: &gt;&gt; build_configure and configure
+cmake:     &gt;&gt; cmake
+script:    (do nothing)</p>
+<p>examples:
+&gt;&gt; sat configure SALOME --products KERNEL,GUI,PARAVIS</p>
+<dl class="method">
+<dt id="commands.configure.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/configure.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.configure.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for command 'sat configure &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.configure.Command.name">
+<code class="descname">name</code><em class="property"> = 'configure'</em><a class="headerlink" href="#commands.configure.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.configure.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/configure.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.configure.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat configure &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.configure.configure_all_products">
+<code class="descclassname">commands.configure.</code><code class="descname">configure_all_products</code><span class="sig-paren">(</span><em>config</em>, <em>products_infos</em>, <em>conf_option</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/configure.html#configure_all_products"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.configure.configure_all_products" title="Permalink to this definition">¶</a></dt>
+<dd><p>Execute the proper configuration commands 
+in each product build directory.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>products_info</strong> -- (list) 
+List of (str, Config) =&gt; (product_name, product_info)</li>
+<li><strong>conf_option</strong> -- (str) The options to add to the command</li>
+<li><strong>logger</strong> -- (Logger) The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(int) the number of failing commands.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.configure.configure_product">
+<code class="descclassname">commands.configure.</code><code class="descname">configure_product</code><span class="sig-paren">(</span><em>p_name_info</em>, <em>conf_option</em>, <em>config</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/configure.html#configure_product"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.configure.configure_product" title="Permalink to this definition">¶</a></dt>
+<dd><p>Execute the proper configuration command(s) 
+in the product build directory.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>p_name_info</strong> -- (tuple) 
+(str, Config) =&gt; (product_name, product_info)</li>
+<li><strong>conf_option</strong> -- (str) The options to add to the command</li>
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(int) 1 if it fails, else 0.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.configure.get_products_list">
+<code class="descclassname">commands.configure.</code><code class="descname">get_products_list</code><span class="sig-paren">(</span><em>options</em>, <em>cfg</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/configure.html#get_products_list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.configure.get_products_list" title="Permalink to this definition">¶</a></dt>
+<dd><p>method that gives the product list with their informations from 
+configuration regarding the passed options.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>options</strong> -- (Options) 
+The Options instance that stores the commands arguments</li>
+<li><strong>cfg</strong> -- (Config) The global configuration</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(list) The list of (product name, product_informations).</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.configure.log_res_step">
+<code class="descclassname">commands.configure.</code><code class="descname">log_res_step</code><span class="sig-paren">(</span><em>logger</em>, <em>res</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/configure.html#log_res_step"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.configure.log_res_step" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.configure.log_step">
+<code class="descclassname">commands.configure.</code><code class="descname">log_step</code><span class="sig-paren">(</span><em>logger</em>, <em>header</em>, <em>step</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/configure.html#log_step"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.configure.log_step" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</div>
+<div class="section" id="module-commands.environ">
+<span id="commands-environ-module"></span><h2>commands.environ module<a class="headerlink" href="#module-commands.environ" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.environ.Command">
+<em class="property">class </em><code class="descclassname">commands.environ.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/environ.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.environ.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The environ command generates the environment files of your application.</p>
+<p>examples:
+&gt;&gt; sat environ SALOME</p>
+<dl class="method">
+<dt id="commands.environ.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/environ.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.environ.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for command 'sat environ &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.environ.Command.name">
+<code class="descname">name</code><em class="property"> = 'environ'</em><a class="headerlink" href="#commands.environ.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.environ.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/environ.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.environ.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat environ &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.environ.write_all_source_files">
+<code class="descclassname">commands.environ.</code><code class="descname">write_all_source_files</code><span class="sig-paren">(</span><em>config, logger, out_dir=None, src_root=None, silent=False, shells=['bash'], prefix='env', env_info=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/environ.html#write_all_source_files"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.environ.write_all_source_files" title="Permalink to this definition">¶</a></dt>
+<dd><p>Generates the environment files.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>logger</strong> -- (Logger)
+The logger instance to use for the display and logging</li>
+<li><strong>out_dir</strong> -- (str) 
+The path to the directory where the files will be put</li>
+<li><strong>src_root</strong> -- (str) 
+The path to the directory where the sources are</li>
+<li><strong>silent</strong> -- (bool) 
+If True, do not print anything in the terminal</li>
+<li><strong>shells</strong> -- (list) The list of shells to generate</li>
+<li><strong>prefix</strong> -- (str) The prefix to add to the file names.</li>
+<li><strong>env_info</strong> -- (str) The list of products to add in the files.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(list) The list of the generated files.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-commands.find_duplicates">
+<span id="commands-find-duplicates-module"></span><h2>commands.find_duplicates module<a class="headerlink" href="#module-commands.find_duplicates" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.find_duplicates.Command">
+<em class="property">class </em><code class="descclassname">commands.find_duplicates.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/find_duplicates.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.find_duplicates.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The find_duplicates command search recursively for all duplicates files
+in INSTALL directory (or the optionally given directory) and 
+prints the found files to the terminal.</p>
+<dl class="docutils">
+<dt>examples:</dt>
+<dd>&gt;&gt; sat find_duplicates --path /tmp</dd>
+</dl>
+<dl class="method">
+<dt id="commands.find_duplicates.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/find_duplicates.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.find_duplicates.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for command 'sat find_duplicates &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.find_duplicates.Command.name">
+<code class="descname">name</code><em class="property"> = 'find_duplicates'</em><a class="headerlink" href="#commands.find_duplicates.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.find_duplicates.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/find_duplicates.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.find_duplicates.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat find_duplicates &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="commands.find_duplicates.Progress_bar">
+<em class="property">class </em><code class="descclassname">commands.find_duplicates.</code><code class="descname">Progress_bar</code><span class="sig-paren">(</span><em>name</em>, <em>valMin</em>, <em>valMax</em>, <em>logger</em>, <em>length=50</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/find_duplicates.html#Progress_bar"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.find_duplicates.Progress_bar" title="Permalink to this definition">¶</a></dt>
+<dd><p>Create a progress bar in the terminal</p>
+<dl class="method">
+<dt id="commands.find_duplicates.Progress_bar.display_value_progression">
+<code class="descname">display_value_progression</code><span class="sig-paren">(</span><em>val</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/find_duplicates.html#Progress_bar.display_value_progression"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.find_duplicates.Progress_bar.display_value_progression" title="Permalink to this definition">¶</a></dt>
+<dd><p>Display the progress bar.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>val</strong> -- (float) val must be between valMin and valMax.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.find_duplicates.format_list_of_str">
+<code class="descclassname">commands.find_duplicates.</code><code class="descname">format_list_of_str</code><span class="sig-paren">(</span><em>l_str</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/find_duplicates.html#format_list_of_str"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.find_duplicates.format_list_of_str" title="Permalink to this definition">¶</a></dt>
+<dd><p>Make a list from a string</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>l_str</strong> -- (list or str) The variable to format</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(list) the formatted variable</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.find_duplicates.list_directory">
+<code class="descclassname">commands.find_duplicates.</code><code class="descname">list_directory</code><span class="sig-paren">(</span><em>lpath</em>, <em>extension_ignored</em>, <em>files_ignored</em>, <em>directories_ignored</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/find_duplicates.html#list_directory"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.find_duplicates.list_directory" title="Permalink to this definition">¶</a></dt>
+<dd><p>Make the list of all files and paths that are not filtered</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>lpath</strong> -- (list) 
+The list of path to of the directories where to  search for duplicates</li>
+<li><strong>extension_ignored</strong> -- (list) The list of extensions to ignore</li>
+<li><strong>files_ignored</strong> -- (list) The list of files to ignore</li>
+<li><strong>directories_ignored</strong> -- (list) 
+The list of directory paths to ignore</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(list, list) 
+files_arb_out is the list of [file, path] 
+and files_out is is the list of files</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-commands.generate">
+<span id="commands-generate-module"></span><h2>commands.generate module<a class="headerlink" href="#module-commands.generate" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.generate.Command">
+<em class="property">class </em><code class="descclassname">commands.generate.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/generate.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.generate.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The generate command generates SALOME modules from 'pure cpp' products.
+WARNING: this command NEEDS YACSGEN to run.</p>
+<dl class="docutils">
+<dt>examples:</dt>
+<dd>&gt;&gt; sat generate SALOME --products FLICACPP</dd>
+</dl>
+<dl class="method">
+<dt id="commands.generate.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/generate.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.generate.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for command 'sat generate &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.generate.Command.name">
+<code class="descname">name</code><em class="property"> = 'generate'</em><a class="headerlink" href="#commands.generate.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.generate.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/generate.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.generate.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat generate &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.generate.build_context">
+<code class="descclassname">commands.generate.</code><code class="descname">build_context</code><span class="sig-paren">(</span><em>config</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/generate.html#build_context"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.generate.build_context" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.generate.check_module_generator">
+<code class="descclassname">commands.generate.</code><code class="descname">check_module_generator</code><span class="sig-paren">(</span><em>directory=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/generate.html#check_module_generator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.generate.check_module_generator" title="Permalink to this definition">¶</a></dt>
+<dd><p>Check if module_generator is available.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>directory</strong> -- (str) The directory of YACSGEN.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(str) 
+The YACSGEN path if the module_generator is available, else None</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.generate.check_yacsgen">
+<code class="descclassname">commands.generate.</code><code class="descname">check_yacsgen</code><span class="sig-paren">(</span><em>config</em>, <em>directory</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/generate.html#check_yacsgen"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.generate.check_yacsgen" title="Permalink to this definition">¶</a></dt>
+<dd><p>Check if YACSGEN is available.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration.</li>
+<li><strong>directory</strong> -- (str) The directory given by option --yacsgen</li>
+<li><strong>logger</strong> -- (Logger) The logger instance</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(RCO.ReturnCode) 
+with value The path to yacsgen directory if ok</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.generate.generate_component">
+<code class="descclassname">commands.generate.</code><code class="descname">generate_component</code><span class="sig-paren">(</span><em>config</em>, <em>compo</em>, <em>product_info</em>, <em>context</em>, <em>header</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/generate.html#generate_component"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.generate.generate_component" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.generate.generate_component_list">
+<code class="descclassname">commands.generate.</code><code class="descname">generate_component_list</code><span class="sig-paren">(</span><em>config</em>, <em>product_info</em>, <em>context</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/generate.html#generate_component_list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.generate.generate_component_list" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</div>
+<div class="section" id="module-commands.init">
+<span id="commands-init-module"></span><h2>commands.init module<a class="headerlink" href="#module-commands.init" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.init.Command">
+<em class="property">class </em><code class="descclassname">commands.init.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/init.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.init.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The init command Changes the local settings of SAT</p>
+<dl class="method">
+<dt id="commands.init.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/init.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.init.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for command 'sat init &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.init.Command.name">
+<code class="descname">name</code><em class="property"> = 'init'</em><a class="headerlink" href="#commands.init.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.init.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/init.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.init.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat init &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.init.check_path">
+<code class="descclassname">commands.init.</code><code class="descname">check_path</code><span class="sig-paren">(</span><em>path_to_check</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/init.html#check_path"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.init.check_path" title="Permalink to this definition">¶</a></dt>
+<dd><p>Verify that the given path is not a file and can be created.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>path_to_check</strong> -- (str) The path to check.</li>
+<li><strong>logger</strong> -- (Logger) The logger instance.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.init.display_local_values">
+<code class="descclassname">commands.init.</code><code class="descname">display_local_values</code><span class="sig-paren">(</span><em>config</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/init.html#display_local_values"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.init.display_local_values" title="Permalink to this definition">¶</a></dt>
+<dd><p>Display the base path</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>config</strong> -- (Config) The global configuration.</li>
+<li><strong>key</strong> -- (str) The key from which to change the value.</li>
+<li><strong>logger</strong> -- (Logger) The logger instance.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.init.set_local_value">
+<code class="descclassname">commands.init.</code><code class="descname">set_local_value</code><span class="sig-paren">(</span><em>config</em>, <em>key</em>, <em>value</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/init.html#set_local_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.init.set_local_value" title="Permalink to this definition">¶</a></dt>
+<dd><p>Edit the site.pyconf file and change a value.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration.</li>
+<li><strong>key</strong> -- (str) The key from which to change the value.</li>
+<li><strong>value</strong> -- (str) The path to change.</li>
+<li><strong>logger</strong> -- (Logger) The logger instance.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(int) 0 if all is OK, else 1</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-commands.job">
+<span id="commands-job-module"></span><h2>commands.job module<a class="headerlink" href="#module-commands.job" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.job.Command">
+<em class="property">class </em><code class="descclassname">commands.job.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/job.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.job.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The job command executes the commands of the job defined
+in the jobs configuration file  
+examples:
+&gt;&gt; sat job --jobs_config my_jobs --name my_job&quot;</p>
+<dl class="method">
+<dt id="commands.job.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/job.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.job.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for command 'sat job &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.job.Command.name">
+<code class="descname">name</code><em class="property"> = 'job'</em><a class="headerlink" href="#commands.job.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.job.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/job.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.job.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat job &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-commands.jobs">
+<span id="commands-jobs-module"></span><h2>commands.jobs module<a class="headerlink" href="#module-commands.jobs" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.jobs.Command">
+<em class="property">class </em><code class="descclassname">commands.jobs.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The jobs command command launches maintenances that are described in 
+the dedicated jobs configuration file.</p>
+<dl class="docutils">
+<dt>examples:</dt>
+<dd>&gt;&gt; sat jobs --name my_jobs --publish</dd>
+</dl>
+<dl class="method">
+<dt id="commands.jobs.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for command 'sat jobs &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.jobs.Command.name">
+<code class="descname">name</code><em class="property"> = 'jobs'</em><a class="headerlink" href="#commands.jobs.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat jobs &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="commands.jobs.Gui">
+<em class="property">class </em><code class="descclassname">commands.jobs.</code><code class="descname">Gui</code><span class="sig-paren">(</span><em>xml_dir_path</em>, <em>l_jobs</em>, <em>l_jobs_not_today</em>, <em>prefix</em>, <em>logger</em>, <em>file_boards=''</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Gui"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Gui" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>Class to manage the the xml data that can be displayed in a browser 
+to see the jobs states</p>
+<dl class="method">
+<dt id="commands.jobs.Gui.add_xml_board">
+<code class="descname">add_xml_board</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Gui.add_xml_board"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Gui.add_xml_board" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a board to the board list</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>name</strong> -- (str) the board name</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Gui.find_history">
+<code class="descname">find_history</code><span class="sig-paren">(</span><em>l_jobs</em>, <em>l_jobs_not_today</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Gui.find_history"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Gui.find_history" title="Permalink to this definition">¶</a></dt>
+<dd><p>find, for each job, in the existent xml boards the results for the job.
+Store the results in the dictionary 
+self.history = {name_job : list of (date, status, list links)}</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>l_jobs</strong> -- (list) 
+the list of jobs to run today</li>
+<li><strong>l_jobs_not_today</strong> -- (list) 
+the list of jobs that do not run today</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Gui.find_test_log">
+<code class="descname">find_test_log</code><span class="sig-paren">(</span><em>l_remote_log_files</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Gui.find_test_log"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Gui.find_test_log" title="Permalink to this definition">¶</a></dt>
+<dd><p>Find if there is a test log (board) in the remote log files and 
+the path to it. There can be several test command, 
+so the result is a list.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>l_remote_log_files</strong> -- (list) the list of all remote log files</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(list) 
+the list of tuples (test log files path, res of the command)</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Gui.initialize_boards">
+<code class="descname">initialize_boards</code><span class="sig-paren">(</span><em>l_jobs</em>, <em>l_jobs_not_today</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Gui.initialize_boards"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Gui.initialize_boards" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get all the first information needed for each file and write the 
+first version of the files</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>l_jobs</strong> -- (list) the list of jobs that run today</li>
+<li><strong>l_jobs_not_today</strong> -- (list) the list of jobs that do not run today</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Gui.last_update">
+<code class="descname">last_update</code><span class="sig-paren">(</span><em>finish_status='finished'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Gui.last_update"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Gui.last_update" title="Permalink to this definition">¶</a></dt>
+<dd><p>update information about the jobs for the file xml_file</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>l_jobs</strong> -- (list) the list of jobs that run today</li>
+<li><strong>xml_file</strong> -- (xmlManager.XmlLogFile) the xml instance to update</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Gui.parse_csv_boards">
+<code class="descname">parse_csv_boards</code><span class="sig-paren">(</span><em>today</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Gui.parse_csv_boards"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Gui.parse_csv_boards" title="Permalink to this definition">¶</a></dt>
+<dd><p>Parse the csv file that describes the boards to produce and fill 
+the dict d_input_boards that contain the csv file contain</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>today</strong> -- (int) the current day of the week</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Gui.put_jobs_not_today">
+<code class="descname">put_jobs_not_today</code><span class="sig-paren">(</span><em>l_jobs_not_today</em>, <em>xml_node_jobs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Gui.put_jobs_not_today"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Gui.put_jobs_not_today" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get all the first information needed for each file and write the 
+first version of the files</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>xml_node_jobs</strong> -- (etree.Element) 
+the node corresponding to a job</li>
+<li><strong>l_jobs_not_today</strong> -- (list) 
+the list of jobs that do not run today</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Gui.update_xml_file">
+<code class="descname">update_xml_file</code><span class="sig-paren">(</span><em>l_jobs</em>, <em>xml_file</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Gui.update_xml_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Gui.update_xml_file" title="Permalink to this definition">¶</a></dt>
+<dd><p>update information about the jobs for the file xml_file</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>l_jobs</strong> -- (list) the list of jobs that run today</li>
+<li><strong>xml_file</strong> -- (xmlManager.XmlLogFile) 
+the xml instance to update</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Gui.update_xml_files">
+<code class="descname">update_xml_files</code><span class="sig-paren">(</span><em>l_jobs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Gui.update_xml_files"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Gui.update_xml_files" title="Permalink to this definition">¶</a></dt>
+<dd><p>Write all the xml files with updated information about the jobs</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>l_jobs</strong> -- (list) the list of jobs that run today</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Gui.write_xml_file">
+<code class="descname">write_xml_file</code><span class="sig-paren">(</span><em>xml_file</em>, <em>stylesheet</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Gui.write_xml_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Gui.write_xml_file" title="Permalink to this definition">¶</a></dt>
+<dd><p>Write one xml file and the same file with prefix</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Gui.write_xml_files">
+<code class="descname">write_xml_files</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Gui.write_xml_files"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Gui.write_xml_files" title="Permalink to this definition">¶</a></dt>
+<dd><p>Write the xml files</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="commands.jobs.Job">
+<em class="property">class </em><code class="descclassname">commands.jobs.</code><code class="descname">Job</code><span class="sig-paren">(</span><em>name</em>, <em>machine</em>, <em>application</em>, <em>board</em>, <em>commands</em>, <em>timeout</em>, <em>config</em>, <em>job_file_path</em>, <em>logger</em>, <em>after=None</em>, <em>prefix=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Job"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Job" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>Class to manage one job</p>
+<dl class="method">
+<dt id="commands.jobs.Job.cancel">
+<code class="descname">cancel</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Job.cancel"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Job.cancel" title="Permalink to this definition">¶</a></dt>
+<dd><p>In case of a failing job, one has to cancel every job that depend on it.
+This method put the job as failed and will not be executed.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Job.check_time">
+<code class="descname">check_time</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Job.check_time"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Job.check_time" title="Permalink to this definition">¶</a></dt>
+<dd><p>Verify that the job has not exceeded its timeout.
+If it has, kill the remote command and consider the job as finished.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Job.get_log_files">
+<code class="descname">get_log_files</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Job.get_log_files"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Job.get_log_files" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the log files produced by the command launched 
+on the remote machine, and put it in the log directory of the user,
+so they can be accessible from</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Job.get_pids">
+<code class="descname">get_pids</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Job.get_pids"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Job.get_pids" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the pid(s) corresponding to the command that have been launched
+On the remote machine</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">(list) The list of integers corresponding to the found pids</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Job.get_status">
+<code class="descname">get_status</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Job.get_status"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Job.get_status" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the status of the job (used by the Gui for xml display)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">(str) The current status of the job</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Job.has_begun">
+<code class="descname">has_begun</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Job.has_begun"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Job.has_begun" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns True if the job has already begun</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">(bool) True if the job has already begun</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Job.has_failed">
+<code class="descname">has_failed</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Job.has_failed"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Job.has_failed" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns True if the job has failed. 
+A job is considered as failed if the machine could not be reached,
+if the remote command failed, 
+or if the job finished with a time out.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">(bool) True if the job has failed</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Job.has_finished">
+<code class="descname">has_finished</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Job.has_finished"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Job.has_finished" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns True if the job has already finished 
+(i.e. all the commands have been executed)
+If it is finished, the outputs are stored in the fields out and err.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">(bool) True if the job has already finished</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Job.is_running">
+<code class="descname">is_running</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Job.is_running"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Job.is_running" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns True if the job commands are running</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">(bool) True if the job is running</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Job.is_timeout">
+<code class="descname">is_timeout</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Job.is_timeout"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Job.is_timeout" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns True if the job commands has finished with timeout</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">(bool) True if the job has finished with timeout</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Job.kill_remote_process">
+<code class="descname">kill_remote_process</code><span class="sig-paren">(</span><em>wait=1</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Job.kill_remote_process"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Job.kill_remote_process" title="Permalink to this definition">¶</a></dt>
+<dd><p>Kills the process on the remote machine.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">(str, str) the output of the kill, the error of the kill</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Job.run">
+<code class="descname">run</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Job.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Job.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>Launch the job by executing the remote command.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Job.time_elapsed">
+<code class="descname">time_elapsed</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Job.time_elapsed"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Job.time_elapsed" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the time elapsed since the job launching</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The number of seconds</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body">int</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Job.total_duration">
+<code class="descname">total_duration</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Job.total_duration"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Job.total_duration" title="Permalink to this definition">¶</a></dt>
+<dd><p>Gives the total duration of the job</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">(int) the total duration of the job in seconds</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Job.write_results">
+<code class="descname">write_results</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Job.write_results"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Job.write_results" title="Permalink to this definition">¶</a></dt>
+<dd><p>Display on the terminal all the job's information</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="commands.jobs.Jobs">
+<em class="property">class </em><code class="descclassname">commands.jobs.</code><code class="descname">Jobs</code><span class="sig-paren">(</span><em>runner</em>, <em>logger</em>, <em>job_file_path</em>, <em>config_jobs</em>, <em>lenght_columns=20</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Jobs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Jobs" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>Class to manage the jobs to be run</p>
+<dl class="method">
+<dt id="commands.jobs.Jobs.cancel_dependencies_of_failing_jobs">
+<code class="descname">cancel_dependencies_of_failing_jobs</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Jobs.cancel_dependencies_of_failing_jobs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Jobs.cancel_dependencies_of_failing_jobs" title="Permalink to this definition">¶</a></dt>
+<dd><p>Cancels all the jobs that depend on a failing one.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">None</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Jobs.define_job">
+<code class="descname">define_job</code><span class="sig-paren">(</span><em>job_def</em>, <em>machine</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Jobs.define_job"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Jobs.define_job" title="Permalink to this definition">¶</a></dt>
+<dd><p>Takes a pyconf job definition and a machine (from class machine)
+and returns the job instance corresponding to the definition.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>job_def</strong> -- (Mapping a job definition</li>
+<li><strong>machine</strong> -- (Machine) the machine on which the job will run</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(Job) The corresponding job in a job class instance</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Jobs.determine_jobs_and_machines">
+<code class="descname">determine_jobs_and_machines</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Jobs.determine_jobs_and_machines"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Jobs.determine_jobs_and_machines" title="Permalink to this definition">¶</a></dt>
+<dd><p>Reads the pyconf jobs definition and instantiates all
+the machines and jobs to be done today.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">None</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Jobs.display_status">
+<code class="descname">display_status</code><span class="sig-paren">(</span><em>len_col</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Jobs.display_status"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Jobs.display_status" title="Permalink to this definition">¶</a></dt>
+<dd><p>Takes a lenght and construct the display of the current status 
+of the jobs in an array that has a column for each host.
+It displays the job that is currently running on the host of the column.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>len_col</strong> -- (int) the size of the column</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">None</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Jobs.find_job_that_has_name">
+<code class="descname">find_job_that_has_name</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Jobs.find_job_that_has_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Jobs.find_job_that_has_name" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the job by its name.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>name</strong> -- (str) a job name</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(Job) the job that has the name.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Jobs.is_occupied">
+<code class="descname">is_occupied</code><span class="sig-paren">(</span><em>hostname</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Jobs.is_occupied"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Jobs.is_occupied" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns True if a job is running on 
+the machine defined by its host and its port.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>hostname</strong> -- (str, int) the pair (host, port)</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(Job or bool) 
+the job that is running on the host, 
+or false if there is no job running on the host.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Jobs.run_jobs">
+<code class="descname">run_jobs</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Jobs.run_jobs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Jobs.run_jobs" title="Permalink to this definition">¶</a></dt>
+<dd><p>The main method. Runs all the jobs on every host. 
+For each host, at a given time, only one job can be running.
+The jobs that have the field after (that contain the job that has
+to be run before it) are run after the previous job.
+This method stops when all the jobs are finished.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">None</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Jobs.ssh_connection_all_machines">
+<code class="descname">ssh_connection_all_machines</code><span class="sig-paren">(</span><em>pad=50</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Jobs.ssh_connection_all_machines"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Jobs.ssh_connection_all_machines" title="Permalink to this definition">¶</a></dt>
+<dd><p>Do the ssh connection to every machine to be used today.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">None</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Jobs.str_of_length">
+<code class="descname">str_of_length</code><span class="sig-paren">(</span><em>text</em>, <em>length</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Jobs.str_of_length"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Jobs.str_of_length" title="Permalink to this definition">¶</a></dt>
+<dd><p>Takes a string text of any length and returns 
+the most close string of length &quot;length&quot;.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>text</strong> -- (str) any string</li>
+<li><strong>length</strong> -- (int) a length for the returned string</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(str) the most close string of length &quot;length&quot;</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Jobs.update_jobs_states_list">
+<code class="descname">update_jobs_states_list</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Jobs.update_jobs_states_list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Jobs.update_jobs_states_list" title="Permalink to this definition">¶</a></dt>
+<dd><p>Updates the lists that store the currently
+running jobs and the jobs that have already finished.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">None</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Jobs.write_all_results">
+<code class="descname">write_all_results</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Jobs.write_all_results"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Jobs.write_all_results" title="Permalink to this definition">¶</a></dt>
+<dd><p>Display all the jobs outputs.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">None</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="commands.jobs.Machine">
+<em class="property">class </em><code class="descclassname">commands.jobs.</code><code class="descname">Machine</code><span class="sig-paren">(</span><em>name</em>, <em>host</em>, <em>user</em>, <em>port=22</em>, <em>passwd=None</em>, <em>sat_path='salomeTools'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Machine"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Machine" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>Manage a ssh connection on a machine</p>
+<dl class="method">
+<dt id="commands.jobs.Machine.close">
+<code class="descname">close</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Machine.close"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Machine.close" title="Permalink to this definition">¶</a></dt>
+<dd><p>Close the ssh connection</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Machine.connect">
+<code class="descname">connect</code><span class="sig-paren">(</span><em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Machine.connect"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Machine.connect" title="Permalink to this definition">¶</a></dt>
+<dd><p>Initiate the ssh connection to the remote machine</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>logger</strong> -- The logger instance</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">None</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Machine.copy_sat">
+<code class="descname">copy_sat</code><span class="sig-paren">(</span><em>sat_local_path</em>, <em>job_file</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Machine.copy_sat"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Machine.copy_sat" title="Permalink to this definition">¶</a></dt>
+<dd><p>Copy salomeTools to the remote machine in self.sat_path</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Machine.exec_command">
+<code class="descname">exec_command</code><span class="sig-paren">(</span><em>command</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Machine.exec_command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Machine.exec_command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Execute the command on the remote machine</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>command</strong> -- (str) The command to be run</li>
+<li><strong>logger</strong> -- The logger instance</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(paramiko.channel.ChannelFile, etc) 
+the stdin, stdout, and stderr of the executing command,
+as a 3-tuple</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Machine.mkdir">
+<code class="descname">mkdir</code><span class="sig-paren">(</span><em>path</em>, <em>mode=511</em>, <em>ignore_existing=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Machine.mkdir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Machine.mkdir" title="Permalink to this definition">¶</a></dt>
+<dd><p>As mkdir by adding an option to not fail if the folder exists</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Machine.put_dir">
+<code class="descname">put_dir</code><span class="sig-paren">(</span><em>source</em>, <em>target</em>, <em>filters=[]</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Machine.put_dir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Machine.put_dir" title="Permalink to this definition">¶</a></dt>
+<dd><p>Uploads the contents of the source directory to the target path.
+The target directory needs to exists. 
+All sub-directories in source are created under target.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Machine.successfully_connected">
+<code class="descname">successfully_connected</code><span class="sig-paren">(</span><em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Machine.successfully_connected"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Machine.successfully_connected" title="Permalink to this definition">¶</a></dt>
+<dd><p>Verify if the connection to the remote machine has succeed</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>logger</strong> -- The logger instance</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool) True if the connection has succeed, False if not</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.jobs.Machine.write_info">
+<code class="descname">write_info</code><span class="sig-paren">(</span><em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#Machine.write_info"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.Machine.write_info" title="Permalink to this definition">¶</a></dt>
+<dd><p>Prints the informations relative to the machine in the logger 
+(terminal traces and log file)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>logger</strong> -- The logger instance</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">None</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.jobs.develop_factorized_jobs">
+<code class="descclassname">commands.jobs.</code><code class="descname">develop_factorized_jobs</code><span class="sig-paren">(</span><em>config_jobs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#develop_factorized_jobs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.develop_factorized_jobs" title="Permalink to this definition">¶</a></dt>
+<dd><p>update information about the jobs for the file xml_file</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>config_jobs</strong> -- (Config) 
+the config corresponding to the jos description</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.jobs.getParamiko">
+<code class="descclassname">commands.jobs.</code><code class="descname">getParamiko</code><span class="sig-paren">(</span><em>logger=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#getParamiko"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.getParamiko" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.jobs.get_config_file_path">
+<code class="descclassname">commands.jobs.</code><code class="descname">get_config_file_path</code><span class="sig-paren">(</span><em>job_config_name</em>, <em>l_cfg_dir</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/jobs.html#get_config_file_path"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.jobs.get_config_file_path" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</div>
+<div class="section" id="module-commands.launcher">
+<span id="commands-launcher-module"></span><h2>commands.launcher module<a class="headerlink" href="#module-commands.launcher" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.launcher.Command">
+<em class="property">class </em><code class="descclassname">commands.launcher.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/launcher.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.launcher.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The launcher command generates a SALOME launcher.</p>
+<p>examples:
+&gt;&gt; sat launcher SALOME</p>
+<dl class="method">
+<dt id="commands.launcher.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/launcher.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.launcher.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all possible options for command 'sat launcher &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.launcher.Command.name">
+<code class="descname">name</code><em class="property"> = 'launcher'</em><a class="headerlink" href="#commands.launcher.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.launcher.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/launcher.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.launcher.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat launcher &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.launcher.copy_catalog">
+<code class="descclassname">commands.launcher.</code><code class="descname">copy_catalog</code><span class="sig-paren">(</span><em>config</em>, <em>catalog_path</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/launcher.html#copy_catalog"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.launcher.copy_catalog" title="Permalink to this definition">¶</a></dt>
+<dd><p>Copy the xml catalog file into the right location</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>catalog_path</strong> -- (str) the catalog file path</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(dict) 
+The environment dictionary corresponding to the file path.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.launcher.generate_catalog">
+<code class="descclassname">commands.launcher.</code><code class="descname">generate_catalog</code><span class="sig-paren">(</span><em>machines</em>, <em>config</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/launcher.html#generate_catalog"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.launcher.generate_catalog" title="Permalink to this definition">¶</a></dt>
+<dd><p>Generates an xml catalog file from a list of machines.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>machines</strong> -- (list) The list of machines to add in the catalog</li>
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(str) The catalog file path.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.launcher.generate_launch_file">
+<code class="descclassname">commands.launcher.</code><code class="descname">generate_launch_file</code><span class="sig-paren">(</span><em>config</em>, <em>logger</em>, <em>launcher_name</em>, <em>pathlauncher</em>, <em>display=True</em>, <em>additional_env={}</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/launcher.html#generate_launch_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.launcher.generate_launch_file" title="Permalink to this definition">¶</a></dt>
+<dd><p>Generates the launcher file.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+<li><strong>launcher_name</strong> -- (str) The name of the launcher to generate</li>
+<li><strong>pathlauncher</strong> -- (str) The path to the launcher to generate</li>
+<li><strong>display</strong> -- (bool) If False, do not print anything in the terminal</li>
+<li><strong>additional_env</strong> -- (dict) 
+The dict giving additional environment variables</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(str) The launcher file path.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-commands.log">
+<span id="commands-log-module"></span><h2>commands.log module<a class="headerlink" href="#module-commands.log" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.log.Command">
+<em class="property">class </em><code class="descclassname">commands.log.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/log.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.log.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The log command gives access to the logs produced by the salomeTools commands.</p>
+<p>examples:
+&gt;&gt; sat log</p>
+<dl class="method">
+<dt id="commands.log.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/log.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.log.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for command 'sat log &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.log.Command.name">
+<code class="descname">name</code><em class="property"> = 'log'</em><a class="headerlink" href="#commands.log.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.log.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/log.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.log.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat log &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.log.ask_value">
+<code class="descclassname">commands.log.</code><code class="descname">ask_value</code><span class="sig-paren">(</span><em>nb</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/log.html#ask_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.log.ask_value" title="Permalink to this definition">¶</a></dt>
+<dd><p>Ask for an int n. 0&lt;n&lt;nb</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>nb</strong> -- (int) The maximum value of the value to be returned by the user.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(int) 
+the value entered by the user. Return -1 if it is not as expected</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.log.getMaxFormat">
+<code class="descclassname">commands.log.</code><code class="descname">getMaxFormat</code><span class="sig-paren">(</span><em>aListOfStr</em>, <em>offset=1</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/log.html#getMaxFormat"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.log.getMaxFormat" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns format for columns width as '%-30s&quot;' for example</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.log.get_last_log_file">
+<code class="descclassname">commands.log.</code><code class="descname">get_last_log_file</code><span class="sig-paren">(</span><em>logDir</em>, <em>notShownCommands</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/log.html#get_last_log_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.log.get_last_log_file" title="Permalink to this definition">¶</a></dt>
+<dd><p>Used in case of last option. 
+Get the last log command file path.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>logDir</strong> -- (str) The directory where to search the log files</li>
+<li><strong>notShownCommands</strong> -- (list) the list of commands to ignore</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(str) the path to the last log file</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.log.print_log_command_in_terminal">
+<code class="descclassname">commands.log.</code><code class="descname">print_log_command_in_terminal</code><span class="sig-paren">(</span><em>filePath</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/log.html#print_log_command_in_terminal"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.log.print_log_command_in_terminal" title="Permalink to this definition">¶</a></dt>
+<dd><p>Print the contain of filePath. It contains a command log in xml format.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>filePath</strong> -- The command xml file from which extract the commands context and traces</li>
+<li><strong>logger</strong> -- (Logger) the logging instance to use in order to print.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.log.remove_log_file">
+<code class="descclassname">commands.log.</code><code class="descname">remove_log_file</code><span class="sig-paren">(</span><em>filePath</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/log.html#remove_log_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.log.remove_log_file" title="Permalink to this definition">¶</a></dt>
+<dd><p>if it exists, print a warning and remove the input file</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>filePath</strong> -- the path of the file to delete</li>
+<li><strong>logger</strong> -- (Logger) the logger instance to use for the print</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.log.show_last_logs">
+<code class="descclassname">commands.log.</code><code class="descname">show_last_logs</code><span class="sig-paren">(</span><em>logger</em>, <em>config</em>, <em>log_dirs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/log.html#show_last_logs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.log.show_last_logs" title="Permalink to this definition">¶</a></dt>
+<dd><p>Show last compilation logs</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.log.show_product_last_logs">
+<code class="descclassname">commands.log.</code><code class="descname">show_product_last_logs</code><span class="sig-paren">(</span><em>logger</em>, <em>config</em>, <em>product_log_dir</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/log.html#show_product_last_logs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.log.show_product_last_logs" title="Permalink to this definition">¶</a></dt>
+<dd><p>Show last compilation logs of a product</p>
+</dd></dl>
+
+</div>
+<div class="section" id="module-commands.make">
+<span id="commands-make-module"></span><h2>commands.make module<a class="headerlink" href="#module-commands.make" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.make.Command">
+<em class="property">class </em><code class="descclassname">commands.make.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/make.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.make.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The make command executes the 'make' command in the build directory.</p>
+<p>examples:
+&gt;&gt; sat make SALOME --products Python,KERNEL,GUI</p>
+<dl class="method">
+<dt id="commands.make.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/make.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.make.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for the command 'sat make &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.make.Command.name">
+<code class="descname">name</code><em class="property"> = 'make'</em><a class="headerlink" href="#commands.make.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.make.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/make.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.make.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat make &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.make.get_nb_proc">
+<code class="descclassname">commands.make.</code><code class="descname">get_nb_proc</code><span class="sig-paren">(</span><em>product_info</em>, <em>config</em>, <em>make_option</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/make.html#get_nb_proc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.make.get_nb_proc" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.make.get_products_list">
+<code class="descclassname">commands.make.</code><code class="descname">get_products_list</code><span class="sig-paren">(</span><em>options</em>, <em>cfg</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/make.html#get_products_list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.make.get_products_list" title="Permalink to this definition">¶</a></dt>
+<dd><p>method that gives the product list with their informations from 
+configuration regarding the passed options.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>options</strong> -- (Options) 
+The Options instance that stores the commands arguments</li>
+<li><strong>cfg</strong> -- (Config) The global configuration</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(list) The list of tuples (product name, product_informations).</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.make.log_res_step">
+<code class="descclassname">commands.make.</code><code class="descname">log_res_step</code><span class="sig-paren">(</span><em>logger</em>, <em>res</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/make.html#log_res_step"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.make.log_res_step" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.make.log_step">
+<code class="descclassname">commands.make.</code><code class="descname">log_step</code><span class="sig-paren">(</span><em>logger</em>, <em>header</em>, <em>step</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/make.html#log_step"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.make.log_step" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.make.make_all_products">
+<code class="descclassname">commands.make.</code><code class="descname">make_all_products</code><span class="sig-paren">(</span><em>config</em>, <em>products_infos</em>, <em>make_option</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/make.html#make_all_products"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.make.make_all_products" title="Permalink to this definition">¶</a></dt>
+<dd><p>Execute the proper configuration commands 
+in each product build directory.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>products_info</strong> -- (list) 
+List of (str, Config) =&gt; (product_name, product_info)</li>
+<li><strong>make_option</strong> -- (str) The options to add to the command</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(int) the number of failing commands.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.make.make_product">
+<code class="descclassname">commands.make.</code><code class="descname">make_product</code><span class="sig-paren">(</span><em>p_name_info</em>, <em>make_option</em>, <em>config</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/make.html#make_product"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.make.make_product" title="Permalink to this definition">¶</a></dt>
+<dd><p>Execute the proper configuration command(s) 
+in the product build directory.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>p_name_info</strong> -- (tuple) (str, Config) =&gt; (product_name, product_info)</li>
+<li><strong>make_option</strong> -- (str) The options to add to the command</li>
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(int) 1 if it fails, else 0.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-commands.makeinstall">
+<span id="commands-makeinstall-module"></span><h2>commands.makeinstall module<a class="headerlink" href="#module-commands.makeinstall" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.makeinstall.Command">
+<em class="property">class </em><code class="descclassname">commands.makeinstall.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/makeinstall.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.makeinstall.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The makeinstall command executes the 'make install' command in the build directory.
+In case of product constructed using a script (build_source : 'script'), 
+then the makeinstall command do nothing.</p>
+<p>examples:
+&gt;&gt; sat makeinstall SALOME --products KERNEL,GUI</p>
+<dl class="method">
+<dt id="commands.makeinstall.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/makeinstall.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.makeinstall.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for the command 'sat makeinstall &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.makeinstall.Command.name">
+<code class="descname">name</code><em class="property"> = 'makeinstall'</em><a class="headerlink" href="#commands.makeinstall.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.makeinstall.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/makeinstall.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.makeinstall.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat makeinstall &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.makeinstall.get_products_list">
+<code class="descclassname">commands.makeinstall.</code><code class="descname">get_products_list</code><span class="sig-paren">(</span><em>options</em>, <em>cfg</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/makeinstall.html#get_products_list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.makeinstall.get_products_list" title="Permalink to this definition">¶</a></dt>
+<dd><p>method that gives the product list with their informations from 
+configuration regarding the passed options.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>options</strong> -- (Options) 
+The Options instance that stores the commands arguments</li>
+<li><strong>cfg</strong> -- (Config) The global configuration</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(list) The list of (product name, product_informations).</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.makeinstall.log_res_step">
+<code class="descclassname">commands.makeinstall.</code><code class="descname">log_res_step</code><span class="sig-paren">(</span><em>logger</em>, <em>res</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/makeinstall.html#log_res_step"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.makeinstall.log_res_step" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.makeinstall.log_step">
+<code class="descclassname">commands.makeinstall.</code><code class="descname">log_step</code><span class="sig-paren">(</span><em>logger</em>, <em>header</em>, <em>step</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/makeinstall.html#log_step"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.makeinstall.log_step" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.makeinstall.makeinstall_all_products">
+<code class="descclassname">commands.makeinstall.</code><code class="descname">makeinstall_all_products</code><span class="sig-paren">(</span><em>config</em>, <em>products_infos</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/makeinstall.html#makeinstall_all_products"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.makeinstall.makeinstall_all_products" title="Permalink to this definition">¶</a></dt>
+<dd><p>Execute the proper configuration commands 
+in each product build directory.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>products_info</strong> -- (list) 
+List of (str, Config) =&gt; (product_name, product_info)</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(int) the number of failing commands.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.makeinstall.makeinstall_product">
+<code class="descclassname">commands.makeinstall.</code><code class="descname">makeinstall_product</code><span class="sig-paren">(</span><em>p_name_info</em>, <em>config</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/makeinstall.html#makeinstall_product"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.makeinstall.makeinstall_product" title="Permalink to this definition">¶</a></dt>
+<dd><p>Execute the proper configuration command(s) 
+in the product build directory.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>p_name_info</strong> -- (tuple) 
+(str, Config) =&gt; (product_name, product_info)</li>
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(int) 1 if it fails, else 0.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-commands.package">
+<span id="commands-package-module"></span><h2>commands.package module<a class="headerlink" href="#module-commands.package" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.package.Command">
+<em class="property">class </em><code class="descclassname">commands.package.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The package command creates an archive.
+There are 4 kinds of archive, which can be mixed:
+1- The binary archive. It contains all the product installation directories and a launcher.
+2- The sources archive. It contains the products archives, a project corresponding to the application and salomeTools.
+3- The project archive. It contains a project (give the project file path as argument).
+4- The salomeTools archive. It contains salomeTools.</p>
+<p>examples:
+&gt;&gt; sat package SALOME --binaries --sources</p>
+<dl class="method">
+<dt id="commands.package.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for command 'sat package &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.package.Command.name">
+<code class="descname">name</code><em class="property"> = 'package'</em><a class="headerlink" href="#commands.package.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.package.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat package &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.package.add_files">
+<code class="descclassname">commands.package.</code><code class="descname">add_files</code><span class="sig-paren">(</span><em>tar</em>, <em>name_archive</em>, <em>d_content</em>, <em>logger</em>, <em>f_exclude=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#add_files"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.add_files" title="Permalink to this definition">¶</a></dt>
+<dd><p>Create an archive containing all directories and files that are given 
+in the d_content argument.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>tar</strong> -- (tarfile) The tarfile instance used to make the archive.</li>
+<li><strong>name_archive</strong> -- (str) The name of the archive to make.</li>
+<li><strong>d_content</strong> -- (dict) 
+The dictionary that contain all directories and files to add in the archive.
+d_content[label] = (path_on_local_machine, path_in_archive)</li>
+<li><strong>logger</strong> -- (Logger) the logging instance</li>
+<li><strong>f_exclude</strong> -- (function) the function that filters</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(int) 0 if success, 1 if not.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.package.add_readme">
+<code class="descclassname">commands.package.</code><code class="descname">add_readme</code><span class="sig-paren">(</span><em>config</em>, <em>options</em>, <em>where</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#add_readme"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.add_readme" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.package.add_salomeTools">
+<code class="descclassname">commands.package.</code><code class="descname">add_salomeTools</code><span class="sig-paren">(</span><em>config</em>, <em>tmp_working_dir</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#add_salomeTools"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.add_salomeTools" title="Permalink to this definition">¶</a></dt>
+<dd><p>Prepare a version of salomeTools that has a specific local.pyconf file 
+configured for a source package.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration.</li>
+<li><strong>tmp_working_dir</strong> -- (str) 
+The temporary local directory containing some specific directories
+or files needed in the source package</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(str) 
+The path to the local salomeTools directory to add in the package</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.package.binary_package">
+<code class="descclassname">commands.package.</code><code class="descname">binary_package</code><span class="sig-paren">(</span><em>config</em>, <em>logger</em>, <em>options</em>, <em>tmp_working_dir</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#binary_package"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.binary_package" title="Permalink to this definition">¶</a></dt>
+<dd><p>Prepare a dictionary that stores all the needed directories and files 
+to add in a binary package.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration.</li>
+<li><strong>logger</strong> -- (Logger) the logging instance</li>
+<li><strong>options</strong> -- (OptResult) the options of the launched command</li>
+<li><strong>tmp_working_dir</strong> -- (str) 
+The temporary local directory containing some specific directories
+or files needed in the binary package</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(dict) 
+The dictionary that stores all the needed directories and files 
+to add in a binary package.
+{label : (path_on_local_machine, path_in_archive)}</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.package.create_project_for_src_package">
+<code class="descclassname">commands.package.</code><code class="descname">create_project_for_src_package</code><span class="sig-paren">(</span><em>config</em>, <em>tmp_working_dir</em>, <em>with_vcs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#create_project_for_src_package"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.create_project_for_src_package" title="Permalink to this definition">¶</a></dt>
+<dd><p>Create a specific project for a source package.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration.</li>
+<li><strong>tmp_working_dir</strong> -- (str)
+The temporary local directory containing some specific directories
+or files needed in the source package</li>
+<li><strong>with_vcs</strong> -- (bool) 
+True if the package is with vcs products 
+(not transformed into archive products)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(dict)
+The dictionary 
+{&quot;project&quot; : (produced project, project path in the archive)}</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.package.exclude_VCS_and_extensions">
+<code class="descclassname">commands.package.</code><code class="descname">exclude_VCS_and_extensions</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#exclude_VCS_and_extensions"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.exclude_VCS_and_extensions" title="Permalink to this definition">¶</a></dt>
+<dd><p>The function that is used to exclude from package the link to the 
+VCS repositories (like .git)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>filename</strong> -- (str) The filname to exclude (or not).</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool) True if the file has to be exclude</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.package.find_application_pyconf">
+<code class="descclassname">commands.package.</code><code class="descname">find_application_pyconf</code><span class="sig-paren">(</span><em>config</em>, <em>application_tmp_dir</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#find_application_pyconf"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.find_application_pyconf" title="Permalink to this definition">¶</a></dt>
+<dd><p>Find the application pyconf file and put it in the specific temporary 
+directory containing the specific project of a source package.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>config</strong> -- 'Config) The global configuration.</li>
+<li><strong>application_tmp_dir</strong> -- (str) 
+The path to the temporary application scripts directory of the project.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.package.find_product_scripts_and_pyconf">
+<code class="descclassname">commands.package.</code><code class="descname">find_product_scripts_and_pyconf</code><span class="sig-paren">(</span><em>p_name</em>, <em>p_info</em>, <em>config</em>, <em>with_vcs</em>, <em>compil_scripts_tmp_dir</em>, <em>env_scripts_tmp_dir</em>, <em>patches_tmp_dir</em>, <em>products_pyconf_tmp_dir</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#find_product_scripts_and_pyconf"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.find_product_scripts_and_pyconf" title="Permalink to this definition">¶</a></dt>
+<dd><p>Create a specific pyconf file for a given product. 
+Get its environment script, its compilation script 
+and patches and put it in the temporary working directory. 
+This method is used in the source package in order to
+construct the specific project.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>p_name</strong> -- (str) The name of the product.</li>
+<li><strong>p_info</strong> -- (Config) The specific configuration corresponding to the product</li>
+<li><strong>config</strong> -- (Config) The global configuration.</li>
+<li><strong>with_vcs</strong> -- (bool) 
+True if the package is with vcs products 
+(not transformed into archive products)</li>
+<li><strong>compil_scripts_tmp_dir</strong> -- (str) 
+The path to the temporary compilation scripts directory of the project.</li>
+<li><strong>env_scripts_tmp_dir</strong> -- (str) 
+The path to the temporary environment script directory of the project.</li>
+<li><strong>patches_tmp_dir</strong> -- (str) 
+The path to the temporary patch scripts directory of the project.</li>
+<li><strong>products_pyconf_tmp_dir</strong> -- (str) 
+The path to the temporary product scripts directory of the project.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.package.get_archives">
+<code class="descclassname">commands.package.</code><code class="descname">get_archives</code><span class="sig-paren">(</span><em>config</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#get_archives"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.get_archives" title="Permalink to this definition">¶</a></dt>
+<dd><p>Find all the products from an archive and all the products
+from a VCS (git, cvs, svn) repository.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration.</li>
+<li><strong>logger</strong> -- (Logger) The logging instance</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(Dict, List)
+The dictionary 
+{name_product : (local path of its archive, path in the package of its archive )}
+and the list of specific configuration corresponding to the vcs products</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.package.get_archives_vcs">
+<code class="descclassname">commands.package.</code><code class="descname">get_archives_vcs</code><span class="sig-paren">(</span><em>l_pinfo_vcs</em>, <em>sat</em>, <em>config</em>, <em>logger</em>, <em>tmp_working_dir</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#get_archives_vcs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.get_archives_vcs" title="Permalink to this definition">¶</a></dt>
+<dd><p>For sources package that require that all products from an archive, 
+one has to create some archive for the vcs products.
+So this method calls the clean and source command of sat 
+and then create the archives.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>l_pinfo_vcs</strong> -- (list) 
+The list of specific configuration corresponding to each vcs product</li>
+<li><strong>sat</strong> -- (Sat) 
+The Sat instance that can be called to clean and source the products</li>
+<li><strong>config</strong> -- (Config) The global configuration.</li>
+<li><strong>logger</strong> -- (Logger) The logging instance</li>
+<li><strong>tmp_working_dir</strong> -- (str) 
+The temporary local directory containing some specific directories
+or files needed in the source package</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(dict) 
+The dictionary that stores all the archives to add in the sourcepackage.
+{label : (path_on_local_machine, path_in_archive)}</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.package.hack_for_distene_licence">
+<code class="descclassname">commands.package.</code><code class="descname">hack_for_distene_licence</code><span class="sig-paren">(</span><em>filepath</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#hack_for_distene_licence"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.hack_for_distene_licence" title="Permalink to this definition">¶</a></dt>
+<dd><p>Replace the distene licence env variable by a call to a file.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>filepath</strong> -- (str) The path to the launcher to modify.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.package.make_archive">
+<code class="descclassname">commands.package.</code><code class="descname">make_archive</code><span class="sig-paren">(</span><em>prod_name</em>, <em>prod_info</em>, <em>where</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#make_archive"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.make_archive" title="Permalink to this definition">¶</a></dt>
+<dd><p>Create an archive of a product by searching its source directory.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>prod_name</strong> -- (str) The name of the product.</li>
+<li><strong>prod_info</strong> -- (Config)
+The specific configuration corresponding to the product</li>
+<li><strong>where</strong> -- (str) 
+The path of the repository where to put the resulting archive</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(str) The path of the resulting archive</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.package.produce_install_bin_file">
+<code class="descclassname">commands.package.</code><code class="descname">produce_install_bin_file</code><span class="sig-paren">(</span><em>config</em>, <em>logger</em>, <em>file_dir</em>, <em>d_sub</em>, <em>file_name</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#produce_install_bin_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.produce_install_bin_file" title="Permalink to this definition">¶</a></dt>
+<dd><p>Create a bash shell script which do substitutions in BIRARIES dir 
+in order to use it for extra compilations.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration.</li>
+<li><strong>logger</strong> -- (Logger) the logging instance</li>
+<li><strong>file_dir</strong> -- (str) the directory where to put the files</li>
+<li><strong>d_sub</strong> -- (dict) 
+the dictionnary that contains the substitutions to be done</li>
+<li><strong>file_name</strong> -- (str) the name of the install script file</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(str) the produced file</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.package.produce_relative_env_files">
+<code class="descclassname">commands.package.</code><code class="descname">produce_relative_env_files</code><span class="sig-paren">(</span><em>config</em>, <em>logger</em>, <em>file_dir</em>, <em>binaries_dir_name</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#produce_relative_env_files"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.produce_relative_env_files" title="Permalink to this definition">¶</a></dt>
+<dd><p>Create some specific environment files for the binary package.
+These files use relative paths.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration.</li>
+<li><strong>logger</strong> -- (Logger) the logging instance</li>
+<li><strong>file_dir</strong> -- (str) the directory where to put the files</li>
+<li><strong>binaries_dir_name</strong> -- (str) 
+The name of the repository where the binaries are, in the archive.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(list) The list of path of the produced environment files</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.package.produce_relative_launcher">
+<code class="descclassname">commands.package.</code><code class="descname">produce_relative_launcher</code><span class="sig-paren">(</span><em>config</em>, <em>logger</em>, <em>file_dir</em>, <em>file_name</em>, <em>binaries_dir_name</em>, <em>with_commercial=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#produce_relative_launcher"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.produce_relative_launcher" title="Permalink to this definition">¶</a></dt>
+<dd><p>Create a specific SALOME launcher for the binary package.
+This launcher uses relative paths.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration.</li>
+<li><strong>logger</strong> -- (Logger) the logging instance</li>
+<li><strong>file_dir</strong> -- (str) the directory where to put the launcher</li>
+<li><strong>file_name</strong> -- (str) The launcher name</li>
+<li><strong>binaries_dir_name</strong> -- (str) 
+the name of the repository where the binaries are, in the archive.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(str) the path of the produced launcher</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.package.product_appli_creation_script">
+<code class="descclassname">commands.package.</code><code class="descname">product_appli_creation_script</code><span class="sig-paren">(</span><em>config</em>, <em>logger</em>, <em>file_dir</em>, <em>binaries_dir_name</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#product_appli_creation_script"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.product_appli_creation_script" title="Permalink to this definition">¶</a></dt>
+<dd><p>Create a script that can produce an application (EDF style) 
+in the binary package.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration.</li>
+<li><strong>logger</strong> -- (Logger) the logging instance</li>
+<li><strong>file_dir</strong> -- (str) the directory where to put the file</li>
+<li><strong>binaries_dir_name</strong> -- (str) 
+The name of the repository where the binaries are, in the archive.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(str) The path of the produced script file</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.package.project_package">
+<code class="descclassname">commands.package.</code><code class="descname">project_package</code><span class="sig-paren">(</span><em>project_file_path</em>, <em>tmp_working_dir</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#project_package"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.project_package" title="Permalink to this definition">¶</a></dt>
+<dd><p>Prepare a dictionary that stores all the needed directories and files 
+to add in a project package.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>project_file_path</strong> -- (str) The path to the local project.</li>
+<li><strong>tmp_working_dir</strong> -- (str) 
+The temporary local directory containing some specific directories
+or files needed in the project package</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(dict)
+The dictionary that stores all the needed directories and files
+to add in a project package.
+{label : (path_on_local_machine, path_in_archive)}</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.package.source_package">
+<code class="descclassname">commands.package.</code><code class="descname">source_package</code><span class="sig-paren">(</span><em>sat</em>, <em>config</em>, <em>logger</em>, <em>options</em>, <em>tmp_working_dir</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#source_package"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.source_package" title="Permalink to this definition">¶</a></dt>
+<dd><p>Prepare a dictionary that stores all the needed directories and files 
+to add in a source package.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration.</li>
+<li><strong>logger</strong> -- (Logger) the logging instance</li>
+<li><strong>options</strong> -- (OptResult) the options of the launched command</li>
+<li><strong>tmp_working_dir</strong> -- (str)
+The temporary local directory containing some specific directories
+or files needed in the binary package</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(dict)
+the dictionary that stores all the needed directories and files
+to add in a source package.
+{label : (path_on_local_machine, path_in_archive)}</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.package.update_config">
+<code class="descclassname">commands.package.</code><code class="descname">update_config</code><span class="sig-paren">(</span><em>config</em>, <em>prop</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/package.html#update_config"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.package.update_config" title="Permalink to this definition">¶</a></dt>
+<dd><p>Remove from config.APPLICATION.products the products 
+that have the property given as input.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>config</strong> -- (Config) The global config.</li>
+<li><strong>prop</strong> -- (str) The property to filter</li>
+<li><strong>value</strong> -- (str) The value of the property to filter</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-commands.patch">
+<span id="commands-patch-module"></span><h2>commands.patch module<a class="headerlink" href="#module-commands.patch" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.patch.Command">
+<em class="property">class </em><code class="descclassname">commands.patch.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/patch.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.patch.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The patch command apply the patches on the sources of the application products
+if there is any.</p>
+<p>examples:
+&gt;&gt; sat patch SALOME --products qt,boost</p>
+<dl class="method">
+<dt id="commands.patch.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/patch.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.patch.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for command 'sat patch &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.patch.Command.name">
+<code class="descname">name</code><em class="property"> = 'patch'</em><a class="headerlink" href="#commands.patch.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.patch.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/patch.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.patch.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat patch &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.patch.apply_patch">
+<code class="descclassname">commands.patch.</code><code class="descname">apply_patch</code><span class="sig-paren">(</span><em>config</em>, <em>product_info</em>, <em>max_product_name_len</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/patch.html#apply_patch"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.patch.apply_patch" title="Permalink to this definition">¶</a></dt>
+<dd><p>The method called to apply patches on a product</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>product_info</strong> -- (Config) 
+The configuration specific to the product to be patched</li>
+<li><strong>logger</strong> -- (Logger: 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(RCO.ReturnCode)</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-commands.prepare">
+<span id="commands-prepare-module"></span><h2>commands.prepare module<a class="headerlink" href="#module-commands.prepare" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.prepare.Command">
+<em class="property">class </em><code class="descclassname">commands.prepare.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/prepare.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.prepare.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The prepare command gets the sources of the application products 
+and apply the patches if there is any.</p>
+<p>examples:
+&gt;&gt; sat prepare SALOME --products KERNEL,GUI</p>
+<dl class="method">
+<dt id="commands.prepare.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/prepare.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.prepare.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for command 'sat prepare &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.prepare.Command.name">
+<code class="descname">name</code><em class="property"> = 'prepare'</em><a class="headerlink" href="#commands.prepare.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.prepare.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/prepare.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.prepare.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat prepare &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.prepare.find_products_already_getted">
+<code class="descclassname">commands.prepare.</code><code class="descname">find_products_already_getted</code><span class="sig-paren">(</span><em>l_products</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/prepare.html#find_products_already_getted"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.prepare.find_products_already_getted" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the list of products that have an existing source directory.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>l_products</strong> -- (list) The list of products to check</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(list) 
+The list of product configurations 
+that have an existing source directory.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.prepare.find_products_with_patchs">
+<code class="descclassname">commands.prepare.</code><code class="descname">find_products_with_patchs</code><span class="sig-paren">(</span><em>l_products</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/prepare.html#find_products_with_patchs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.prepare.find_products_with_patchs" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the list of products that have one or more patches.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>l_products</strong> -- (list) The list of products to check</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(list) 
+The list of product configurations 
+that have one or more patches.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.prepare.remove_products">
+<code class="descclassname">commands.prepare.</code><code class="descname">remove_products</code><span class="sig-paren">(</span><em>arguments</em>, <em>l_products_info</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/prepare.html#remove_products"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.prepare.remove_products" title="Permalink to this definition">¶</a></dt>
+<dd><p>Removes the products in l_products_info from arguments list.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>arguments</strong> -- (str) The arguments from which to remove products</li>
+<li><strong>l_products_info</strong> -- (list) 
+List of (str, Config) =&gt; (product_name, product_info)</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(str) The updated arguments.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-commands.profile">
+<span id="commands-profile-module"></span><h2>commands.profile module<a class="headerlink" href="#module-commands.profile" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.profile.Command">
+<em class="property">class </em><code class="descclassname">commands.profile.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/profile.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.profile.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The profile command creates default profile.</p>
+<p>examples: 
+&gt;&gt; sat profile [PRODUCT] 
+&gt;&gt; sat profile --prefix (string)
+&gt;&gt; sat profile --name (string)
+&gt;&gt; sat profile --force
+&gt;&gt; sat profile --version (string) 
+&gt;&gt; sat profile --slogan (string)</p>
+<dl class="method">
+<dt id="commands.profile.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/profile.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.profile.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for command 'sat profile &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.profile.Command.name">
+<code class="descname">name</code><em class="property"> = 'profile'</em><a class="headerlink" href="#commands.profile.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.profile.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/profile.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.profile.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat profile &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.profile.generate_profile_sources">
+<code class="descclassname">commands.profile.</code><code class="descname">generate_profile_sources</code><span class="sig-paren">(</span><em>config</em>, <em>options</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/profile.html#generate_profile_sources"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.profile.generate_profile_sources" title="Permalink to this definition">¶</a></dt>
+<dd><p>Generates the sources of the profile</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.profile.get_profile_name">
+<code class="descclassname">commands.profile.</code><code class="descname">get_profile_name</code><span class="sig-paren">(</span><em>options</em>, <em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/profile.html#get_profile_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.profile.get_profile_name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="class">
+<dt id="commands.profile.profileConfigReader">
+<em class="property">class </em><code class="descclassname">commands.profile.</code><code class="descname">profileConfigReader</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/profile.html#profileConfigReader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.profile.profileConfigReader" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="../apidoc_src/src.html#src.pyconf.ConfigReader" title="src.pyconf.ConfigReader"><code class="xref py py-class docutils literal"><span class="pre">src.pyconf.ConfigReader</span></code></a></p>
+<dl class="method">
+<dt id="commands.profile.profileConfigReader.parseMapping">
+<code class="descname">parseMapping</code><span class="sig-paren">(</span><em>parent</em>, <em>suffix</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/profile.html#profileConfigReader.parseMapping"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.profile.profileConfigReader.parseMapping" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="commands.profile.profileReference">
+<em class="property">class </em><code class="descclassname">commands.profile.</code><code class="descname">profileReference</code><span class="sig-paren">(</span><em>config</em>, <em>type</em>, <em>ident</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/profile.html#profileReference"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.profile.profileReference" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="../apidoc_src/src.html#src.pyconf.Reference" title="src.pyconf.Reference"><code class="xref py py-class docutils literal"><span class="pre">src.pyconf.Reference</span></code></a></p>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.profile.update_pyconf">
+<code class="descclassname">commands.profile.</code><code class="descname">update_pyconf</code><span class="sig-paren">(</span><em>config</em>, <em>options</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/profile.html#update_pyconf"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.profile.update_pyconf" title="Permalink to this definition">¶</a></dt>
+<dd><p>Updates the pyconf</p>
+</dd></dl>
+
+</div>
+<div class="section" id="module-commands.run">
+<span id="commands-run-module"></span><h2>commands.run module<a class="headerlink" href="#module-commands.run" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.run.Command">
+<em class="property">class </em><code class="descclassname">commands.run.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/run.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.run.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The run command runs the application launcher with the given arguments.</p>
+<dl class="docutils">
+<dt>examples:</dt>
+<dd>&gt;&gt; sat run SALOME</dd>
+</dl>
+<dl class="method">
+<dt id="commands.run.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/run.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.run.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for command 'sat run &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.run.Command.name">
+<code class="descname">name</code><em class="property"> = 'run'</em><a class="headerlink" href="#commands.run.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.run.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/run.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.run.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat run &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-commands.script">
+<span id="commands-script-module"></span><h2>commands.script module<a class="headerlink" href="#module-commands.script" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.script.Command">
+<em class="property">class </em><code class="descclassname">commands.script.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/script.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.script.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The script command executes the script(s) of the the given products in the build directory.
+This is done only for the products that are constructed using a script (build_source : 'script').
+Otherwise, nothing is done.</p>
+<dl class="docutils">
+<dt>examples:</dt>
+<dd>&gt;&gt; sat script SALOME --products Python,numpy</dd>
+</dl>
+<dl class="method">
+<dt id="commands.script.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/script.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.script.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for the command 'sat script &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.script.Command.name">
+<code class="descname">name</code><em class="property"> = 'script'</em><a class="headerlink" href="#commands.script.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.script.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/script.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.script.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat script &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.script.get_products_list">
+<code class="descclassname">commands.script.</code><code class="descname">get_products_list</code><span class="sig-paren">(</span><em>options</em>, <em>cfg</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/script.html#get_products_list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.script.get_products_list" title="Permalink to this definition">¶</a></dt>
+<dd><p>Gives the product list with their informations from 
+configuration regarding the passed options.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>options</strong> -- (Options) 
+The Options instance that stores the commands arguments</li>
+<li><strong>cfg</strong> -- (Config) The global configuration</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(list) The list of (product name, product_informations).</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.script.log_res_step">
+<code class="descclassname">commands.script.</code><code class="descname">log_res_step</code><span class="sig-paren">(</span><em>logger</em>, <em>res</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/script.html#log_res_step"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.script.log_res_step" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.script.log_step">
+<code class="descclassname">commands.script.</code><code class="descname">log_step</code><span class="sig-paren">(</span><em>logger</em>, <em>header</em>, <em>step</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/script.html#log_step"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.script.log_step" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.script.run_script_all_products">
+<code class="descclassname">commands.script.</code><code class="descname">run_script_all_products</code><span class="sig-paren">(</span><em>config</em>, <em>products_infos</em>, <em>nb_proc</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/script.html#run_script_all_products"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.script.run_script_all_products" title="Permalink to this definition">¶</a></dt>
+<dd><p>Execute the script in each product build directory.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>products_info</strong> -- (list) 
+List of (str, Config) =&gt; (product_name, product_info)</li>
+<li><strong>nb_proc</strong> -- (int) The number of processors to use</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(int) The number of failing commands.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.script.run_script_of_product">
+<code class="descclassname">commands.script.</code><code class="descname">run_script_of_product</code><span class="sig-paren">(</span><em>p_name_info</em>, <em>nb_proc</em>, <em>config</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/script.html#run_script_of_product"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.script.run_script_of_product" title="Permalink to this definition">¶</a></dt>
+<dd><p>Execute the proper configuration command(s) 
+in the product build directory.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>p_name_info</strong> -- (tuple) 
+(str, Config) =&gt; (product_name, product_info)</li>
+<li><strong>nb_proc</strong> -- (int) The number of processors to use</li>
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(int) 1 if it fails, else 0.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-commands.shell">
+<span id="commands-shell-module"></span><h2>commands.shell module<a class="headerlink" href="#module-commands.shell" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.shell.Command">
+<em class="property">class </em><code class="descclassname">commands.shell.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/shell.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.shell.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The shell command executes the shell command passed as argument.</p>
+<dl class="docutils">
+<dt>examples:</dt>
+<dd>&gt;&gt; sat shell --command 'ls -lt /tmp'</dd>
+</dl>
+<dl class="method">
+<dt id="commands.shell.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/shell.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.shell.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for the command 'sat shell &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.shell.Command.name">
+<code class="descname">name</code><em class="property"> = 'shell'</em><a class="headerlink" href="#commands.shell.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.shell.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/shell.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.shell.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat shell &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-commands.source">
+<span id="commands-source-module"></span><h2>commands.source module<a class="headerlink" href="#module-commands.source" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.source.Command">
+<em class="property">class </em><code class="descclassname">commands.source.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/source.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.source.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The source command gets the sources of the application products
+from cvs, git or an archive.</p>
+<p>examples:
+&gt;&gt; sat source SALOME --products KERNEL,GUI</p>
+<dl class="method">
+<dt id="commands.source.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/source.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.source.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for command 'sat source &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.source.Command.name">
+<code class="descname">name</code><em class="property"> = 'source'</em><a class="headerlink" href="#commands.source.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.source.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/source.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.source.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat source &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.source.check_sources">
+<code class="descclassname">commands.source.</code><code class="descname">check_sources</code><span class="sig-paren">(</span><em>product_info</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/source.html#check_sources"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.source.check_sources" title="Permalink to this definition">¶</a></dt>
+<dd><p>Check that the sources are correctly get, 
+using the files to be tested in product information</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>product_info</strong> -- (Config)
+The configuration specific to the product to be prepared</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to be used for the logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(bool) 
+True if the files exists (or no files to test is provided).</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.source.get_all_product_sources">
+<code class="descclassname">commands.source.</code><code class="descname">get_all_product_sources</code><span class="sig-paren">(</span><em>config</em>, <em>products</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/source.html#get_all_product_sources"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.source.get_all_product_sources" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get all the product sources.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>products</strong> -- (list) 
+The list of tuples (product name, product informations)</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to be used for the logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(int,dict) 
+The tuple (number of success, dictionary product_name/success_fail)</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.source.get_product_sources">
+<code class="descclassname">commands.source.</code><code class="descname">get_product_sources</code><span class="sig-paren">(</span><em>config</em>, <em>product_info</em>, <em>is_dev</em>, <em>source_dir</em>, <em>logger</em>, <em>pad</em>, <em>checkout=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/source.html#get_product_sources"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.source.get_product_sources" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the product sources.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>product_info</strong> -- (Config) 
+The configuration specific to the product to be prepared</li>
+<li><strong>is_dev</strong> -- (bool) True if the product is in development mode</li>
+<li><strong>source_dir</strong> -- (Path) 
+The Path instance corresponding to the directory 
+where to put the sources</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+<li><strong>pad</strong> -- (int) The gap to apply for the terminal display</li>
+<li><strong>checkout</strong> -- (bool) If True, get the source in checkout mode</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(bool) True if it succeed, else False</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.source.get_source_for_dev">
+<code class="descclassname">commands.source.</code><code class="descname">get_source_for_dev</code><span class="sig-paren">(</span><em>config</em>, <em>product_info</em>, <em>source_dir</em>, <em>logger</em>, <em>pad</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/source.html#get_source_for_dev"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.source.get_source_for_dev" title="Permalink to this definition">¶</a></dt>
+<dd><p>Called if the product is in development mode</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>product_info</strong> -- (Config) 
+The configuration specific to the product to be prepared</li>
+<li><strong>source_dir</strong> -- (Path)
+The Path instance corresponding to the directory where to put the sources</li>
+<li><strong>logger</strong> -- (Logger)
+The logger instance to use for the display and logging</li>
+<li><strong>pad</strong> -- (int) The gap to apply for the terminal display</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(bool) True if it succeed, else False</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.source.get_source_from_archive">
+<code class="descclassname">commands.source.</code><code class="descname">get_source_from_archive</code><span class="sig-paren">(</span><em>product_info</em>, <em>source_dir</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/source.html#get_source_from_archive"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.source.get_source_from_archive" title="Permalink to this definition">¶</a></dt>
+<dd><p>The method called if the product is to be get in archive mode</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>product_info</strong> -- (Config)
+The configuration specific to 
+the product to be prepared</li>
+<li><strong>source_dir</strong> -- (Path)
+The Path instance corresponding to the directory
+where to put the sources</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(bool) True if it succeed, else False</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.source.get_source_from_cvs">
+<code class="descclassname">commands.source.</code><code class="descname">get_source_from_cvs</code><span class="sig-paren">(</span><em>user</em>, <em>product_info</em>, <em>source_dir</em>, <em>checkout</em>, <em>logger</em>, <em>pad</em>, <em>environ=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/source.html#get_source_from_cvs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.source.get_source_from_cvs" title="Permalink to this definition">¶</a></dt>
+<dd><p>The method called if the product is to be get in cvs mode</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>user</strong> -- (str) The user to use in for the cvs command</li>
+<li><strong>product_info</strong> -- (Config) 
+The configuration specific to the product to be prepared</li>
+<li><strong>source_dir</strong> -- (Path) 
+The Path instance corresponding to the directory 
+where to put the sources</li>
+<li><strong>checkout</strong> -- (bool) If True, get the source in checkout mode</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+<li><strong>pad</strong> -- (int) The gap to apply for the terminal display</li>
+<li><strong>environ</strong> -- (src.environment.Environ) 
+The environment to source when extracting.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(bool) True if it succeed, else False</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.source.get_source_from_dir">
+<code class="descclassname">commands.source.</code><code class="descname">get_source_from_dir</code><span class="sig-paren">(</span><em>product_info</em>, <em>source_dir</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/source.html#get_source_from_dir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.source.get_source_from_dir" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.source.get_source_from_git">
+<code class="descclassname">commands.source.</code><code class="descname">get_source_from_git</code><span class="sig-paren">(</span><em>product_info</em>, <em>source_dir</em>, <em>logger</em>, <em>pad</em>, <em>is_dev=False</em>, <em>environ=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/source.html#get_source_from_git"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.source.get_source_from_git" title="Permalink to this definition">¶</a></dt>
+<dd><p>Called if the product is to be get in git mode</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>product_info</strong> -- (Config) 
+The configuration specific to the product to be prepared</li>
+<li><strong>source_dir</strong> -- (Path)
+The Path instance corresponding to the
+directory where to put the sources</li>
+<li><strong>Logger</strong> (<em>logger</em>) -- (Logger) 
+The logger instance to use for the display and logging</li>
+<li><strong>pad</strong> -- (int) The gap to apply for the terminal display</li>
+<li><strong>is_dev</strong> -- (bool) True if the product is in development mode</li>
+<li><strong>environ</strong> -- (src.environment.Environ)
+The environment to source when extracting.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(bool) True if it succeed, else False</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.source.get_source_from_svn">
+<code class="descclassname">commands.source.</code><code class="descname">get_source_from_svn</code><span class="sig-paren">(</span><em>user</em>, <em>product_info</em>, <em>source_dir</em>, <em>checkout</em>, <em>logger</em>, <em>environ=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/source.html#get_source_from_svn"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.source.get_source_from_svn" title="Permalink to this definition">¶</a></dt>
+<dd><p>The method called if the product is to be get in svn mode</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>user</strong> -- (str) The user to use in for the svn command</li>
+<li><strong>product_info</strong> -- (Config)
+The configuration specific to the product to be prepared</li>
+<li><strong>source_dir</strong> -- (Path)
+The Path instance corresponding to the directory 
+where to put the sources</li>
+<li><strong>checkout</strong> -- (boolean) 
+If True, get the source in checkout mode</li>
+<li><strong>logger</strong> -- (Logger)
+The logger instance to use for the display and logging</li>
+<li><strong>environ</strong> -- (src.environment.Environ)
+The environment to source when extracting.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(bool) True if it succeed, else False</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-commands.template">
+<span id="commands-template-module"></span><h2>commands.template module<a class="headerlink" href="#module-commands.template" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.template.Command">
+<em class="property">class </em><code class="descclassname">commands.template.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/template.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.template.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The template command creates the sources for a SALOME module from a template.</p>
+<p>examples:
+&gt;&gt; sat template --name my_product_name --template PythonComponent --target /tmp</p>
+<dl class="method">
+<dt id="commands.template.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/template.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.template.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for command 'sat template &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.template.Command.name">
+<code class="descname">name</code><em class="property"> = 'template'</em><a class="headerlink" href="#commands.template.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.template.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/template.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.template.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat template &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="commands.template.TParam">
+<em class="property">class </em><code class="descclassname">commands.template.</code><code class="descname">TParam</code><span class="sig-paren">(</span><em>param_def</em>, <em>compo_name</em>, <em>dico=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/template.html#TParam"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.template.TParam" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="method">
+<dt id="commands.template.TParam.check_value">
+<code class="descname">check_value</code><span class="sig-paren">(</span><em>val</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/template.html#TParam.check_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.template.TParam.check_value" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="commands.template.TemplateSettings">
+<em class="property">class </em><code class="descclassname">commands.template.</code><code class="descname">TemplateSettings</code><span class="sig-paren">(</span><em>compo_name</em>, <em>settings_file</em>, <em>target</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/template.html#TemplateSettings"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.template.TemplateSettings" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="method">
+<dt id="commands.template.TemplateSettings.check_file_for_substitution">
+<code class="descname">check_file_for_substitution</code><span class="sig-paren">(</span><em>file_</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/template.html#TemplateSettings.check_file_for_substitution"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.template.TemplateSettings.check_file_for_substitution" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.template.TemplateSettings.check_user_values">
+<code class="descname">check_user_values</code><span class="sig-paren">(</span><em>values</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/template.html#TemplateSettings.check_user_values"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.template.TemplateSettings.check_user_values" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.template.TemplateSettings.get_parameters">
+<code class="descname">get_parameters</code><span class="sig-paren">(</span><em>conf_values=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/template.html#TemplateSettings.get_parameters"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.template.TemplateSettings.get_parameters" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.template.TemplateSettings.get_pyconf_parameters">
+<code class="descname">get_pyconf_parameters</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/template.html#TemplateSettings.get_pyconf_parameters"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.template.TemplateSettings.get_pyconf_parameters" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.template.TemplateSettings.has_pyconf">
+<code class="descname">has_pyconf</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/template.html#TemplateSettings.has_pyconf"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.template.TemplateSettings.has_pyconf" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.template.get_dico_param">
+<code class="descclassname">commands.template.</code><code class="descname">get_dico_param</code><span class="sig-paren">(</span><em>dico</em>, <em>key</em>, <em>default</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/template.html#get_dico_param"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.template.get_dico_param" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.template.get_template_info">
+<code class="descclassname">commands.template.</code><code class="descname">get_template_info</code><span class="sig-paren">(</span><em>config</em>, <em>template_name</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/template.html#get_template_info"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.template.get_template_info" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.template.prepare_from_template">
+<code class="descclassname">commands.template.</code><code class="descname">prepare_from_template</code><span class="sig-paren">(</span><em>config</em>, <em>name</em>, <em>template</em>, <em>target_dir</em>, <em>conf_values</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/template.html#prepare_from_template"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.template.prepare_from_template" title="Permalink to this definition">¶</a></dt>
+<dd><p>Prepares a module from a template.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.template.search_template">
+<code class="descclassname">commands.template.</code><code class="descname">search_template</code><span class="sig-paren">(</span><em>config</em>, <em>template</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/template.html#search_template"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.template.search_template" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</div>
+<div class="section" id="module-commands.test">
+<span id="commands-test-module"></span><h2>commands.test module<a class="headerlink" href="#module-commands.test" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="commands.test.Command">
+<em class="property">class </em><code class="descclassname">commands.test.</code><code class="descname">Command</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/test.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.test.Command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">src.salomeTools._BaseCommand</span></code></p>
+<p>The test command runs a test base on a SALOME installation.</p>
+<dl class="docutils">
+<dt>examples:</dt>
+<dd>&gt;&gt; sat test SALOME --grid GEOM --session light</dd>
+</dl>
+<dl class="method">
+<dt id="commands.test.Command.check_option">
+<code class="descname">check_option</code><span class="sig-paren">(</span><em>options</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/test.html#Command.check_option"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.test.Command.check_option" title="Permalink to this definition">¶</a></dt>
+<dd><p>Check the options</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>options</strong> -- (Options) The options</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">None</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="commands.test.Command.getParser">
+<code class="descname">getParser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/test.html#Command.getParser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.test.Command.getParser" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define all options for command 'sat test &lt;options&gt;'</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="commands.test.Command.name">
+<code class="descname">name</code><em class="property"> = 'test'</em><a class="headerlink" href="#commands.test.Command.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="commands.test.Command.run">
+<code class="descname">run</code><span class="sig-paren">(</span><em>cmd_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/test.html#Command.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.test.Command.run" title="Permalink to this definition">¶</a></dt>
+<dd><p>method called for command 'sat test &lt;options&gt;'</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.test.ask_a_path">
+<code class="descclassname">commands.test.</code><code class="descname">ask_a_path</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/test.html#ask_a_path"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.test.ask_a_path" title="Permalink to this definition">¶</a></dt>
+<dd><p>interactive as using 'raw_input'</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.test.check_remote_machine">
+<code class="descclassname">commands.test.</code><code class="descname">check_remote_machine</code><span class="sig-paren">(</span><em>machine_name</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/test.html#check_remote_machine"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.test.check_remote_machine" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.test.create_test_report">
+<code class="descclassname">commands.test.</code><code class="descname">create_test_report</code><span class="sig-paren">(</span><em>config</em>, <em>xml_history_path</em>, <em>dest_path</em>, <em>retcode</em>, <em>xmlname=''</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/test.html#create_test_report"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.test.create_test_report" title="Permalink to this definition">¶</a></dt>
+<dd><p>Creates the XML report for a product.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.test.generate_history_xml_path">
+<code class="descclassname">commands.test.</code><code class="descname">generate_history_xml_path</code><span class="sig-paren">(</span><em>config</em>, <em>test_base</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/test.html#generate_history_xml_path"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.test.generate_history_xml_path" title="Permalink to this definition">¶</a></dt>
+<dd><p>Generate the name of the xml file that contain the history of the tests
+on the machine with the current APPLICATION and the current test base.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>test_base</strong> -- (str) The test base name (or path)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(str) the full path of the history xml file</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="commands.test.move_test_results">
+<code class="descclassname">commands.test.</code><code class="descname">move_test_results</code><span class="sig-paren">(</span><em>in_dir</em>, <em>what</em>, <em>out_dir</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/test.html#move_test_results"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.test.move_test_results" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="commands.test.save_file">
+<code class="descclassname">commands.test.</code><code class="descname">save_file</code><span class="sig-paren">(</span><em>filename</em>, <em>base</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/commands/test.html#save_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#commands.test.save_file" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</div>
+<div class="section" id="module-commands">
+<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-commands" title="Permalink to this headline">¶</a></h2>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../index.html">
+              <img class="logo" src="../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p>
+  <h3><a href="../index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">commands package</a><ul>
+<li><a class="reference internal" href="#submodules">Submodules</a></li>
+<li><a class="reference internal" href="#module-commands.application">commands.application module</a></li>
+<li><a class="reference internal" href="#module-commands.check">commands.check module</a></li>
+<li><a class="reference internal" href="#module-commands.clean">commands.clean module</a></li>
+<li><a class="reference internal" href="#module-commands.compile">commands.compile module</a></li>
+<li><a class="reference internal" href="#module-commands.config">commands.config module</a></li>
+<li><a class="reference internal" href="#module-commands.configure">commands.configure module</a></li>
+<li><a class="reference internal" href="#module-commands.environ">commands.environ module</a></li>
+<li><a class="reference internal" href="#module-commands.find_duplicates">commands.find_duplicates module</a></li>
+<li><a class="reference internal" href="#module-commands.generate">commands.generate module</a></li>
+<li><a class="reference internal" href="#module-commands.init">commands.init module</a></li>
+<li><a class="reference internal" href="#module-commands.job">commands.job module</a></li>
+<li><a class="reference internal" href="#module-commands.jobs">commands.jobs module</a></li>
+<li><a class="reference internal" href="#module-commands.launcher">commands.launcher module</a></li>
+<li><a class="reference internal" href="#module-commands.log">commands.log module</a></li>
+<li><a class="reference internal" href="#module-commands.make">commands.make module</a></li>
+<li><a class="reference internal" href="#module-commands.makeinstall">commands.makeinstall module</a></li>
+<li><a class="reference internal" href="#module-commands.package">commands.package module</a></li>
+<li><a class="reference internal" href="#module-commands.patch">commands.patch module</a></li>
+<li><a class="reference internal" href="#module-commands.prepare">commands.prepare module</a></li>
+<li><a class="reference internal" href="#module-commands.profile">commands.profile module</a></li>
+<li><a class="reference internal" href="#module-commands.run">commands.run module</a></li>
+<li><a class="reference internal" href="#module-commands.script">commands.script module</a></li>
+<li><a class="reference internal" href="#module-commands.shell">commands.shell module</a></li>
+<li><a class="reference internal" href="#module-commands.source">commands.source module</a></li>
+<li><a class="reference internal" href="#module-commands.template">commands.template module</a></li>
+<li><a class="reference internal" href="#module-commands.test">commands.test module</a></li>
+<li><a class="reference internal" href="#module-commands">Module contents</a></li>
+</ul>
+</li>
+</ul>
+<div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../index.html">Documentation overview</a><ul>
+  <li><a href="modules.html">commands</a><ul>
+      <li>Previous: <a href="modules.html" title="previous chapter">commands</a></li>
+      <li>Next: <a href="../release_notes/release_notes_5.0.0.html" title="next chapter">Release notes</a></li>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/apidoc_commands/commands.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+      |
+      <a href="../_sources/apidoc_commands/commands.txt"
+          rel="nofollow">Page source</a>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/apidoc_commands/modules.html b/doc/build/html/apidoc_commands/modules.html
new file mode 100644 (file)
index 0000000..41b3203
--- /dev/null
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>commands &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../genindex.html" />
+    <link rel="search" title="Search" href="../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../index.html" />
+    <link rel="next" title="commands package" href="commands.html" />
+    <link rel="prev" title="src.example package" href="../apidoc_src/src.example.html" />
+   
+  <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="commands">
+<h1>commands<a class="headerlink" href="#commands" title="Permalink to this headline">¶</a></h1>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="commands.html">commands package</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#submodules">Submodules</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.application">commands.application module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.check">commands.check module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.clean">commands.clean module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.compile">commands.compile module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.config">commands.config module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.configure">commands.configure module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.environ">commands.environ module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.find_duplicates">commands.find_duplicates module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.generate">commands.generate module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.init">commands.init module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.job">commands.job module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.jobs">commands.jobs module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.launcher">commands.launcher module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.log">commands.log module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.make">commands.make module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.makeinstall">commands.makeinstall module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.package">commands.package module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.patch">commands.patch module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.prepare">commands.prepare module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.profile">commands.profile module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.run">commands.run module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.script">commands.script module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.shell">commands.shell module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.source">commands.source module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.template">commands.template module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands.test">commands.test module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="commands.html#module-commands">Module contents</a></li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../index.html">
+              <img class="logo" src="../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../index.html">Documentation overview</a><ul>
+      <li>Previous: <a href="../apidoc_src/src.example.html" title="previous chapter">src.example package</a></li>
+      <li>Next: <a href="commands.html" title="next chapter">commands package</a></li>
+  </ul></li>
+</ul>
+</div>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/apidoc_commands/modules.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+      |
+      <a href="../_sources/apidoc_commands/modules.txt"
+          rel="nofollow">Page source</a>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/apidoc_src/modules.html b/doc/build/html/apidoc_src/modules.html
new file mode 100644 (file)
index 0000000..6584385
--- /dev/null
@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>src &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../genindex.html" />
+    <link rel="search" title="Search" href="../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../index.html" />
+    <link rel="next" title="src package" href="src.html" />
+    <link rel="prev" title="Add a user custom command" href="../write_command.html" />
+   
+  <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="src">
+<h1>src<a class="headerlink" href="#src" title="Permalink to this headline">¶</a></h1>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="src.html">src package</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="src.html#subpackages">Subpackages</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="src.colorama.html">src.colorama package</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="src.colorama.html#submodules">Submodules</a></li>
+<li class="toctree-l4"><a class="reference internal" href="src.colorama.html#module-src.colorama.ansi">src.colorama.ansi module</a></li>
+<li class="toctree-l4"><a class="reference internal" href="src.colorama.html#module-src.colorama.ansitowin32">src.colorama.ansitowin32 module</a></li>
+<li class="toctree-l4"><a class="reference internal" href="src.colorama.html#module-src.colorama.initialise">src.colorama.initialise module</a></li>
+<li class="toctree-l4"><a class="reference internal" href="src.colorama.html#module-src.colorama.win32">src.colorama.win32 module</a></li>
+<li class="toctree-l4"><a class="reference internal" href="src.colorama.html#module-src.colorama.winterm">src.colorama.winterm module</a></li>
+<li class="toctree-l4"><a class="reference internal" href="src.colorama.html#module-src.colorama">Module contents</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="src.example.html">src.example package</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="src.example.html#submodules">Submodules</a></li>
+<li class="toctree-l4"><a class="reference internal" href="src.example.html#module-src.example.essai_logging_1">src.example.essai_logging_1 module</a></li>
+<li class="toctree-l4"><a class="reference internal" href="src.example.html#module-src.example.essai_logging_2">src.example.essai_logging_2 module</a></li>
+<li class="toctree-l4"><a class="reference internal" href="src.example.html#module-src.example">Module contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#submodules">Submodules</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.ElementTree">src.ElementTree module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.architecture">src.architecture module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.catchAll">src.catchAll module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.coloringSat">src.coloringSat module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.compilation">src.compilation module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.configManager">src.configManager module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.debug">src.debug module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.environment">src.environment module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.environs">src.environs module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.exceptionSat">src.exceptionSat module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.fileEnviron">src.fileEnviron module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.fork">src.fork module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.loggingSat">src.loggingSat module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.options">src.options module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.product">src.product module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.pyconf">src.pyconf module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.returnCode">src.returnCode module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.salomeTools">src.salomeTools module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.system">src.system module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.template">src.template module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.test_module">src.test_module module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.utilsSat">src.utilsSat module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.xmlManager">src.xmlManager module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.html#module-src">Module contents</a></li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../index.html">
+              <img class="logo" src="../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p><div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../index.html">Documentation overview</a><ul>
+      <li>Previous: <a href="../write_command.html" title="previous chapter">Add a user custom command</a></li>
+      <li>Next: <a href="src.html" title="next chapter">src package</a></li>
+  </ul></li>
+</ul>
+</div>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/apidoc_src/modules.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+      |
+      <a href="../_sources/apidoc_src/modules.txt"
+          rel="nofollow">Page source</a>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/apidoc_src/src.colorama.html b/doc/build/html/apidoc_src/src.colorama.html
new file mode 100644 (file)
index 0000000..d65378f
--- /dev/null
@@ -0,0 +1,691 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>src.colorama package &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../genindex.html" />
+    <link rel="search" title="Search" href="../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../index.html" />
+    <link rel="up" title="src package" href="src.html" />
+    <link rel="next" title="src.example package" href="src.example.html" />
+    <link rel="prev" title="src package" href="src.html" />
+   
+  <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="src-colorama-package">
+<h1>src.colorama package<a class="headerlink" href="#src-colorama-package" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="submodules">
+<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2>
+</div>
+<div class="section" id="module-src.colorama.ansi">
+<span id="src-colorama-ansi-module"></span><h2>src.colorama.ansi module<a class="headerlink" href="#module-src.colorama.ansi" title="Permalink to this headline">¶</a></h2>
+<p>This module generates ANSI character codes to printing colors to terminals.
+See: <a class="reference external" href="http://en.wikipedia.org/wiki/ANSI_escape_code">http://en.wikipedia.org/wiki/ANSI_escape_code</a></p>
+<dl class="class">
+<dt id="src.colorama.ansi.AnsiBack">
+<em class="property">class </em><code class="descclassname">src.colorama.ansi.</code><code class="descname">AnsiBack</code><a class="reference internal" href="../_modules/src/colorama/ansi.html#AnsiBack"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.AnsiBack" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#src.colorama.ansi.AnsiCodes" title="src.colorama.ansi.AnsiCodes"><code class="xref py py-class docutils literal"><span class="pre">src.colorama.ansi.AnsiCodes</span></code></a></p>
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiBack.BLACK">
+<code class="descname">BLACK</code><em class="property"> = 40</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.BLACK" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiBack.BLUE">
+<code class="descname">BLUE</code><em class="property"> = 44</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.BLUE" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiBack.CYAN">
+<code class="descname">CYAN</code><em class="property"> = 46</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.CYAN" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiBack.GREEN">
+<code class="descname">GREEN</code><em class="property"> = 42</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.GREEN" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiBack.LIGHTBLACK_EX">
+<code class="descname">LIGHTBLACK_EX</code><em class="property"> = 100</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.LIGHTBLACK_EX" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiBack.LIGHTBLUE_EX">
+<code class="descname">LIGHTBLUE_EX</code><em class="property"> = 104</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.LIGHTBLUE_EX" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiBack.LIGHTCYAN_EX">
+<code class="descname">LIGHTCYAN_EX</code><em class="property"> = 106</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.LIGHTCYAN_EX" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiBack.LIGHTGREEN_EX">
+<code class="descname">LIGHTGREEN_EX</code><em class="property"> = 102</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.LIGHTGREEN_EX" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiBack.LIGHTMAGENTA_EX">
+<code class="descname">LIGHTMAGENTA_EX</code><em class="property"> = 105</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.LIGHTMAGENTA_EX" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiBack.LIGHTRED_EX">
+<code class="descname">LIGHTRED_EX</code><em class="property"> = 101</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.LIGHTRED_EX" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiBack.LIGHTWHITE_EX">
+<code class="descname">LIGHTWHITE_EX</code><em class="property"> = 107</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.LIGHTWHITE_EX" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiBack.LIGHTYELLOW_EX">
+<code class="descname">LIGHTYELLOW_EX</code><em class="property"> = 103</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.LIGHTYELLOW_EX" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiBack.MAGENTA">
+<code class="descname">MAGENTA</code><em class="property"> = 45</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.MAGENTA" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiBack.RED">
+<code class="descname">RED</code><em class="property"> = 41</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.RED" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiBack.RESET">
+<code class="descname">RESET</code><em class="property"> = 49</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.RESET" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiBack.WHITE">
+<code class="descname">WHITE</code><em class="property"> = 47</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.WHITE" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiBack.YELLOW">
+<code class="descname">YELLOW</code><em class="property"> = 43</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.YELLOW" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.colorama.ansi.AnsiCodes">
+<em class="property">class </em><code class="descclassname">src.colorama.ansi.</code><code class="descname">AnsiCodes</code><a class="reference internal" href="../_modules/src/colorama/ansi.html#AnsiCodes"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.AnsiCodes" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+</dd></dl>
+
+<dl class="class">
+<dt id="src.colorama.ansi.AnsiCursor">
+<em class="property">class </em><code class="descclassname">src.colorama.ansi.</code><code class="descname">AnsiCursor</code><a class="reference internal" href="../_modules/src/colorama/ansi.html#AnsiCursor"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.AnsiCursor" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<dl class="method">
+<dt id="src.colorama.ansi.AnsiCursor.BACK">
+<code class="descname">BACK</code><span class="sig-paren">(</span><em>n=1</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansi.html#AnsiCursor.BACK"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.AnsiCursor.BACK" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.ansi.AnsiCursor.DOWN">
+<code class="descname">DOWN</code><span class="sig-paren">(</span><em>n=1</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansi.html#AnsiCursor.DOWN"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.AnsiCursor.DOWN" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.ansi.AnsiCursor.FORWARD">
+<code class="descname">FORWARD</code><span class="sig-paren">(</span><em>n=1</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansi.html#AnsiCursor.FORWARD"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.AnsiCursor.FORWARD" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.ansi.AnsiCursor.POS">
+<code class="descname">POS</code><span class="sig-paren">(</span><em>x=1</em>, <em>y=1</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansi.html#AnsiCursor.POS"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.AnsiCursor.POS" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.ansi.AnsiCursor.UP">
+<code class="descname">UP</code><span class="sig-paren">(</span><em>n=1</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansi.html#AnsiCursor.UP"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.AnsiCursor.UP" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.colorama.ansi.AnsiFore">
+<em class="property">class </em><code class="descclassname">src.colorama.ansi.</code><code class="descname">AnsiFore</code><a class="reference internal" href="../_modules/src/colorama/ansi.html#AnsiFore"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.AnsiFore" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#src.colorama.ansi.AnsiCodes" title="src.colorama.ansi.AnsiCodes"><code class="xref py py-class docutils literal"><span class="pre">src.colorama.ansi.AnsiCodes</span></code></a></p>
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiFore.BLACK">
+<code class="descname">BLACK</code><em class="property"> = 30</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.BLACK" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiFore.BLUE">
+<code class="descname">BLUE</code><em class="property"> = 34</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.BLUE" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiFore.CYAN">
+<code class="descname">CYAN</code><em class="property"> = 36</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.CYAN" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiFore.GREEN">
+<code class="descname">GREEN</code><em class="property"> = 32</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.GREEN" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiFore.LIGHTBLACK_EX">
+<code class="descname">LIGHTBLACK_EX</code><em class="property"> = 90</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.LIGHTBLACK_EX" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiFore.LIGHTBLUE_EX">
+<code class="descname">LIGHTBLUE_EX</code><em class="property"> = 94</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.LIGHTBLUE_EX" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiFore.LIGHTCYAN_EX">
+<code class="descname">LIGHTCYAN_EX</code><em class="property"> = 96</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.LIGHTCYAN_EX" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiFore.LIGHTGREEN_EX">
+<code class="descname">LIGHTGREEN_EX</code><em class="property"> = 92</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.LIGHTGREEN_EX" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiFore.LIGHTMAGENTA_EX">
+<code class="descname">LIGHTMAGENTA_EX</code><em class="property"> = 95</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.LIGHTMAGENTA_EX" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiFore.LIGHTRED_EX">
+<code class="descname">LIGHTRED_EX</code><em class="property"> = 91</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.LIGHTRED_EX" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiFore.LIGHTWHITE_EX">
+<code class="descname">LIGHTWHITE_EX</code><em class="property"> = 97</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.LIGHTWHITE_EX" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiFore.LIGHTYELLOW_EX">
+<code class="descname">LIGHTYELLOW_EX</code><em class="property"> = 93</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.LIGHTYELLOW_EX" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiFore.MAGENTA">
+<code class="descname">MAGENTA</code><em class="property"> = 35</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.MAGENTA" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiFore.RED">
+<code class="descname">RED</code><em class="property"> = 31</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.RED" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiFore.RESET">
+<code class="descname">RESET</code><em class="property"> = 39</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.RESET" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiFore.WHITE">
+<code class="descname">WHITE</code><em class="property"> = 37</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.WHITE" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiFore.YELLOW">
+<code class="descname">YELLOW</code><em class="property"> = 33</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.YELLOW" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.colorama.ansi.AnsiStyle">
+<em class="property">class </em><code class="descclassname">src.colorama.ansi.</code><code class="descname">AnsiStyle</code><a class="reference internal" href="../_modules/src/colorama/ansi.html#AnsiStyle"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.AnsiStyle" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#src.colorama.ansi.AnsiCodes" title="src.colorama.ansi.AnsiCodes"><code class="xref py py-class docutils literal"><span class="pre">src.colorama.ansi.AnsiCodes</span></code></a></p>
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiStyle.BRIGHT">
+<code class="descname">BRIGHT</code><em class="property"> = 1</em><a class="headerlink" href="#src.colorama.ansi.AnsiStyle.BRIGHT" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiStyle.DIM">
+<code class="descname">DIM</code><em class="property"> = 2</em><a class="headerlink" href="#src.colorama.ansi.AnsiStyle.DIM" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiStyle.NORMAL">
+<code class="descname">NORMAL</code><em class="property"> = 22</em><a class="headerlink" href="#src.colorama.ansi.AnsiStyle.NORMAL" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansi.AnsiStyle.RESET_ALL">
+<code class="descname">RESET_ALL</code><em class="property"> = 0</em><a class="headerlink" href="#src.colorama.ansi.AnsiStyle.RESET_ALL" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="src.colorama.ansi.clear_line">
+<code class="descclassname">src.colorama.ansi.</code><code class="descname">clear_line</code><span class="sig-paren">(</span><em>mode=2</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansi.html#clear_line"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.clear_line" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.colorama.ansi.clear_screen">
+<code class="descclassname">src.colorama.ansi.</code><code class="descname">clear_screen</code><span class="sig-paren">(</span><em>mode=2</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansi.html#clear_screen"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.clear_screen" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.colorama.ansi.code_to_chars">
+<code class="descclassname">src.colorama.ansi.</code><code class="descname">code_to_chars</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansi.html#code_to_chars"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.code_to_chars" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.colorama.ansi.set_title">
+<code class="descclassname">src.colorama.ansi.</code><code class="descname">set_title</code><span class="sig-paren">(</span><em>title</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansi.html#set_title"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.set_title" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</div>
+<div class="section" id="module-src.colorama.ansitowin32">
+<span id="src-colorama-ansitowin32-module"></span><h2>src.colorama.ansitowin32 module<a class="headerlink" href="#module-src.colorama.ansitowin32" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="src.colorama.ansitowin32.AnsiToWin32">
+<em class="property">class </em><code class="descclassname">src.colorama.ansitowin32.</code><code class="descname">AnsiToWin32</code><span class="sig-paren">(</span><em>wrapped</em>, <em>convert=None</em>, <em>strip=None</em>, <em>autoreset=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansitowin32.html#AnsiToWin32"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>Implements a 'write()' method which, on Windows, will strip ANSI character
+sequences from the text, and if outputting to a tty, will convert them into
+win32 function calls.</p>
+<dl class="attribute">
+<dt id="src.colorama.ansitowin32.AnsiToWin32.ANSI_CSI_RE">
+<code class="descname">ANSI_CSI_RE</code><em class="property"> = &lt;_sre.SRE_Pattern object&gt;</em><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.ANSI_CSI_RE" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.ansitowin32.AnsiToWin32.ANSI_OSC_RE">
+<code class="descname">ANSI_OSC_RE</code><em class="property"> = &lt;_sre.SRE_Pattern object&gt;</em><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.ANSI_OSC_RE" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.ansitowin32.AnsiToWin32.call_win32">
+<code class="descname">call_win32</code><span class="sig-paren">(</span><em>command</em>, <em>params</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansitowin32.html#AnsiToWin32.call_win32"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.call_win32" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.ansitowin32.AnsiToWin32.convert_ansi">
+<code class="descname">convert_ansi</code><span class="sig-paren">(</span><em>paramstring</em>, <em>command</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansitowin32.html#AnsiToWin32.convert_ansi"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.convert_ansi" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.ansitowin32.AnsiToWin32.convert_osc">
+<code class="descname">convert_osc</code><span class="sig-paren">(</span><em>text</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansitowin32.html#AnsiToWin32.convert_osc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.convert_osc" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.ansitowin32.AnsiToWin32.extract_params">
+<code class="descname">extract_params</code><span class="sig-paren">(</span><em>command</em>, <em>paramstring</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansitowin32.html#AnsiToWin32.extract_params"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.extract_params" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.ansitowin32.AnsiToWin32.get_win32_calls">
+<code class="descname">get_win32_calls</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansitowin32.html#AnsiToWin32.get_win32_calls"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.get_win32_calls" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.ansitowin32.AnsiToWin32.reset_all">
+<code class="descname">reset_all</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansitowin32.html#AnsiToWin32.reset_all"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.reset_all" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.ansitowin32.AnsiToWin32.should_wrap">
+<code class="descname">should_wrap</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansitowin32.html#AnsiToWin32.should_wrap"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.should_wrap" title="Permalink to this definition">¶</a></dt>
+<dd><p>True if this class is actually needed. If false, then the output
+stream will not be affected, nor will win32 calls be issued, so
+wrapping stdout is not actually required. This will generally be
+False on non-Windows platforms, unless optional functionality like
+autoreset has been requested using kwargs to init()</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.ansitowin32.AnsiToWin32.write">
+<code class="descname">write</code><span class="sig-paren">(</span><em>text</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansitowin32.html#AnsiToWin32.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.write" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.ansitowin32.AnsiToWin32.write_and_convert">
+<code class="descname">write_and_convert</code><span class="sig-paren">(</span><em>text</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansitowin32.html#AnsiToWin32.write_and_convert"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.write_and_convert" title="Permalink to this definition">¶</a></dt>
+<dd><p>Write the given text to our wrapped stream, stripping any ANSI
+sequences from the text, and optionally converting them into win32
+calls.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.ansitowin32.AnsiToWin32.write_plain_text">
+<code class="descname">write_plain_text</code><span class="sig-paren">(</span><em>text</em>, <em>start</em>, <em>end</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansitowin32.html#AnsiToWin32.write_plain_text"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.write_plain_text" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.colorama.ansitowin32.StreamWrapper">
+<em class="property">class </em><code class="descclassname">src.colorama.ansitowin32.</code><code class="descname">StreamWrapper</code><span class="sig-paren">(</span><em>wrapped</em>, <em>converter</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansitowin32.html#StreamWrapper"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.StreamWrapper" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>Wraps a stream (such as stdout), acting as a transparent proxy for all
+attribute access apart from method 'write()', which is delegated to our
+Converter instance.</p>
+<dl class="method">
+<dt id="src.colorama.ansitowin32.StreamWrapper.write">
+<code class="descname">write</code><span class="sig-paren">(</span><em>text</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansitowin32.html#StreamWrapper.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.StreamWrapper.write" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="src.colorama.ansitowin32.is_a_tty">
+<code class="descclassname">src.colorama.ansitowin32.</code><code class="descname">is_a_tty</code><span class="sig-paren">(</span><em>stream</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansitowin32.html#is_a_tty"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.is_a_tty" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.colorama.ansitowin32.is_stream_closed">
+<code class="descclassname">src.colorama.ansitowin32.</code><code class="descname">is_stream_closed</code><span class="sig-paren">(</span><em>stream</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/ansitowin32.html#is_stream_closed"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.is_stream_closed" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</div>
+<div class="section" id="module-src.colorama.initialise">
+<span id="src-colorama-initialise-module"></span><h2>src.colorama.initialise module<a class="headerlink" href="#module-src.colorama.initialise" title="Permalink to this headline">¶</a></h2>
+<dl class="function">
+<dt id="src.colorama.initialise.colorama_text">
+<code class="descclassname">src.colorama.initialise.</code><code class="descname">colorama_text</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwds</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/initialise.html#colorama_text"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.initialise.colorama_text" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.colorama.initialise.deinit">
+<code class="descclassname">src.colorama.initialise.</code><code class="descname">deinit</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/initialise.html#deinit"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.initialise.deinit" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.colorama.initialise.init">
+<code class="descclassname">src.colorama.initialise.</code><code class="descname">init</code><span class="sig-paren">(</span><em>autoreset=False</em>, <em>convert=None</em>, <em>strip=None</em>, <em>wrap=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/initialise.html#init"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.initialise.init" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.colorama.initialise.reinit">
+<code class="descclassname">src.colorama.initialise.</code><code class="descname">reinit</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/initialise.html#reinit"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.initialise.reinit" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.colorama.initialise.reset_all">
+<code class="descclassname">src.colorama.initialise.</code><code class="descname">reset_all</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/initialise.html#reset_all"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.initialise.reset_all" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.colorama.initialise.wrap_stream">
+<code class="descclassname">src.colorama.initialise.</code><code class="descname">wrap_stream</code><span class="sig-paren">(</span><em>stream</em>, <em>convert</em>, <em>strip</em>, <em>autoreset</em>, <em>wrap</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/initialise.html#wrap_stream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.initialise.wrap_stream" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</div>
+<div class="section" id="module-src.colorama.win32">
+<span id="src-colorama-win32-module"></span><h2>src.colorama.win32 module<a class="headerlink" href="#module-src.colorama.win32" title="Permalink to this headline">¶</a></h2>
+<dl class="function">
+<dt id="src.colorama.win32.SetConsoleTextAttribute">
+<code class="descclassname">src.colorama.win32.</code><code class="descname">SetConsoleTextAttribute</code><span class="sig-paren">(</span><em>*_</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/win32.html#SetConsoleTextAttribute"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.win32.SetConsoleTextAttribute" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.colorama.win32.winapi_test">
+<code class="descclassname">src.colorama.win32.</code><code class="descname">winapi_test</code><span class="sig-paren">(</span><em>*_</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/win32.html#winapi_test"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.win32.winapi_test" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</div>
+<div class="section" id="module-src.colorama.winterm">
+<span id="src-colorama-winterm-module"></span><h2>src.colorama.winterm module<a class="headerlink" href="#module-src.colorama.winterm" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="src.colorama.winterm.WinColor">
+<em class="property">class </em><code class="descclassname">src.colorama.winterm.</code><code class="descname">WinColor</code><a class="reference internal" href="../_modules/src/colorama/winterm.html#WinColor"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinColor" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<dl class="attribute">
+<dt id="src.colorama.winterm.WinColor.BLACK">
+<code class="descname">BLACK</code><em class="property"> = 0</em><a class="headerlink" href="#src.colorama.winterm.WinColor.BLACK" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.winterm.WinColor.BLUE">
+<code class="descname">BLUE</code><em class="property"> = 1</em><a class="headerlink" href="#src.colorama.winterm.WinColor.BLUE" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.winterm.WinColor.CYAN">
+<code class="descname">CYAN</code><em class="property"> = 3</em><a class="headerlink" href="#src.colorama.winterm.WinColor.CYAN" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.winterm.WinColor.GREEN">
+<code class="descname">GREEN</code><em class="property"> = 2</em><a class="headerlink" href="#src.colorama.winterm.WinColor.GREEN" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.winterm.WinColor.GREY">
+<code class="descname">GREY</code><em class="property"> = 7</em><a class="headerlink" href="#src.colorama.winterm.WinColor.GREY" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.winterm.WinColor.MAGENTA">
+<code class="descname">MAGENTA</code><em class="property"> = 5</em><a class="headerlink" href="#src.colorama.winterm.WinColor.MAGENTA" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.winterm.WinColor.RED">
+<code class="descname">RED</code><em class="property"> = 4</em><a class="headerlink" href="#src.colorama.winterm.WinColor.RED" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.winterm.WinColor.YELLOW">
+<code class="descname">YELLOW</code><em class="property"> = 6</em><a class="headerlink" href="#src.colorama.winterm.WinColor.YELLOW" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.colorama.winterm.WinStyle">
+<em class="property">class </em><code class="descclassname">src.colorama.winterm.</code><code class="descname">WinStyle</code><a class="reference internal" href="../_modules/src/colorama/winterm.html#WinStyle"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinStyle" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<dl class="attribute">
+<dt id="src.colorama.winterm.WinStyle.BRIGHT">
+<code class="descname">BRIGHT</code><em class="property"> = 8</em><a class="headerlink" href="#src.colorama.winterm.WinStyle.BRIGHT" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.winterm.WinStyle.BRIGHT_BACKGROUND">
+<code class="descname">BRIGHT_BACKGROUND</code><em class="property"> = 128</em><a class="headerlink" href="#src.colorama.winterm.WinStyle.BRIGHT_BACKGROUND" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.colorama.winterm.WinStyle.NORMAL">
+<code class="descname">NORMAL</code><em class="property"> = 0</em><a class="headerlink" href="#src.colorama.winterm.WinStyle.NORMAL" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.colorama.winterm.WinTerm">
+<em class="property">class </em><code class="descclassname">src.colorama.winterm.</code><code class="descname">WinTerm</code><a class="reference internal" href="../_modules/src/colorama/winterm.html#WinTerm"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<dl class="method">
+<dt id="src.colorama.winterm.WinTerm.back">
+<code class="descname">back</code><span class="sig-paren">(</span><em>back=None</em>, <em>light=False</em>, <em>on_stderr=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/winterm.html#WinTerm.back"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.back" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.winterm.WinTerm.cursor_adjust">
+<code class="descname">cursor_adjust</code><span class="sig-paren">(</span><em>x</em>, <em>y</em>, <em>on_stderr=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/winterm.html#WinTerm.cursor_adjust"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.cursor_adjust" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.winterm.WinTerm.erase_line">
+<code class="descname">erase_line</code><span class="sig-paren">(</span><em>mode=0</em>, <em>on_stderr=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/winterm.html#WinTerm.erase_line"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.erase_line" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.winterm.WinTerm.erase_screen">
+<code class="descname">erase_screen</code><span class="sig-paren">(</span><em>mode=0</em>, <em>on_stderr=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/winterm.html#WinTerm.erase_screen"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.erase_screen" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.winterm.WinTerm.fore">
+<code class="descname">fore</code><span class="sig-paren">(</span><em>fore=None</em>, <em>light=False</em>, <em>on_stderr=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/winterm.html#WinTerm.fore"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.fore" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.winterm.WinTerm.get_attrs">
+<code class="descname">get_attrs</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/winterm.html#WinTerm.get_attrs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.get_attrs" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.winterm.WinTerm.get_position">
+<code class="descname">get_position</code><span class="sig-paren">(</span><em>handle</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/winterm.html#WinTerm.get_position"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.get_position" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.winterm.WinTerm.reset_all">
+<code class="descname">reset_all</code><span class="sig-paren">(</span><em>on_stderr=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/winterm.html#WinTerm.reset_all"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.reset_all" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.winterm.WinTerm.set_attrs">
+<code class="descname">set_attrs</code><span class="sig-paren">(</span><em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/winterm.html#WinTerm.set_attrs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.set_attrs" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.winterm.WinTerm.set_console">
+<code class="descname">set_console</code><span class="sig-paren">(</span><em>attrs=None</em>, <em>on_stderr=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/winterm.html#WinTerm.set_console"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.set_console" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.winterm.WinTerm.set_cursor_position">
+<code class="descname">set_cursor_position</code><span class="sig-paren">(</span><em>position=None</em>, <em>on_stderr=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/winterm.html#WinTerm.set_cursor_position"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.set_cursor_position" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.winterm.WinTerm.set_title">
+<code class="descname">set_title</code><span class="sig-paren">(</span><em>title</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/winterm.html#WinTerm.set_title"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.set_title" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.colorama.winterm.WinTerm.style">
+<code class="descname">style</code><span class="sig-paren">(</span><em>style=None</em>, <em>on_stderr=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/colorama/winterm.html#WinTerm.style"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.style" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-src.colorama">
+<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-src.colorama" title="Permalink to this headline">¶</a></h2>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../index.html">
+              <img class="logo" src="../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p>
+  <h3><a href="../index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">src.colorama package</a><ul>
+<li><a class="reference internal" href="#submodules">Submodules</a></li>
+<li><a class="reference internal" href="#module-src.colorama.ansi">src.colorama.ansi module</a></li>
+<li><a class="reference internal" href="#module-src.colorama.ansitowin32">src.colorama.ansitowin32 module</a></li>
+<li><a class="reference internal" href="#module-src.colorama.initialise">src.colorama.initialise module</a></li>
+<li><a class="reference internal" href="#module-src.colorama.win32">src.colorama.win32 module</a></li>
+<li><a class="reference internal" href="#module-src.colorama.winterm">src.colorama.winterm module</a></li>
+<li><a class="reference internal" href="#module-src.colorama">Module contents</a></li>
+</ul>
+</li>
+</ul>
+<div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../index.html">Documentation overview</a><ul>
+  <li><a href="modules.html">src</a><ul>
+  <li><a href="src.html">src package</a><ul>
+      <li>Previous: <a href="src.html" title="previous chapter">src package</a></li>
+      <li>Next: <a href="src.example.html" title="next chapter">src.example package</a></li>
+  </ul></li>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/apidoc_src/src.colorama.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+      |
+      <a href="../_sources/apidoc_src/src.colorama.txt"
+          rel="nofollow">Page source</a>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/apidoc_src/src.example.html b/doc/build/html/apidoc_src/src.example.html
new file mode 100644 (file)
index 0000000..9de9958
--- /dev/null
@@ -0,0 +1,208 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>src.example package &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../genindex.html" />
+    <link rel="search" title="Search" href="../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../index.html" />
+    <link rel="up" title="src package" href="src.html" />
+    <link rel="next" title="commands" href="../apidoc_commands/modules.html" />
+    <link rel="prev" title="src.colorama package" href="src.colorama.html" />
+   
+  <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="src-example-package">
+<h1>src.example package<a class="headerlink" href="#src-example-package" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="submodules">
+<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2>
+</div>
+<div class="section" id="module-src.example.essai_logging_1">
+<span id="src-example-essai-logging-1-module"></span><h2>src.example.essai_logging_1 module<a class="headerlink" href="#module-src.example.essai_logging_1" title="Permalink to this headline">¶</a></h2>
+<p><a class="reference external" href="http://sametmax.com/ecrire-des-logs-en-python/">http://sametmax.com/ecrire-des-logs-en-python/</a>
+<a class="reference external" href="https://docs.python.org/3/library/time.html#time.strftime">https://docs.python.org/3/library/time.html#time.strftime</a></p>
+<p>essai utilisation logger plusieurs handler format different</p>
+<blockquote>
+<div><p>/usr/lib/python2.7/logging/__init__.pyc</p>
+<p>init MyLogger, fmt='%(asctime)s :: %(levelname)-8s :: %(message)s', level='20'</p>
+<p>2018-03-11 18:51:21 :: INFO     :: test logger info
+2018-03-11 18:51:21 :: WARNING  :: test logger warning
+2018-03-11 18:51:21 :: ERROR    :: test logger error
+2018-03-11 18:51:21 :: CRITICAL :: test logger critical</p>
+<p>init MyLogger, fmt='None', level='10'</p>
+<p>2018-03-11 18:51:21 :: DEBUG    :: test logger debug
+test logger debug
+2018-03-11 18:51:21 :: INFO     :: test logger info
+test logger info
+2018-03-11 18:51:21 :: WARNING  :: test logger warning
+test logger warning
+2018-03-11 18:51:21 :: ERROR    :: test logger error
+test logger error
+2018-03-11 18:51:21 :: CRITICAL :: test logger critical
+test logger critical</p>
+</div></blockquote>
+<dl class="function">
+<dt id="src.example.essai_logging_1.getMyLogger">
+<code class="descclassname">src.example.essai_logging_1.</code><code class="descname">getMyLogger</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/example/essai_logging_1.html#getMyLogger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.example.essai_logging_1.getMyLogger" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.example.essai_logging_1.initMyLogger">
+<code class="descclassname">src.example.essai_logging_1.</code><code class="descname">initMyLogger</code><span class="sig-paren">(</span><em>fmt=None</em>, <em>level=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/example/essai_logging_1.html#initMyLogger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.example.essai_logging_1.initMyLogger" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.example.essai_logging_1.testLogger1">
+<code class="descclassname">src.example.essai_logging_1.</code><code class="descname">testLogger1</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/example/essai_logging_1.html#testLogger1"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.example.essai_logging_1.testLogger1" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</div>
+<div class="section" id="module-src.example.essai_logging_2">
+<span id="src-example-essai-logging-2-module"></span><h2>src.example.essai_logging_2 module<a class="headerlink" href="#module-src.example.essai_logging_2" title="Permalink to this headline">¶</a></h2>
+<p><a class="reference external" href="http://sametmax.com/ecrire-des-logs-en-python/">http://sametmax.com/ecrire-des-logs-en-python/</a>
+<a class="reference external" href="https://docs.python.org/3/library/time.html#time.strftime">https://docs.python.org/3/library/time.html#time.strftime</a></p>
+<p>essai utilisation logger un handler format different 
+sur info() pas de format et su other format</p>
+<blockquote>
+<div><p>/usr/lib/python2.7/logging/__init__.pyc</p>
+<p>init MyLogger, fmt='%(asctime)s :: %(levelname)-8s :: %(message)s', level='20'</p>
+<p>test logger info
+2018-03-11 18:51:51 :: WARNING  :: test logger warning
+2018-03-11 18:51:51 :: ERROR    :: test logger error
+2018-03-11 18:51:51 :: CRITICAL :: test logger critical</p>
+</div></blockquote>
+<dl class="class">
+<dt id="src.example.essai_logging_2.MyFormatter">
+<em class="property">class </em><code class="descclassname">src.example.essai_logging_2.</code><code class="descname">MyFormatter</code><span class="sig-paren">(</span><em>fmt=None</em>, <em>datefmt=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/example/essai_logging_2.html#MyFormatter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.example.essai_logging_2.MyFormatter" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">logging.Formatter</span></code></p>
+<dl class="method">
+<dt id="src.example.essai_logging_2.MyFormatter.format">
+<code class="descname">format</code><span class="sig-paren">(</span><em>record</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/example/essai_logging_2.html#MyFormatter.format"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.example.essai_logging_2.MyFormatter.format" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="src.example.essai_logging_2.getMyLogger">
+<code class="descclassname">src.example.essai_logging_2.</code><code class="descname">getMyLogger</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/example/essai_logging_2.html#getMyLogger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.example.essai_logging_2.getMyLogger" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.example.essai_logging_2.initMyLogger">
+<code class="descclassname">src.example.essai_logging_2.</code><code class="descname">initMyLogger</code><span class="sig-paren">(</span><em>fmt=None</em>, <em>level=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/example/essai_logging_2.html#initMyLogger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.example.essai_logging_2.initMyLogger" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.example.essai_logging_2.testLogger1">
+<code class="descclassname">src.example.essai_logging_2.</code><code class="descname">testLogger1</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/example/essai_logging_2.html#testLogger1"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.example.essai_logging_2.testLogger1" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</div>
+<div class="section" id="module-src.example">
+<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-src.example" title="Permalink to this headline">¶</a></h2>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../index.html">
+              <img class="logo" src="../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p>
+  <h3><a href="../index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">src.example package</a><ul>
+<li><a class="reference internal" href="#submodules">Submodules</a></li>
+<li><a class="reference internal" href="#module-src.example.essai_logging_1">src.example.essai_logging_1 module</a></li>
+<li><a class="reference internal" href="#module-src.example.essai_logging_2">src.example.essai_logging_2 module</a></li>
+<li><a class="reference internal" href="#module-src.example">Module contents</a></li>
+</ul>
+</li>
+</ul>
+<div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../index.html">Documentation overview</a><ul>
+  <li><a href="modules.html">src</a><ul>
+  <li><a href="src.html">src package</a><ul>
+      <li>Previous: <a href="src.colorama.html" title="previous chapter">src.colorama package</a></li>
+      <li>Next: <a href="../apidoc_commands/modules.html" title="next chapter">commands</a></li>
+  </ul></li>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/apidoc_src/src.example.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+      |
+      <a href="../_sources/apidoc_src/src.example.txt"
+          rel="nofollow">Page source</a>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/apidoc_src/src.html b/doc/build/html/apidoc_src/src.html
new file mode 100644 (file)
index 0000000..0f6c690
--- /dev/null
@@ -0,0 +1,5507 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>src package &#8212; salomeTools 5.0.0dev documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '5.0.0dev',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="index" title="Index" href="../genindex.html" />
+    <link rel="search" title="Search" href="../search.html" />
+    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../index.html" />
+    <link rel="up" title="src" href="modules.html" />
+    <link rel="next" title="src.colorama package" href="src.colorama.html" />
+    <link rel="prev" title="src" href="modules.html" />
+   
+  <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
+  
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+  </head>
+  <body role="document">
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="src-package">
+<h1>src package<a class="headerlink" href="#src-package" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="subpackages">
+<h2>Subpackages<a class="headerlink" href="#subpackages" title="Permalink to this headline">¶</a></h2>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="src.colorama.html">src.colorama package</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="src.colorama.html#submodules">Submodules</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.colorama.html#module-src.colorama.ansi">src.colorama.ansi module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.colorama.html#module-src.colorama.ansitowin32">src.colorama.ansitowin32 module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.colorama.html#module-src.colorama.initialise">src.colorama.initialise module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.colorama.html#module-src.colorama.win32">src.colorama.win32 module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.colorama.html#module-src.colorama.winterm">src.colorama.winterm module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.colorama.html#module-src.colorama">Module contents</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="src.example.html">src.example package</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="src.example.html#submodules">Submodules</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.example.html#module-src.example.essai_logging_1">src.example.essai_logging_1 module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.example.html#module-src.example.essai_logging_2">src.example.essai_logging_2 module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="src.example.html#module-src.example">Module contents</a></li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="section" id="submodules">
+<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2>
+</div>
+<div class="section" id="module-src.ElementTree">
+<span id="src-elementtree-module"></span><h2>src.ElementTree module<a class="headerlink" href="#module-src.ElementTree" title="Permalink to this headline">¶</a></h2>
+<dl class="function">
+<dt id="src.ElementTree.Comment">
+<code class="descclassname">src.ElementTree.</code><code class="descname">Comment</code><span class="sig-paren">(</span><em>text=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#Comment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.Comment" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.ElementTree.dump">
+<code class="descclassname">src.ElementTree.</code><code class="descname">dump</code><span class="sig-paren">(</span><em>elem</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#dump"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.dump" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.ElementTree.Element">
+<code class="descclassname">src.ElementTree.</code><code class="descname">Element</code><span class="sig-paren">(</span><em>tag</em>, <em>attrib={}</em>, <em>**extra</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#Element"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.Element" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="class">
+<dt id="src.ElementTree.ElementTree">
+<em class="property">class </em><code class="descclassname">src.ElementTree.</code><code class="descname">ElementTree</code><span class="sig-paren">(</span><em>element=None</em>, <em>file=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#ElementTree"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.ElementTree" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="method">
+<dt id="src.ElementTree.ElementTree.find">
+<code class="descname">find</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#ElementTree.find"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.ElementTree.find" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.ElementTree.ElementTree.findall">
+<code class="descname">findall</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#ElementTree.findall"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.ElementTree.findall" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.ElementTree.ElementTree.findtext">
+<code class="descname">findtext</code><span class="sig-paren">(</span><em>path</em>, <em>default=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#ElementTree.findtext"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.ElementTree.findtext" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.ElementTree.ElementTree.getiterator">
+<code class="descname">getiterator</code><span class="sig-paren">(</span><em>tag=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#ElementTree.getiterator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.ElementTree.getiterator" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.ElementTree.ElementTree.getroot">
+<code class="descname">getroot</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#ElementTree.getroot"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.ElementTree.getroot" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.ElementTree.ElementTree.parse">
+<code class="descname">parse</code><span class="sig-paren">(</span><em>source</em>, <em>parser=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#ElementTree.parse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.ElementTree.parse" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.ElementTree.ElementTree.write">
+<code class="descname">write</code><span class="sig-paren">(</span><em>file</em>, <em>encoding='us-ascii'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#ElementTree.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.ElementTree.write" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="src.ElementTree.fromstring">
+<code class="descclassname">src.ElementTree.</code><code class="descname">fromstring</code><span class="sig-paren">(</span><em>text</em><span class="sig-paren">)</span><a class="headerlink" href="#src.ElementTree.fromstring" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.ElementTree.iselement">
+<code class="descclassname">src.ElementTree.</code><code class="descname">iselement</code><span class="sig-paren">(</span><em>element</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#iselement"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.iselement" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="class">
+<dt id="src.ElementTree.iterparse">
+<em class="property">class </em><code class="descclassname">src.ElementTree.</code><code class="descname">iterparse</code><span class="sig-paren">(</span><em>source</em>, <em>events=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#iterparse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.iterparse" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="method">
+<dt id="src.ElementTree.iterparse.next">
+<code class="descname">next</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#iterparse.next"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.iterparse.next" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="src.ElementTree.parse">
+<code class="descclassname">src.ElementTree.</code><code class="descname">parse</code><span class="sig-paren">(</span><em>source</em>, <em>parser=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#parse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.parse" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.ElementTree.PI">
+<code class="descclassname">src.ElementTree.</code><code class="descname">PI</code><span class="sig-paren">(</span><em>target</em>, <em>text=None</em><span class="sig-paren">)</span><a class="headerlink" href="#src.ElementTree.PI" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.ElementTree.ProcessingInstruction">
+<code class="descclassname">src.ElementTree.</code><code class="descname">ProcessingInstruction</code><span class="sig-paren">(</span><em>target</em>, <em>text=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#ProcessingInstruction"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.ProcessingInstruction" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="class">
+<dt id="src.ElementTree.QName">
+<em class="property">class </em><code class="descclassname">src.ElementTree.</code><code class="descname">QName</code><span class="sig-paren">(</span><em>text_or_uri</em>, <em>tag=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#QName"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.QName" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.ElementTree.SubElement">
+<code class="descclassname">src.ElementTree.</code><code class="descname">SubElement</code><span class="sig-paren">(</span><em>parent</em>, <em>tag</em>, <em>attrib={}</em>, <em>**extra</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#SubElement"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.SubElement" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.ElementTree.tostring">
+<code class="descclassname">src.ElementTree.</code><code class="descname">tostring</code><span class="sig-paren">(</span><em>element</em>, <em>encoding=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#tostring"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.tostring" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="class">
+<dt id="src.ElementTree.TreeBuilder">
+<em class="property">class </em><code class="descclassname">src.ElementTree.</code><code class="descname">TreeBuilder</code><span class="sig-paren">(</span><em>element_factory=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#TreeBuilder"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.TreeBuilder" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="method">
+<dt id="src.ElementTree.TreeBuilder.close">
+<code class="descname">close</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#TreeBuilder.close"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.TreeBuilder.close" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.ElementTree.TreeBuilder.data">
+<code class="descname">data</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#TreeBuilder.data"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.TreeBuilder.data" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.ElementTree.TreeBuilder.end">
+<code class="descname">end</code><span class="sig-paren">(</span><em>tag</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#TreeBuilder.end"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.TreeBuilder.end" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.ElementTree.TreeBuilder.start">
+<code class="descname">start</code><span class="sig-paren">(</span><em>tag</em>, <em>attrs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#TreeBuilder.start"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.TreeBuilder.start" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="src.ElementTree.XML">
+<code class="descclassname">src.ElementTree.</code><code class="descname">XML</code><span class="sig-paren">(</span><em>text</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#XML"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.XML" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="class">
+<dt id="src.ElementTree.XMLTreeBuilder">
+<em class="property">class </em><code class="descclassname">src.ElementTree.</code><code class="descname">XMLTreeBuilder</code><span class="sig-paren">(</span><em>html=0</em>, <em>target=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#XMLTreeBuilder"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.XMLTreeBuilder" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="method">
+<dt id="src.ElementTree.XMLTreeBuilder.close">
+<code class="descname">close</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#XMLTreeBuilder.close"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.XMLTreeBuilder.close" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.ElementTree.XMLTreeBuilder.doctype">
+<code class="descname">doctype</code><span class="sig-paren">(</span><em>name</em>, <em>pubid</em>, <em>system</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#XMLTreeBuilder.doctype"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.XMLTreeBuilder.doctype" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.ElementTree.XMLTreeBuilder.feed">
+<code class="descname">feed</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/ElementTree.html#XMLTreeBuilder.feed"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.XMLTreeBuilder.feed" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-src.architecture">
+<span id="src-architecture-module"></span><h2>src.architecture module<a class="headerlink" href="#module-src.architecture" title="Permalink to this headline">¶</a></h2>
+<p>Contains all the stuff that can change with the architecture 
+on which SAT is running</p>
+<dl class="function">
+<dt id="src.architecture.get_distrib_version">
+<code class="descclassname">src.architecture.</code><code class="descname">get_distrib_version</code><span class="sig-paren">(</span><em>distrib</em>, <em>codes</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/architecture.html#get_distrib_version"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.architecture.get_distrib_version" title="Permalink to this definition">¶</a></dt>
+<dd><p>Gets the version of the distribution</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>distrib</strong> -- (str) 
+The distribution on which the version will be found.</li>
+<li><strong>codes</strong> -- (L{Mapping}) 
+The map containing distribution correlation table.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(str)
+The version of the distribution on which 
+salomeTools is running, regarding the distribution 
+correlation table contained in codes variable.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.architecture.get_distribution">
+<code class="descclassname">src.architecture.</code><code class="descname">get_distribution</code><span class="sig-paren">(</span><em>codes</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/architecture.html#get_distribution"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.architecture.get_distribution" title="Permalink to this definition">¶</a></dt>
+<dd><p>Gets the code for the distribution</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>codes</strong> -- (L{Mapping}) 
+The map containing distribution correlation table.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(str)
+The distribution on which salomeTools is running, regarding the 
+distribution correlation table contained in codes variable.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.architecture.get_nb_proc">
+<code class="descclassname">src.architecture.</code><code class="descname">get_nb_proc</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/architecture.html#get_nb_proc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.architecture.get_nb_proc" title="Permalink to this definition">¶</a></dt>
+<dd><p>Gets the number of processors of the machine 
+on which salomeTools is running.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">(str) The number of processors.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.architecture.get_python_version">
+<code class="descclassname">src.architecture.</code><code class="descname">get_python_version</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/architecture.html#get_python_version"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.architecture.get_python_version" title="Permalink to this definition">¶</a></dt>
+<dd><p>Gets the version of the running python.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">(str) The version of the running python.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.architecture.get_user">
+<code class="descclassname">src.architecture.</code><code class="descname">get_user</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/architecture.html#get_user"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.architecture.get_user" title="Permalink to this definition">¶</a></dt>
+<dd><p>Gets the username that launched sat</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">(str) environ var USERNAME</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.architecture.is_windows">
+<code class="descclassname">src.architecture.</code><code class="descname">is_windows</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/architecture.html#is_windows"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.architecture.is_windows" title="Permalink to this definition">¶</a></dt>
+<dd><p>Checks windows OS</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">(bool) True if system is Windows</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-src.catchAll">
+<span id="src-catchall-module"></span><h2>src.catchAll module<a class="headerlink" href="#module-src.catchAll" title="Permalink to this headline">¶</a></h2>
+<p>define class as a simple dictionary with keys
+with pretty print __str__ and __repr__ (indented as recursive)
+and jsonDumps()</p>
+<dl class="docutils">
+<dt>usage:</dt>
+<dd>&gt;&gt; import catchAll as CAA
+&gt;&gt; a = CAA.CatchAll()
+&gt;&gt; a.tintin = &quot;reporter&quot;
+&gt;&gt; a.milou = &quot;dog&quot;
+&gt;&gt; print(&quot;a=%s&quot; % a)
+&gt;&gt; print(&quot;tintin: %s&quot; % a.tintin)</dd>
+</dl>
+<dl class="class">
+<dt id="src.catchAll.CatchAll">
+<em class="property">class </em><code class="descclassname">src.catchAll.</code><code class="descname">CatchAll</code><a class="reference internal" href="../_modules/src/catchAll.html#CatchAll"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.catchAll.CatchAll" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>class as simple dynamic dictionary 
+with predefined keys as properties in
+inherited classes through __init__ method. Or NOT. 
+with pretty print __str__ and __repr__ (indented as recursive)
+with jsonDumps()</p>
+<p>usage:</p>
+<p>&gt;&gt; import catchAll as CAA
+&gt;&gt; a = CAA.CatchAll()
+&gt;&gt; a.tintin = &quot;reporter&quot;
+&gt;&gt; a.milou = &quot;dog&quot;
+&gt;&gt; print(&quot;a=%s&quot; % a)
+&gt;&gt; print(&quot;tintin: %s&quot; % a.tintin)</p>
+<p>as</p>
+<p>&gt;&gt; a = {}
+&gt;&gt; a[&quot;tintin&quot;] = &quot;reporter&quot;
+&gt;&gt; a[&quot;milou&quot;] = &quot;dog&quot;
+&gt;&gt; print(&quot;tintin: %s&quot; % a[&quot;tintin&quot;]</p>
+<dl class="method">
+<dt id="src.catchAll.CatchAll.jsonDumps">
+<code class="descname">jsonDumps</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/catchAll.html#CatchAll.jsonDumps"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.catchAll.CatchAll.jsonDumps" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="src.catchAll.dumper">
+<code class="descclassname">src.catchAll.</code><code class="descname">dumper</code><span class="sig-paren">(</span><em>obj</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/catchAll.html#dumper"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.catchAll.dumper" title="Permalink to this definition">¶</a></dt>
+<dd><p>to json explore subclass object as dict</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.catchAll.dumperType">
+<code class="descclassname">src.catchAll.</code><code class="descname">dumperType</code><span class="sig-paren">(</span><em>obj</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/catchAll.html#dumperType"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.catchAll.dumperType" title="Permalink to this definition">¶</a></dt>
+<dd><p>to get a &quot;_type&quot; to trace json subclass object,
+but ignore all attributes begining with '_'</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.catchAll.jsonDumps">
+<code class="descclassname">src.catchAll.</code><code class="descname">jsonDumps</code><span class="sig-paren">(</span><em>obj</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/catchAll.html#jsonDumps"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.catchAll.jsonDumps" title="Permalink to this definition">¶</a></dt>
+<dd><p>to get direct default jsonDumps method</p>
+</dd></dl>
+
+</div>
+<div class="section" id="module-src.coloringSat">
+<span id="src-coloringsat-module"></span><h2>src.coloringSat module<a class="headerlink" href="#module-src.coloringSat" title="Permalink to this headline">¶</a></h2>
+<p>simple tagging as '&lt;color&gt;' for simple coloring log messages on terminal(s)
+window or unix or ios using backend colorama</p>
+<p>using '&lt;color&gt;' because EZ human readable
+so '&lt;color&gt;' are not supposed existing in log message
+&quot;{}&quot;.format() is not choosen because &quot;{}&quot; are present
+in log messages of contents of python dict (as JSON) etc.</p>
+<p>example:
+&gt;&gt; log(&quot;this is in &lt;green&gt;color green&lt;reset&gt;, OK is in blue: &lt;blue&gt;OK?&quot;)</p>
+<dl class="class">
+<dt id="src.coloringSat.ColoringStream">
+<em class="property">class </em><code class="descclassname">src.coloringSat.</code><code class="descname">ColoringStream</code><a class="reference internal" href="../_modules/src/coloringSat.html#ColoringStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.coloringSat.ColoringStream" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>write my stream class
+only write and flush are used for the streaming
+<a class="reference external" href="https://docs.python.org/2/library/logging.handlers.html">https://docs.python.org/2/library/logging.handlers.html</a>
+<a class="reference external" href="https://stackoverflow.com/questions/31999627/storing-logger-messages-in-a-string">https://stackoverflow.com/questions/31999627/storing-logger-messages-in-a-string</a></p>
+<dl class="method">
+<dt id="src.coloringSat.ColoringStream.flush">
+<code class="descname">flush</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/coloringSat.html#ColoringStream.flush"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.coloringSat.ColoringStream.flush" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.coloringSat.ColoringStream.write">
+<code class="descname">write</code><span class="sig-paren">(</span><em>astr</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/coloringSat.html#ColoringStream.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.coloringSat.ColoringStream.write" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="src.coloringSat.cleanColors">
+<code class="descclassname">src.coloringSat.</code><code class="descname">cleanColors</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/coloringSat.html#cleanColors"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.coloringSat.cleanColors" title="Permalink to this definition">¶</a></dt>
+<dd><p>clean the message of color tags '&lt;red&gt; ...</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.coloringSat.indent">
+<code class="descclassname">src.coloringSat.</code><code class="descname">indent</code><span class="sig-paren">(</span><em>msg</em>, <em>nb</em>, <em>car=' '</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/coloringSat.html#indent"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.coloringSat.indent" title="Permalink to this definition">¶</a></dt>
+<dd><p>indent nb car (spaces) multi lines message except first one</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.coloringSat.log">
+<code class="descclassname">src.coloringSat.</code><code class="descname">log</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/coloringSat.html#log"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.coloringSat.log" title="Permalink to this definition">¶</a></dt>
+<dd><p>elementary log stdout for debug if _verbose</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.coloringSat.replace">
+<code class="descclassname">src.coloringSat.</code><code class="descname">replace</code><span class="sig-paren">(</span><em>msg</em>, <em>tags</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/coloringSat.html#replace"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.coloringSat.replace" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.coloringSat.toColor">
+<code class="descclassname">src.coloringSat.</code><code class="descname">toColor</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/coloringSat.html#toColor"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.coloringSat.toColor" title="Permalink to this definition">¶</a></dt>
+<dd><p>automatically clean the message of color tags '&lt;red&gt; ... 
+if the terminal output stdout is redirected by user
+if not, replace tags with ansi color codes</p>
+<p>example:
+&gt;&gt; sat compile SALOME &gt; log.txt</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.coloringSat.toColor_AnsiToWin32">
+<code class="descclassname">src.coloringSat.</code><code class="descname">toColor_AnsiToWin32</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/coloringSat.html#toColor_AnsiToWin32"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.coloringSat.toColor_AnsiToWin32" title="Permalink to this definition">¶</a></dt>
+<dd><p>for test debug no wrapping</p>
+</dd></dl>
+
+</div>
+<div class="section" id="module-src.compilation">
+<span id="src-compilation-module"></span><h2>src.compilation module<a class="headerlink" href="#module-src.compilation" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="src.compilation.Builder">
+<em class="property">class </em><code class="descclassname">src.compilation.</code><code class="descname">Builder</code><span class="sig-paren">(</span><em>config</em>, <em>logger</em>, <em>product_info</em>, <em>options=OptResult(   )</em>, <em>check_src=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/compilation.html#Builder"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder" title="Permalink to this definition">¶</a></dt>
+<dd><p>Class to handle all construction steps, like cmake, configure, make, ...</p>
+<dl class="method">
+<dt id="src.compilation.Builder.build_configure">
+<code class="descname">build_configure</code><span class="sig-paren">(</span><em>options=''</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/compilation.html#Builder.build_configure"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.build_configure" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.compilation.Builder.check">
+<code class="descname">check</code><span class="sig-paren">(</span><em>command=''</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/compilation.html#Builder.check"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.check" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.compilation.Builder.cmake">
+<code class="descname">cmake</code><span class="sig-paren">(</span><em>options=''</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/compilation.html#Builder.cmake"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.cmake" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.compilation.Builder.complete_environment">
+<code class="descname">complete_environment</code><span class="sig-paren">(</span><em>make_options</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/compilation.html#Builder.complete_environment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.complete_environment" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.compilation.Builder.configure">
+<code class="descname">configure</code><span class="sig-paren">(</span><em>options=''</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/compilation.html#Builder.configure"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.configure" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.compilation.Builder.do_batch_script_build">
+<code class="descname">do_batch_script_build</code><span class="sig-paren">(</span><em>script</em>, <em>nb_proc</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/compilation.html#Builder.do_batch_script_build"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.do_batch_script_build" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.compilation.Builder.do_default_build">
+<code class="descname">do_default_build</code><span class="sig-paren">(</span><em>build_conf_options=''</em>, <em>configure_options=''</em>, <em>show_warning=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/compilation.html#Builder.do_default_build"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.do_default_build" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.compilation.Builder.do_python_script_build">
+<code class="descname">do_python_script_build</code><span class="sig-paren">(</span><em>script</em>, <em>nb_proc</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/compilation.html#Builder.do_python_script_build"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.do_python_script_build" title="Permalink to this definition">¶</a></dt>
+<dd><p>Performs a build with a script.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.compilation.Builder.do_script_build">
+<code class="descname">do_script_build</code><span class="sig-paren">(</span><em>script</em>, <em>number_of_proc=0</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/compilation.html#Builder.do_script_build"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.do_script_build" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.compilation.Builder.hack_libtool">
+<code class="descname">hack_libtool</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/compilation.html#Builder.hack_libtool"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.hack_libtool" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.compilation.Builder.install">
+<code class="descname">install</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/compilation.html#Builder.install"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.install" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.compilation.Builder.log">
+<code class="descname">log</code><span class="sig-paren">(</span><em>text</em>, <em>level</em>, <em>showInfo=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/compilation.html#Builder.log"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.log" title="Permalink to this definition">¶</a></dt>
+<dd><p>Shortcut method to log in log file.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.compilation.Builder.log_command">
+<code class="descname">log_command</code><span class="sig-paren">(</span><em>command</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/compilation.html#Builder.log_command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.log_command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Shortcut method to log a command.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.compilation.Builder.make">
+<code class="descname">make</code><span class="sig-paren">(</span><em>nb_proc</em>, <em>make_opt=''</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/compilation.html#Builder.make"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.make" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.compilation.Builder.prepare">
+<code class="descname">prepare</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/compilation.html#Builder.prepare"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.prepare" title="Permalink to this definition">¶</a></dt>
+<dd><p>Prepares the environment.
+Build two environment: one for building and one for testing (launch).</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.compilation.Builder.put_txt_log_in_appli_log_dir">
+<code class="descname">put_txt_log_in_appli_log_dir</code><span class="sig-paren">(</span><em>file_name</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/compilation.html#Builder.put_txt_log_in_appli_log_dir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.put_txt_log_in_appli_log_dir" title="Permalink to this definition">¶</a></dt>
+<dd><p>Put the txt log (that contain the system logs, like make command output)
+in the directory &lt;APPLICATION DIR&gt;/LOGS/&lt;product_name&gt;/</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>file_name</strong> -- (str) The name of the file to write</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.compilation.Builder.wmake">
+<code class="descname">wmake</code><span class="sig-paren">(</span><em>nb_proc</em>, <em>opt_nb_proc=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/compilation.html#Builder.wmake"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.wmake" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-src.configManager">
+<span id="src-configmanager-module"></span><h2>src.configManager module<a class="headerlink" href="#module-src.configManager" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="src.configManager.ConfigManager">
+<em class="property">class </em><code class="descclassname">src.configManager.</code><code class="descname">ConfigManager</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/configManager.html#ConfigManager"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.ConfigManager" title="Permalink to this definition">¶</a></dt>
+<dd><p>Class that manages the read of all the config .pyconf files of salomeTools</p>
+<dl class="method">
+<dt id="src.configManager.ConfigManager.create_config_file">
+<code class="descname">create_config_file</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/configManager.html#ConfigManager.create_config_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.ConfigManager.create_config_file" title="Permalink to this definition">¶</a></dt>
+<dd><p>This method is called when there are no user config file. 
+It build it from scratch.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>config</strong> -- (Config) The global config.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(Config) 
+The config corresponding to the file created.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.configManager.ConfigManager.get_command_line_overrides">
+<code class="descname">get_command_line_overrides</code><span class="sig-paren">(</span><em>options</em>, <em>sections</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/configManager.html#ConfigManager.get_command_line_overrides"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.ConfigManager.get_command_line_overrides" title="Permalink to this definition">¶</a></dt>
+<dd><p>get all the overwrites that are in the command line</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>options</strong> -- The options from salomeTools class initialization 
+(as '-l5' or '--overwrite')</li>
+<li><strong>sections</strong> -- (str) The config section to overwrite.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(list) The list of all the overwrites to apply.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.configManager.ConfigManager.get_config">
+<code class="descname">get_config</code><span class="sig-paren">(</span><em>application=None</em>, <em>options=None</em>, <em>command=None</em>, <em>datadir=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/configManager.html#ConfigManager.get_config"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.ConfigManager.get_config" title="Permalink to this definition">¶</a></dt>
+<dd><p>get the config from all the configuration files.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>application</strong> -- (str) 
+The application for which salomeTools is called.</li>
+<li><strong>options</strong> -- (Options) 
+The general salomeTools options 
+(as '--overwrite' or '-v5')</li>
+<li><strong>command</strong> -- (str) The command that is called.</li>
+<li><strong>datadir</strong> -- (str) 
+The repository that contain external data for salomeTools.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(Config) The final config.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.configManager.ConfigManager.get_user_config_file">
+<code class="descname">get_user_config_file</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/configManager.html#ConfigManager.get_user_config_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.ConfigManager.get_user_config_file" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the user config file</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">(str) path to the user config file.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.configManager.ConfigManager.set_user_config_file">
+<code class="descname">set_user_config_file</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/configManager.html#ConfigManager.set_user_config_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.ConfigManager.set_user_config_file" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the user config file name and path.
+If necessary, build it from another one or create it from scratch.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>config</strong> -- (Config) 
+The global config (containing all pyconf).</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.configManager.ConfigOpener">
+<em class="property">class </em><code class="descclassname">src.configManager.</code><code class="descname">ConfigOpener</code><span class="sig-paren">(</span><em>pathList</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/configManager.html#ConfigOpener"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.ConfigOpener" title="Permalink to this definition">¶</a></dt>
+<dd><p>Class that helps to find an application pyconf 
+in all the possible directories (pathList)</p>
+<dl class="method">
+<dt id="src.configManager.ConfigOpener.get_path">
+<code class="descname">get_path</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/configManager.html#ConfigOpener.get_path"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.ConfigOpener.get_path" title="Permalink to this definition">¶</a></dt>
+<dd><p>The method that returns the entire path of the pyconf searched</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>name</strong> -- (str) The name of the searched pyconf.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="src.configManager.check_path">
+<code class="descclassname">src.configManager.</code><code class="descname">check_path</code><span class="sig-paren">(</span><em>path</em>, <em>ext=[]</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/configManager.html#check_path"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.check_path" title="Permalink to this definition">¶</a></dt>
+<dd><p>Construct a text with the input path and &quot;not found&quot; if it does not exist.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>path</strong> -- (str) The path to check.</li>
+<li><strong>ext</strong> -- (list) 
+An extension. Verify that the path extension is in the list</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(str) The string of the path with information</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.configManager.getConfigColored">
+<code class="descclassname">src.configManager.</code><code class="descname">getConfigColored</code><span class="sig-paren">(</span><em>config</em>, <em>path</em>, <em>stream</em>, <em>show_label=False</em>, <em>level=0</em>, <em>show_full_path=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/configManager.html#getConfigColored"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.getConfigColored" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get a colored representation value from a config pyconf instance.
+used recursively from the initial path.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>config</strong> -- (Config) 
+The configuration from which the value is displayed.</li>
+<li><strong>path</strong> -- (str) The path in the configuration of the value to print.</li>
+<li><strong>show_label</strong> -- (bool) 
+If True, do a basic display. (useful for bash completion)</li>
+<li><strong>stream</strong> -- The output stream used</li>
+<li><strong>level</strong> -- (int) The number of spaces to add before display.</li>
+<li><strong>show_full_path</strong> -- (bool) Display full path, else relative</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.configManager.get_config_children">
+<code class="descclassname">src.configManager.</code><code class="descname">get_config_children</code><span class="sig-paren">(</span><em>config</em>, <em>args</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/configManager.html#get_config_children"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.get_config_children" title="Permalink to this definition">¶</a></dt>
+<dd><p>Gets the names of the children of the given parameter.
+Useful only for completion mechanism</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>config</strong> -- (Config) The configuration where to read the values</li>
+<li><strong>args</strong> -- The path in the config from which get the keys</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.configManager.get_products_list">
+<code class="descclassname">src.configManager.</code><code class="descname">get_products_list</code><span class="sig-paren">(</span><em>self</em>, <em>options</em>, <em>cfg</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/configManager.html#get_products_list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.get_products_list" title="Permalink to this definition">¶</a></dt>
+<dd><p>Gives the product list with their informations from 
+configuration regarding the passed options.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>options</strong> -- (Options) 
+The Options instance that stores the commands arguments</li>
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display and logging</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(list) The list of (product name, product_informations).</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.configManager.print_debug">
+<code class="descclassname">src.configManager.</code><code class="descname">print_debug</code><span class="sig-paren">(</span><em>config</em>, <em>aPath</em>, <em>logger</em>, <em>show_label=False</em>, <em>level=0</em>, <em>show_full_path=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/configManager.html#print_debug"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.print_debug" title="Permalink to this definition">¶</a></dt>
+<dd><p>logger output for debugging a config/pyconf
+lines contains: path : expression --&gt; 'evaluation'</p>
+<p>example:
+PROJECTS.projects.salome.project_path : $PWD --&gt; '/tmp/SALOME'</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.configManager.print_value">
+<code class="descclassname">src.configManager.</code><code class="descname">print_value</code><span class="sig-paren">(</span><em>config</em>, <em>path</em>, <em>logger</em>, <em>show_label=False</em>, <em>level=0</em>, <em>show_full_path=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/configManager.html#print_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.print_value" title="Permalink to this definition">¶</a></dt>
+<dd><p>print a colored representation value from a config pyconf instance.
+used recursively from the initial path.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Param:</th><td class="field-body">as getConfigColored</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.configManager.show_patchs">
+<code class="descclassname">src.configManager.</code><code class="descname">show_patchs</code><span class="sig-paren">(</span><em>config</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/configManager.html#show_patchs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.show_patchs" title="Permalink to this definition">¶</a></dt>
+<dd><p>Prints all the used patchs in the application.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>config</strong> -- (Config) the global configuration.</li>
+<li><strong>logger</strong> -- (Logger) 
+The logger instance to use for the display</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.configManager.show_product_info">
+<code class="descclassname">src.configManager.</code><code class="descname">show_product_info</code><span class="sig-paren">(</span><em>config</em>, <em>name</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/configManager.html#show_product_info"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.show_product_info" title="Permalink to this definition">¶</a></dt>
+<dd><p>Display on the terminal and logger information about a product.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>config</strong> -- (Config) the global configuration.</li>
+<li><strong>name</strong> -- (str) The name of the product</li>
+<li><strong>logger</strong> -- (Logger) The logger instance to use for the display</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-src.debug">
+<span id="src-debug-module"></span><h2>src.debug module<a class="headerlink" href="#module-src.debug" title="Permalink to this headline">¶</a></h2>
+<p>This file assume DEBUG functionalities use
+Print salomeTools debug messages in sys.stderr.
+Show pretty print debug representation from instances of SAT classes 
+(pretty print src.pyconf.Config)</p>
+<p>WARNING: supposedly show messages in SAT development phase, not production</p>
+<p>usage:
+&gt;&gt; import debug as DBG
+&gt;&gt; DBG.write(&quot;aTitle&quot;, aVariable)        # not shown in production 
+&gt;&gt; DBG.write(&quot;aTitle&quot;, aVariable, True)  # unconditionaly shown</p>
+<dl class="class">
+<dt id="src.debug.InStream">
+<em class="property">class </em><code class="descclassname">src.debug.</code><code class="descname">InStream</code><span class="sig-paren">(</span><em>buf=''</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/debug.html#InStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.InStream" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">StringIO.StringIO</span></code></p>
+<p>utility class for pyconf.Config input iostream</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="src.debug.OutStream">
+<em class="property">class </em><code class="descclassname">src.debug.</code><code class="descname">OutStream</code><span class="sig-paren">(</span><em>buf=''</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/debug.html#OutStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.OutStream" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">StringIO.StringIO</span></code></p>
+<p>utility class for pyconf.Config output iostream</p>
+<dl class="method">
+<dt id="src.debug.OutStream.close">
+<code class="descname">close</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/debug.html#OutStream.close"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.OutStream.close" title="Permalink to this definition">¶</a></dt>
+<dd><p>because Config.__save__ calls close() stream as file
+keep value before lost as self.value</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="src.debug.getLocalEnv">
+<code class="descclassname">src.debug.</code><code class="descname">getLocalEnv</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/debug.html#getLocalEnv"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.getLocalEnv" title="Permalink to this definition">¶</a></dt>
+<dd><p>get string for environment variables representation</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.debug.getStrConfigDbg">
+<code class="descclassname">src.debug.</code><code class="descname">getStrConfigDbg</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/debug.html#getStrConfigDbg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.getStrConfigDbg" title="Permalink to this definition">¶</a></dt>
+<dd><p>set string as saveConfigDbg, 
+as (path expression evaluation) for debug</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.debug.getStrConfigStd">
+<code class="descclassname">src.debug.</code><code class="descname">getStrConfigStd</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/debug.html#getStrConfigStd"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.getStrConfigStd" title="Permalink to this definition">¶</a></dt>
+<dd><p>set string as saveConfigStd, 
+as file .pyconf</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.debug.indent">
+<code class="descclassname">src.debug.</code><code class="descname">indent</code><span class="sig-paren">(</span><em>text</em>, <em>amount=2</em>, <em>ch=' '</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/debug.html#indent"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.indent" title="Permalink to this definition">¶</a></dt>
+<dd><p>indent multi lines message</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.debug.pop_debug">
+<code class="descclassname">src.debug.</code><code class="descname">pop_debug</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/debug.html#pop_debug"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.pop_debug" title="Permalink to this definition">¶</a></dt>
+<dd><p>restore previous debug outputs status</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.debug.push_debug">
+<code class="descclassname">src.debug.</code><code class="descname">push_debug</code><span class="sig-paren">(</span><em>aBool</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/debug.html#push_debug"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.push_debug" title="Permalink to this definition">¶</a></dt>
+<dd><p>set debug outputs activated, or not</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.debug.saveConfigDbg">
+<code class="descclassname">src.debug.</code><code class="descname">saveConfigDbg</code><span class="sig-paren">(</span><em>config</em>, <em>aStream</em>, <em>indent=0</em>, <em>path=''</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/debug.html#saveConfigDbg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.saveConfigDbg" title="Permalink to this definition">¶</a></dt>
+<dd><p>pyconf returns multilines (path expression evaluation) for debug</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.debug.saveConfigStd">
+<code class="descclassname">src.debug.</code><code class="descname">saveConfigStd</code><span class="sig-paren">(</span><em>config</em>, <em>aStream</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/debug.html#saveConfigStd"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.saveConfigStd" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns as file .pyconf</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.debug.tofix">
+<code class="descclassname">src.debug.</code><code class="descname">tofix</code><span class="sig-paren">(</span><em>title</em>, <em>var=''</em>, <em>force=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/debug.html#tofix"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.tofix" title="Permalink to this definition">¶</a></dt>
+<dd><p>write sys.stderr a message if _debug[-1]==True or optionaly force=True
+use this only if no logger accessible for classic logger.warning(message)</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.debug.write">
+<code class="descclassname">src.debug.</code><code class="descname">write</code><span class="sig-paren">(</span><em>title</em>, <em>var=''</em>, <em>force=None</em>, <em>fmt='\n#### DEBUG: %s:\n%s\n'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/debug.html#write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.write" title="Permalink to this definition">¶</a></dt>
+<dd><p>write sys.stderr a message if _debug[-1]==True or optionaly force=True</p>
+</dd></dl>
+
+</div>
+<div class="section" id="module-src.environment">
+<span id="src-environment-module"></span><h2>src.environment module<a class="headerlink" href="#module-src.environment" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="src.environment.Environ">
+<em class="property">class </em><code class="descclassname">src.environment.</code><code class="descname">Environ</code><span class="sig-paren">(</span><em>environ=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#Environ"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.Environ" title="Permalink to this definition">¶</a></dt>
+<dd><p>Class to manage an environment context</p>
+<dl class="method">
+<dt id="src.environment.Environ.append">
+<code class="descname">append</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#Environ.append"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.Environ.append" title="Permalink to this definition">¶</a></dt>
+<dd><p>Same as append_value but the value argument can be a list</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to append</li>
+<li><strong>value</strong> -- (str or list) the value(s) to append to key</li>
+<li><strong>sep</strong> -- (str) the separator string (usually ':')</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.Environ.append_value">
+<code class="descname">append_value</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#Environ.append_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.Environ.append_value" title="Permalink to this definition">¶</a></dt>
+<dd><p>append value to key using sep</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to append</li>
+<li><strong>value</strong> -- (str) the value to append to key</li>
+<li><strong>sep</strong> -- (str) the separator string (usually ':')</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.Environ.command_value">
+<code class="descname">command_value</code><span class="sig-paren">(</span><em>key</em>, <em>command</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#Environ.command_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.Environ.command_value" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the value given by the system command &quot;command&quot; 
+and put it in the environment variable key</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable</li>
+<li><strong>command</strong> -- (str) the command to execute</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.Environ.get">
+<code class="descname">get</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#Environ.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.Environ.get" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the value of the environment variable &quot;key&quot;</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> -- (str) the environment variable</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.Environ.is_defined">
+<code class="descname">is_defined</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#Environ.is_defined"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.Environ.is_defined" title="Permalink to this definition">¶</a></dt>
+<dd><p>Check if the key exists in the environment</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> -- (str) the environment variable to check</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.Environ.prepend">
+<code class="descname">prepend</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#Environ.prepend"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.Environ.prepend" title="Permalink to this definition">¶</a></dt>
+<dd><p>Same as prepend_value but the value argument can be a list</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to prepend</li>
+<li><strong>value</strong> -- (str or list) the value(s) to prepend to key</li>
+<li><strong>sep</strong> -- (str) the separator string (usually ':')</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.Environ.prepend_value">
+<code class="descname">prepend_value</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#Environ.prepend_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.Environ.prepend_value" title="Permalink to this definition">¶</a></dt>
+<dd><p>prepend value to key using sep</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to prepend</li>
+<li><strong>value</strong> -- (str) the value to prepend to key</li>
+<li><strong>sep</strong> -- (str) the separator string (usually ':')</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.Environ.set">
+<code class="descname">set</code><span class="sig-paren">(</span><em>key</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#Environ.set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.Environ.set" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the environment variable &quot;key&quot; to value &quot;value&quot;</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to set</li>
+<li><strong>value</strong> -- (str) the value</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.environment.FileEnvWriter">
+<em class="property">class </em><code class="descclassname">src.environment.</code><code class="descname">FileEnvWriter</code><span class="sig-paren">(</span><em>config</em>, <em>logger</em>, <em>out_dir</em>, <em>src_root</em>, <em>env_info=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#FileEnvWriter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.FileEnvWriter" title="Permalink to this definition">¶</a></dt>
+<dd><p>Class to dump the environment to a file.</p>
+<dl class="method">
+<dt id="src.environment.FileEnvWriter.write_cfgForPy_file">
+<code class="descname">write_cfgForPy_file</code><span class="sig-paren">(</span><em>filename</em>, <em>additional_env={}</em>, <em>for_package=None</em>, <em>with_commercial=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#FileEnvWriter.write_cfgForPy_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.FileEnvWriter.write_cfgForPy_file" title="Permalink to this definition">¶</a></dt>
+<dd><p>Append to current opened aFile a cfgForPy 
+environment (SALOME python launcher).</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>filename</strong> -- (str) the file path</li>
+<li><strong>additional_env</strong> -- (dict) 
+a dictionary of additional variables to add to the environment</li>
+<li><strong>for_package</strong> -- (str) 
+If not None, produce a relative environment 
+(designed for a package)</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.FileEnvWriter.write_env_file">
+<code class="descname">write_env_file</code><span class="sig-paren">(</span><em>filename</em>, <em>forBuild</em>, <em>shell</em>, <em>for_package=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#FileEnvWriter.write_env_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.FileEnvWriter.write_env_file" title="Permalink to this definition">¶</a></dt>
+<dd><p>Create an environment file.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>filename</strong> -- (str) the file path</li>
+<li><strong>forBuild</strong> -- (bool) if true, the build environment</li>
+<li><strong>shell</strong> -- (str) the type of file wanted (.sh, .bat)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(str) The path to the generated file</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.environment.SalomeEnviron">
+<em class="property">class </em><code class="descclassname">src.environment.</code><code class="descname">SalomeEnviron</code><span class="sig-paren">(</span><em>cfg</em>, <em>environ</em>, <em>forBuild=False</em>, <em>for_package=None</em>, <em>enable_simple_env_script=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron" title="Permalink to this definition">¶</a></dt>
+<dd><p>Class to manage the environment of SALOME.</p>
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.add_comment">
+<code class="descname">add_comment</code><span class="sig-paren">(</span><em>comment</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.add_comment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.add_comment" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a commentary to the out stream (in case of file generation)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>comment</strong> -- (str) the commentary to add</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.add_line">
+<code class="descname">add_line</code><span class="sig-paren">(</span><em>nb_line</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.add_line"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.add_line" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add empty lines to the out stream (in case of file generation)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>nb_line</strong> -- (int) the number of empty lines to add</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.add_warning">
+<code class="descname">add_warning</code><span class="sig-paren">(</span><em>warning</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.add_warning"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.add_warning" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a warning to the out stream (in case of file generation)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>warning</strong> -- (str) the warning to add</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.append">
+<code class="descname">append</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.append"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.append" title="Permalink to this definition">¶</a></dt>
+<dd><p>append value to key using sep</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to append</li>
+<li><strong>value</strong> -- (str) the value to append to key</li>
+<li><strong>sep</strong> -- (str) the separator string</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.dump">
+<code class="descname">dump</code><span class="sig-paren">(</span><em>out</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.dump"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.dump" title="Permalink to this definition">¶</a></dt>
+<dd><p>Write the environment to out</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>out</strong> -- (file) the stream where to write the environment</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.finish">
+<code class="descname">finish</code><span class="sig-paren">(</span><em>required</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.finish"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.finish" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a final instruction in the out file (in case of file generation)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>required</strong> -- (bool) Do nothing if required is False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.get">
+<code class="descname">get</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.get" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the value of the environment variable &quot;key&quot;</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> -- (str) the environment variable</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.get_names">
+<code class="descname">get_names</code><span class="sig-paren">(</span><em>lProducts</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.get_names"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.get_names" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the products name to add in SALOME_MODULES environment variable
+It is the name of the product, except in the case where the is a 
+component name. And it has to be in SALOME_MODULES variable only 
+if the product has the property has_salome_hui = &quot;yes&quot;</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>lProducts</strong> -- (list) List of products to potentially add</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.is_defined">
+<code class="descname">is_defined</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.is_defined"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.is_defined" title="Permalink to this definition">¶</a></dt>
+<dd><p>Check if the key exists in the environment</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> -- (str) the environment variable to check</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.load_cfg_environment">
+<code class="descname">load_cfg_environment</code><span class="sig-paren">(</span><em>cfg_env</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.load_cfg_environment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.load_cfg_environment" title="Permalink to this definition">¶</a></dt>
+<dd><p>Loads environment defined in cfg_env</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>cfg_env</strong> -- (Config) A config containing an environment</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.prepend">
+<code class="descname">prepend</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.prepend"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.prepend" title="Permalink to this definition">¶</a></dt>
+<dd><p>prepend value to key using sep</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to prepend</li>
+<li><strong>value</strong> -- (str) the value to prepend to key</li>
+<li><strong>sep</strong> -- (str) the separator string</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.run_env_script">
+<code class="descname">run_env_script</code><span class="sig-paren">(</span><em>product_info</em>, <em>logger=None</em>, <em>native=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.run_env_script"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.run_env_script" title="Permalink to this definition">¶</a></dt>
+<dd><p>Runs an environment script.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>product_info</strong> -- (Config) The product description</li>
+<li><strong>logger</strong> -- (Logger) The logger instance to display messages</li>
+<li><strong>native</strong> -- (bool) If True load set_native_env instead of set_env</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.run_simple_env_script">
+<code class="descname">run_simple_env_script</code><span class="sig-paren">(</span><em>script_path</em>, <em>logger=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.run_simple_env_script"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.run_simple_env_script" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="docutils">
+<dt>Runs an environment script. Same as run_env_script, but with a </dt>
+<dd>script path as parameter.</dd>
+</dl>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>script_path</strong> -- (str) A path to an environment script</li>
+<li><strong>logger</strong> -- (Logger) The logger instance to display messages</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.set">
+<code class="descname">set</code><span class="sig-paren">(</span><em>key</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.set" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the environment variable &quot;key&quot; to value &quot;value&quot;</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to set</li>
+<li><strong>value</strong> -- (str) the value</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.set_a_product">
+<code class="descname">set_a_product</code><span class="sig-paren">(</span><em>product</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.set_a_product"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.set_a_product" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets the environment of a product.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>product</strong> -- (str) The product name</li>
+<li><strong>logger</strong> -- (Logger) The logger instance to display messages</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.set_application_env">
+<code class="descname">set_application_env</code><span class="sig-paren">(</span><em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.set_application_env"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.set_application_env" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets the environment defined in the APPLICATION file.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>logger</strong> -- (Logger) The logger instance to display messages</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.set_cpp_env">
+<code class="descname">set_cpp_env</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.set_cpp_env"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.set_cpp_env" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets the generic environment for a SALOME cpp product.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config) The product description</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.set_full_environ">
+<code class="descname">set_full_environ</code><span class="sig-paren">(</span><em>logger</em>, <em>env_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.set_full_environ"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.set_full_environ" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets the full environment for products 
+specified in env_info dictionary.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>logger</strong> -- (Logger) The logger instance to display messages</li>
+<li><strong>env_info</strong> -- (list) the list of products</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.set_products">
+<code class="descname">set_products</code><span class="sig-paren">(</span><em>logger</em>, <em>src_root=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.set_products"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.set_products" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets the environment for all the products.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>logger</strong> -- (Logger) The logger instance to display messages</li>
+<li><strong>src_root</strong> -- the application working directory</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.set_python_libdirs">
+<code class="descname">set_python_libdirs</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.set_python_libdirs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.set_python_libdirs" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set some generic variables for python library paths</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.set_salome_generic_product_env">
+<code class="descname">set_salome_generic_product_env</code><span class="sig-paren">(</span><em>pi</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.set_salome_generic_product_env"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.set_salome_generic_product_env" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets the generic environment for a SALOME product.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>pi</strong> -- (Config) The product description</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.environment.SalomeEnviron.set_salome_minimal_product_env">
+<code class="descname">set_salome_minimal_product_env</code><span class="sig-paren">(</span><em>product_info</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#SalomeEnviron.set_salome_minimal_product_env"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.set_salome_minimal_product_env" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets the minimal environment for a SALOME product.
+xxx_ROOT_DIR and xxx_SRC_DIR</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>product_info</strong> -- (Config) The product description</li>
+<li><strong>logger</strong> -- (Logger) The logger instance to display messages</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.environment.Shell">
+<em class="property">class </em><code class="descclassname">src.environment.</code><code class="descname">Shell</code><span class="sig-paren">(</span><em>name</em>, <em>extension</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#Shell"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.Shell" title="Permalink to this definition">¶</a></dt>
+<dd><p>Definition of a Shell.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.environment.load_environment">
+<code class="descclassname">src.environment.</code><code class="descname">load_environment</code><span class="sig-paren">(</span><em>config</em>, <em>build</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environment.html#load_environment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.load_environment" title="Permalink to this definition">¶</a></dt>
+<dd><p>Loads the environment (used to run the tests, for example).</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>config</strong> -- (Config) the global config</li>
+<li><strong>build</strong> -- (bool) build environement if True</li>
+<li><strong>logger</strong> -- (Logger) The logger instance to display messages</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-src.environs">
+<span id="src-environs-module"></span><h2>src.environs module<a class="headerlink" href="#module-src.environs" title="Permalink to this headline">¶</a></h2>
+<p>Utility for print environment variables</p>
+<dl class="docutils">
+<dt>examples: </dt>
+<dd><ul class="first last simple">
+<li>split all or specific environment variables $XXX(s)...
+&gt;&gt; environs.py -&gt; all
+&gt;&gt; environs.py SHELL PATH -&gt; specific $SHELL $PATH</li>
+<li>split all or specific environment variables on pattern $*XXX*(s)...
+&gt;&gt; environs.py --pat ROOT -&gt; specific $*ROOT*</li>
+<li>split search specific substrings in contents of environment variables $XXX(s)...
+&gt;&gt; environs.py --grep usr  -&gt; all specific environment variables containing usr</li>
+</ul>
+</dd>
+<dt>tips:</dt>
+<dd><ul class="first last simple">
+<li>create unix alias as shortcut for bash console
+&gt;&gt; alias envs=&quot;.../environs.py&quot;</li>
+</ul>
+</dd>
+</dl>
+<dl class="function">
+<dt id="src.environs.print_grep_environs">
+<code class="descclassname">src.environs.</code><code class="descname">print_grep_environs</code><span class="sig-paren">(</span><em>args=[]</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environs.html#print_grep_environs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environs.print_grep_environs" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.environs.print_split_environs">
+<code class="descclassname">src.environs.</code><code class="descname">print_split_environs</code><span class="sig-paren">(</span><em>args=[]</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environs.html#print_split_environs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environs.print_split_environs" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.environs.print_split_pattern_environs">
+<code class="descclassname">src.environs.</code><code class="descname">print_split_pattern_environs</code><span class="sig-paren">(</span><em>args=[]</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/environs.html#print_split_pattern_environs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environs.print_split_pattern_environs" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</div>
+<div class="section" id="module-src.exceptionSat">
+<span id="src-exceptionsat-module"></span><h2>src.exceptionSat module<a class="headerlink" href="#module-src.exceptionSat" title="Permalink to this headline">¶</a></h2>
+<dl class="exception">
+<dt id="src.exceptionSat.ExceptionSat">
+<em class="property">exception </em><code class="descclassname">src.exceptionSat.</code><code class="descname">ExceptionSat</code><a class="reference internal" href="../_modules/src/exceptionSat.html#ExceptionSat"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.exceptionSat.ExceptionSat" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">exceptions.Exception</span></code></p>
+<p>rename Exception Class for sat convenience (for future...)</p>
+</dd></dl>
+
+</div>
+<div class="section" id="module-src.fileEnviron">
+<span id="src-fileenviron-module"></span><h2>src.fileEnviron module<a class="headerlink" href="#module-src.fileEnviron" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="src.fileEnviron.BashFileEnviron">
+<em class="property">class </em><code class="descclassname">src.fileEnviron.</code><code class="descname">BashFileEnviron</code><span class="sig-paren">(</span><em>output</em>, <em>environ=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#BashFileEnviron"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.BashFileEnviron" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#src.fileEnviron.FileEnviron" title="src.fileEnviron.FileEnviron"><code class="xref py py-class docutils literal"><span class="pre">src.fileEnviron.FileEnviron</span></code></a></p>
+<p>Class for bash shell.</p>
+<dl class="method">
+<dt id="src.fileEnviron.BashFileEnviron.command_value">
+<code class="descname">command_value</code><span class="sig-paren">(</span><em>key</em>, <em>command</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#BashFileEnviron.command_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.BashFileEnviron.command_value" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the value given by the system command &quot;command&quot; 
+and put it in the environment variable key.
+Has to be overwritten in the derived classes
+This can be seen as a virtual method</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable</li>
+<li><strong>command</strong> -- (str) the command to execute</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.BashFileEnviron.finish">
+<code class="descname">finish</code><span class="sig-paren">(</span><em>required=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#BashFileEnviron.finish"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.BashFileEnviron.finish" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a final instruction in the out file (in case of file generation)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>required</strong> -- (bool) Do nothing if required is False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.BashFileEnviron.set">
+<code class="descname">set</code><span class="sig-paren">(</span><em>key</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#BashFileEnviron.set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.BashFileEnviron.set" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the environment variable &quot;key&quot; to value &quot;value&quot;</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to set</li>
+<li><strong>value</strong> -- (str) the value</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.fileEnviron.BatFileEnviron">
+<em class="property">class </em><code class="descclassname">src.fileEnviron.</code><code class="descname">BatFileEnviron</code><span class="sig-paren">(</span><em>output</em>, <em>environ=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#BatFileEnviron"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.BatFileEnviron" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#src.fileEnviron.FileEnviron" title="src.fileEnviron.FileEnviron"><code class="xref py py-class docutils literal"><span class="pre">src.fileEnviron.FileEnviron</span></code></a></p>
+<p>for Windows batch shell.</p>
+<dl class="method">
+<dt id="src.fileEnviron.BatFileEnviron.add_comment">
+<code class="descname">add_comment</code><span class="sig-paren">(</span><em>comment</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#BatFileEnviron.add_comment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.BatFileEnviron.add_comment" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a comment in the shell file</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>comment</strong> -- (str) the comment to add</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.BatFileEnviron.command_value">
+<code class="descname">command_value</code><span class="sig-paren">(</span><em>key</em>, <em>command</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#BatFileEnviron.command_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.BatFileEnviron.command_value" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the value given by the system command &quot;command&quot; 
+and put it in the environment variable key.
+Has to be overwritten in the derived classes
+This can be seen as a virtual method</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable</li>
+<li><strong>command</strong> -- (str) the command to execute</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.BatFileEnviron.finish">
+<code class="descname">finish</code><span class="sig-paren">(</span><em>required=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#BatFileEnviron.finish"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.BatFileEnviron.finish" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a final instruction in the out file (in case of file generation)
+In the particular windows case, do nothing</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>required</strong> -- (bool) Do nothing if required is False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.BatFileEnviron.get">
+<code class="descname">get</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#BatFileEnviron.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.BatFileEnviron.get" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the value of the environment variable &quot;key&quot;</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> -- (str) the environment variable</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.BatFileEnviron.set">
+<code class="descname">set</code><span class="sig-paren">(</span><em>key</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#BatFileEnviron.set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.BatFileEnviron.set" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the environment variable &quot;key&quot; to value &quot;value&quot;</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to set</li>
+<li><strong>value</strong> -- (str) the value</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.fileEnviron.ContextFileEnviron">
+<em class="property">class </em><code class="descclassname">src.fileEnviron.</code><code class="descname">ContextFileEnviron</code><span class="sig-paren">(</span><em>output</em>, <em>environ=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ContextFileEnviron"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ContextFileEnviron" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#src.fileEnviron.FileEnviron" title="src.fileEnviron.FileEnviron"><code class="xref py py-class docutils literal"><span class="pre">src.fileEnviron.FileEnviron</span></code></a></p>
+<p>Class for a salome context configuration file.</p>
+<dl class="method">
+<dt id="src.fileEnviron.ContextFileEnviron.add_echo">
+<code class="descname">add_echo</code><span class="sig-paren">(</span><em>text</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ContextFileEnviron.add_echo"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ContextFileEnviron.add_echo" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a comment</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>text</strong> -- (str) the comment to add</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.ContextFileEnviron.add_warning">
+<code class="descname">add_warning</code><span class="sig-paren">(</span><em>warning</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ContextFileEnviron.add_warning"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ContextFileEnviron.add_warning" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a warning</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>text</strong> -- (str) the warning to add</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.ContextFileEnviron.append_value">
+<code class="descname">append_value</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ContextFileEnviron.append_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ContextFileEnviron.append_value" title="Permalink to this definition">¶</a></dt>
+<dd><p>append value to key using sep</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to append</li>
+<li><strong>value</strong> -- (str) the value to append to key</li>
+<li><strong>sep</strong> -- (str) the separator string</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.ContextFileEnviron.command_value">
+<code class="descname">command_value</code><span class="sig-paren">(</span><em>key</em>, <em>command</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ContextFileEnviron.command_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ContextFileEnviron.command_value" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the value given by the system command &quot;command&quot; 
+and put it in the environment variable key.
+Has to be overwritten in the derived classes
+This can be seen as a virtual method</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable</li>
+<li><strong>command</strong> -- (str) the command to execute</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.ContextFileEnviron.finish">
+<code class="descname">finish</code><span class="sig-paren">(</span><em>required=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ContextFileEnviron.finish"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ContextFileEnviron.finish" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a final instruction in the out file (in case of file generation)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>required</strong> -- (bool) Do nothing if required is False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.ContextFileEnviron.get">
+<code class="descname">get</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ContextFileEnviron.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ContextFileEnviron.get" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the value of the environment variable &quot;key&quot;</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> -- (str) the environment variable</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.ContextFileEnviron.prepend_value">
+<code class="descname">prepend_value</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ContextFileEnviron.prepend_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ContextFileEnviron.prepend_value" title="Permalink to this definition">¶</a></dt>
+<dd><p>prepend value to key using sep</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to prepend</li>
+<li><strong>value</strong> -- (str) the value to prepend to key</li>
+<li><strong>sep</strong> -- (str) the separator string</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.ContextFileEnviron.set">
+<code class="descname">set</code><span class="sig-paren">(</span><em>key</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ContextFileEnviron.set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ContextFileEnviron.set" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the environment variable &quot;key&quot; to value &quot;value&quot;</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to set</li>
+<li><strong>value</strong> -- (str) the value</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.fileEnviron.FileEnviron">
+<em class="property">class </em><code class="descclassname">src.fileEnviron.</code><code class="descname">FileEnviron</code><span class="sig-paren">(</span><em>output</em>, <em>environ=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#FileEnviron"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron" title="Permalink to this definition">¶</a></dt>
+<dd><p>Base class for shell environment</p>
+<dl class="method">
+<dt id="src.fileEnviron.FileEnviron.add_comment">
+<code class="descname">add_comment</code><span class="sig-paren">(</span><em>comment</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#FileEnviron.add_comment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.add_comment" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a comment in the shell file</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>comment</strong> -- (str) the comment to add</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.FileEnviron.add_echo">
+<code class="descname">add_echo</code><span class="sig-paren">(</span><em>text</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#FileEnviron.add_echo"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.add_echo" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a 'echo' in the shell file</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>text</strong> -- (str) the text to echo</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.FileEnviron.add_line">
+<code class="descname">add_line</code><span class="sig-paren">(</span><em>number</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#FileEnviron.add_line"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.add_line" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add some empty lines in the shell file</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>number</strong> -- (int) the number of lines to add</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.FileEnviron.add_warning">
+<code class="descname">add_warning</code><span class="sig-paren">(</span><em>warning</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#FileEnviron.add_warning"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.add_warning" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a warning &quot;echo&quot; in the shell file</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>warning</strong> -- (str) the text to echo</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.FileEnviron.append">
+<code class="descname">append</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#FileEnviron.append"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.append" title="Permalink to this definition">¶</a></dt>
+<dd><p>Same as append_value but the value argument can be a list</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to append</li>
+<li><strong>value</strong> -- (str or list) the value(s) to append to key</li>
+<li><strong>sep</strong> -- (str) the separator string</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.FileEnviron.append_value">
+<code class="descname">append_value</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#FileEnviron.append_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.append_value" title="Permalink to this definition">¶</a></dt>
+<dd><p>append value to key using sep</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to append</li>
+<li><strong>value</strong> -- (str) the value to append to key</li>
+<li><strong>sep</strong> -- (str) the separator string</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.FileEnviron.command_value">
+<code class="descname">command_value</code><span class="sig-paren">(</span><em>key</em>, <em>command</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#FileEnviron.command_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.command_value" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the value given by the system command &quot;command&quot; 
+and put it in the environment variable key.
+Has to be overwritten in the derived classes
+This can be seen as a virtual method</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable</li>
+<li><strong>command</strong> -- (str) the command to execute</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.FileEnviron.finish">
+<code class="descname">finish</code><span class="sig-paren">(</span><em>required=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#FileEnviron.finish"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.finish" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a final instruction in the out file (in case of file generation)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>required</strong> -- (bool) Do nothing if required is False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.FileEnviron.get">
+<code class="descname">get</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#FileEnviron.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.get" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the value of the environment variable &quot;key&quot;</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> -- (str) the environment variable</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.FileEnviron.is_defined">
+<code class="descname">is_defined</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#FileEnviron.is_defined"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.is_defined" title="Permalink to this definition">¶</a></dt>
+<dd><p>Check if the key exists in the environment</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> -- (str) the environment variable to check</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.FileEnviron.prepend">
+<code class="descname">prepend</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#FileEnviron.prepend"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.prepend" title="Permalink to this definition">¶</a></dt>
+<dd><p>Same as prepend_value but the value argument can be a list</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to prepend</li>
+<li><strong>value</strong> -- (str or list) the value(s) to prepend to key</li>
+<li><strong>sep</strong> -- (str) the separator string</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.FileEnviron.prepend_value">
+<code class="descname">prepend_value</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#FileEnviron.prepend_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.prepend_value" title="Permalink to this definition">¶</a></dt>
+<dd><p>prepend value to key using sep</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to prepend</li>
+<li><strong>value</strong> -- str) the value to prepend to key</li>
+<li><strong>sep</strong> -- (str) the separator string</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.FileEnviron.set">
+<code class="descname">set</code><span class="sig-paren">(</span><em>key</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#FileEnviron.set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.set" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the environment variable &quot;key&quot; to value &quot;value&quot;</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to set</li>
+<li><strong>value</strong> -- (str) the value</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.fileEnviron.LauncherFileEnviron">
+<em class="property">class </em><code class="descclassname">src.fileEnviron.</code><code class="descname">LauncherFileEnviron</code><span class="sig-paren">(</span><em>output</em>, <em>environ=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#LauncherFileEnviron"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron" title="Permalink to this definition">¶</a></dt>
+<dd><p>Class to generate a launcher file script 
+(in python syntax) SalomeContext API</p>
+<dl class="method">
+<dt id="src.fileEnviron.LauncherFileEnviron.add">
+<code class="descname">add</code><span class="sig-paren">(</span><em>key</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#LauncherFileEnviron.add"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.add" title="Permalink to this definition">¶</a></dt>
+<dd><p>prepend value to key using sep</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to prepend</li>
+<li><strong>value</strong> -- (str) the value to prepend to key</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.LauncherFileEnviron.add_comment">
+<code class="descname">add_comment</code><span class="sig-paren">(</span><em>comment</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#LauncherFileEnviron.add_comment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.add_comment" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.LauncherFileEnviron.add_echo">
+<code class="descname">add_echo</code><span class="sig-paren">(</span><em>text</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#LauncherFileEnviron.add_echo"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.add_echo" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a comment</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>text</strong> -- (str) the comment to add</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.LauncherFileEnviron.add_line">
+<code class="descname">add_line</code><span class="sig-paren">(</span><em>number</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#LauncherFileEnviron.add_line"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.add_line" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add some empty lines in the launcher file</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>number</strong> -- (int) the number of lines to add</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.LauncherFileEnviron.add_warning">
+<code class="descname">add_warning</code><span class="sig-paren">(</span><em>warning</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#LauncherFileEnviron.add_warning"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.add_warning" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a warning</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>text</strong> -- (str) the warning to add</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.LauncherFileEnviron.append">
+<code class="descname">append</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#LauncherFileEnviron.append"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.append" title="Permalink to this definition">¶</a></dt>
+<dd><p>Same as append_value but the value argument can be a list</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to append</li>
+<li><strong>value</strong> -- (str or list) the value(s) to append to key</li>
+<li><strong>sep</strong> -- (str) the separator string</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.LauncherFileEnviron.append_value">
+<code class="descname">append_value</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#LauncherFileEnviron.append_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.append_value" title="Permalink to this definition">¶</a></dt>
+<dd><p>append value to key using sep</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to append</li>
+<li><strong>value</strong> -- (str) the value to append to key</li>
+<li><strong>sep</strong> -- (str) the separator string</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.LauncherFileEnviron.change_to_launcher">
+<code class="descname">change_to_launcher</code><span class="sig-paren">(</span><em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#LauncherFileEnviron.change_to_launcher"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.change_to_launcher" title="Permalink to this definition">¶</a></dt>
+<dd><p>obsolete? do nothing</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.LauncherFileEnviron.command_value">
+<code class="descname">command_value</code><span class="sig-paren">(</span><em>key</em>, <em>command</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#LauncherFileEnviron.command_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.command_value" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the value given by the system command &quot;command&quot; 
+and put it in the environment variable key.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable</li>
+<li><strong>command</strong> -- (str) the command to execute</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.LauncherFileEnviron.finish">
+<code class="descname">finish</code><span class="sig-paren">(</span><em>required=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#LauncherFileEnviron.finish"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.finish" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a final instruction in the out file (in case of file generation)
+In the particular launcher case, do nothing</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>required</strong> -- (bool) Do nothing if required is False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.LauncherFileEnviron.get">
+<code class="descname">get</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#LauncherFileEnviron.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.get" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the value of the environment variable &quot;key&quot;</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> -- (str) the environment variable</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.LauncherFileEnviron.is_defined">
+<code class="descname">is_defined</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#LauncherFileEnviron.is_defined"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.is_defined" title="Permalink to this definition">¶</a></dt>
+<dd><p>Check if the key exists in the environment</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>key</strong> -- (str) the environment variable to check</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.LauncherFileEnviron.prepend">
+<code class="descname">prepend</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#LauncherFileEnviron.prepend"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.prepend" title="Permalink to this definition">¶</a></dt>
+<dd><p>Same as prepend_value but the value argument can be a list</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to prepend</li>
+<li><strong>value</strong> -- (str or list) the value(s) to prepend to key</li>
+<li><strong>sep</strong> -- (str) the separator string</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.LauncherFileEnviron.prepend_value">
+<code class="descname">prepend_value</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#LauncherFileEnviron.prepend_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.prepend_value" title="Permalink to this definition">¶</a></dt>
+<dd><p>prepend value to key using sep</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to prepend</li>
+<li><strong>value</strong> -- (str) the value to prepend to key</li>
+<li><strong>sep</strong> -- (str) the separator string</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.LauncherFileEnviron.set">
+<code class="descname">set</code><span class="sig-paren">(</span><em>key</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#LauncherFileEnviron.set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.set" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the environment variable &quot;key&quot; to value &quot;value&quot;</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>key</strong> -- (str) the environment variable to set</li>
+<li><strong>value</strong> -- (str) the value</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.fileEnviron.ScreenEnviron">
+<em class="property">class </em><code class="descclassname">src.fileEnviron.</code><code class="descname">ScreenEnviron</code><span class="sig-paren">(</span><em>output</em>, <em>environ=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ScreenEnviron"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#src.fileEnviron.FileEnviron" title="src.fileEnviron.FileEnviron"><code class="xref py py-class docutils literal"><span class="pre">src.fileEnviron.FileEnviron</span></code></a></p>
+<dl class="method">
+<dt id="src.fileEnviron.ScreenEnviron.add_comment">
+<code class="descname">add_comment</code><span class="sig-paren">(</span><em>comment</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ScreenEnviron.add_comment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.add_comment" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.ScreenEnviron.add_echo">
+<code class="descname">add_echo</code><span class="sig-paren">(</span><em>text</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ScreenEnviron.add_echo"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.add_echo" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.ScreenEnviron.add_line">
+<code class="descname">add_line</code><span class="sig-paren">(</span><em>number</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ScreenEnviron.add_line"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.add_line" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.ScreenEnviron.add_warning">
+<code class="descname">add_warning</code><span class="sig-paren">(</span><em>warning</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ScreenEnviron.add_warning"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.add_warning" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.ScreenEnviron.append">
+<code class="descname">append</code><span class="sig-paren">(</span><em>name</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ScreenEnviron.append"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.append" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.ScreenEnviron.command_value">
+<code class="descname">command_value</code><span class="sig-paren">(</span><em>key</em>, <em>command</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ScreenEnviron.command_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.command_value" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.ScreenEnviron.get">
+<code class="descname">get</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ScreenEnviron.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.get" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.ScreenEnviron.is_defined">
+<code class="descname">is_defined</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ScreenEnviron.is_defined"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.is_defined" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.ScreenEnviron.prepend">
+<code class="descname">prepend</code><span class="sig-paren">(</span><em>name</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ScreenEnviron.prepend"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.prepend" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.ScreenEnviron.run_env_script">
+<code class="descname">run_env_script</code><span class="sig-paren">(</span><em>module</em>, <em>script</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ScreenEnviron.run_env_script"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.run_env_script" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.ScreenEnviron.set">
+<code class="descname">set</code><span class="sig-paren">(</span><em>name</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ScreenEnviron.set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.set" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.fileEnviron.ScreenEnviron.write">
+<code class="descname">write</code><span class="sig-paren">(</span><em>command</em>, <em>name</em>, <em>value</em>, <em>sign='='</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#ScreenEnviron.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.write" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="src.fileEnviron.get_file_environ">
+<code class="descclassname">src.fileEnviron.</code><code class="descname">get_file_environ</code><span class="sig-paren">(</span><em>output</em>, <em>shell</em>, <em>environ=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#get_file_environ"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.get_file_environ" title="Permalink to this definition">¶</a></dt>
+<dd><p>Instantiate correct FileEnvironment sub-class.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>output</strong> -- (file) the output file stream.</li>
+<li><strong>shell</strong> -- (str) the type of shell syntax to use.</li>
+<li><strong>environ</strong> -- (dict) a potential additional environment.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.fileEnviron.special_path_separator">
+<code class="descclassname">src.fileEnviron.</code><code class="descname">special_path_separator</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fileEnviron.html#special_path_separator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.special_path_separator" title="Permalink to this definition">¶</a></dt>
+<dd><p>TCLLIBPATH, TKLIBPATH, PV_PLUGIN_PATH environments variables 
+need some exotic path separator.
+This function gives the separator regarding the name of the variable
+to append or prepend.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>name</strong> -- (str) The name of the variable to find the separator</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-src.fork">
+<span id="src-fork-module"></span><h2>src.fork module<a class="headerlink" href="#module-src.fork" title="Permalink to this headline">¶</a></h2>
+<dl class="function">
+<dt id="src.fork.batch">
+<code class="descclassname">src.fork.</code><code class="descname">batch</code><span class="sig-paren">(</span><em>cmd</em>, <em>logger</em>, <em>cwd</em>, <em>args=[]</em>, <em>log=None</em>, <em>delai=20</em>, <em>sommeil=1</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fork.html#batch"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fork.batch" title="Permalink to this definition">¶</a></dt>
+<dd><p>Launch a batch</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.fork.batch_salome">
+<code class="descclassname">src.fork.</code><code class="descname">batch_salome</code><span class="sig-paren">(</span><em>cmd</em>, <em>logger</em>, <em>cwd</em>, <em>args</em>, <em>getTmpDir</em>, <em>pendant='SALOME_Session_Server'</em>, <em>fin='killSalome.py'</em>, <em>log=None</em>, <em>delai=20</em>, <em>sommeil=1</em>, <em>delaiapp=0</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fork.html#batch_salome"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fork.batch_salome" title="Permalink to this definition">¶</a></dt>
+<dd><p>Launch a salome process</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.fork.launch_command">
+<code class="descclassname">src.fork.</code><code class="descname">launch_command</code><span class="sig-paren">(</span><em>cmd</em>, <em>logger</em>, <em>cwd</em>, <em>args=[]</em>, <em>log=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fork.html#launch_command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fork.launch_command" title="Permalink to this definition">¶</a></dt>
+<dd><p>Launch command</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.fork.show_progress">
+<code class="descclassname">src.fork.</code><code class="descname">show_progress</code><span class="sig-paren">(</span><em>logger</em>, <em>top</em>, <em>delai</em>, <em>ss=''</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fork.html#show_progress"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fork.show_progress" title="Permalink to this definition">¶</a></dt>
+<dd><p>shortcut function to display the progression</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>logger</strong> -- (Logger) The logging instance</li>
+<li><strong>top</strong> -- (int) the number to display</li>
+<li><strong>delai</strong> -- (int) the number max</li>
+<li><strong>ss</strong> -- (str) the string to display</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.fork.write_back">
+<code class="descclassname">src.fork.</code><code class="descname">write_back</code><span class="sig-paren">(</span><em>logger</em>, <em>message</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/fork.html#write_back"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fork.write_back" title="Permalink to this definition">¶</a></dt>
+<dd><p>shortcut function to write at the begin of the line</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>logger</strong> -- (Logger) The logging instance</li>
+<li><strong>message</strong> -- (str) the text to display</li>
+<li><strong>level</strong> -- (int) the level of verbosity</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-src.loggingSat">
+<span id="src-loggingsat-module"></span><h2>src.loggingSat module<a class="headerlink" href="#module-src.loggingSat" title="Permalink to this headline">¶</a></h2>
+<p><a class="reference external" href="http://sametmax.com/ecrire-des-logs-en-python/">http://sametmax.com/ecrire-des-logs-en-python/</a>
+<a class="reference external" href="https://docs.python.org/3/library/time.html#time.strftime">https://docs.python.org/3/library/time.html#time.strftime</a></p>
+<p>use logging package for salometools</p>
+<dl class="docutils">
+<dt>handler:</dt>
+<dd>on info() no format
+on other formatted indented on multi lines messages</dd>
+</dl>
+<dl class="class">
+<dt id="src.loggingSat.DefaultFormatter">
+<em class="property">class </em><code class="descclassname">src.loggingSat.</code><code class="descname">DefaultFormatter</code><span class="sig-paren">(</span><em>fmt=None</em>, <em>datefmt=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/loggingSat.html#DefaultFormatter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.DefaultFormatter" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">logging.Formatter</span></code></p>
+<dl class="method">
+<dt id="src.loggingSat.DefaultFormatter.format">
+<code class="descname">format</code><span class="sig-paren">(</span><em>record</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/loggingSat.html#DefaultFormatter.format"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.DefaultFormatter.format" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.loggingSat.DefaultFormatter.setColorLevelname">
+<code class="descname">setColorLevelname</code><span class="sig-paren">(</span><em>levelname</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/loggingSat.html#DefaultFormatter.setColorLevelname"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.DefaultFormatter.setColorLevelname" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.loggingSat.UnittestFormatter">
+<em class="property">class </em><code class="descclassname">src.loggingSat.</code><code class="descname">UnittestFormatter</code><span class="sig-paren">(</span><em>fmt=None</em>, <em>datefmt=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/loggingSat.html#UnittestFormatter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.UnittestFormatter" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">logging.Formatter</span></code></p>
+<dl class="method">
+<dt id="src.loggingSat.UnittestFormatter.format">
+<code class="descname">format</code><span class="sig-paren">(</span><em>record</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/loggingSat.html#UnittestFormatter.format"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.UnittestFormatter.format" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.loggingSat.UnittestStream">
+<em class="property">class </em><code class="descclassname">src.loggingSat.</code><code class="descname">UnittestStream</code><a class="reference internal" href="../_modules/src/loggingSat.html#UnittestStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.UnittestStream" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>write my stream class
+only write and flush are used for the streaming
+<a class="reference external" href="https://docs.python.org/2/library/logging.handlers.html">https://docs.python.org/2/library/logging.handlers.html</a>
+<a class="reference external" href="https://stackoverflow.com/questions/31999627/storing-logger-messages-in-a-string">https://stackoverflow.com/questions/31999627/storing-logger-messages-in-a-string</a></p>
+<dl class="method">
+<dt id="src.loggingSat.UnittestStream.flush">
+<code class="descname">flush</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/loggingSat.html#UnittestStream.flush"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.UnittestStream.flush" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.loggingSat.UnittestStream.getLogs">
+<code class="descname">getLogs</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/loggingSat.html#UnittestStream.getLogs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.UnittestStream.getLogs" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.loggingSat.UnittestStream.getLogsAndClear">
+<code class="descname">getLogsAndClear</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/loggingSat.html#UnittestStream.getLogsAndClear"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.UnittestStream.getLogsAndClear" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.loggingSat.UnittestStream.write">
+<code class="descname">write</code><span class="sig-paren">(</span><em>astr</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/loggingSat.html#UnittestStream.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.UnittestStream.write" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="src.loggingSat.dirLogger">
+<code class="descclassname">src.loggingSat.</code><code class="descname">dirLogger</code><span class="sig-paren">(</span><em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/loggingSat.html#dirLogger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.dirLogger" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.loggingSat.getDefaultLogger">
+<code class="descclassname">src.loggingSat.</code><code class="descname">getDefaultLogger</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/loggingSat.html#getDefaultLogger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.getDefaultLogger" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.loggingSat.getUnittestLogger">
+<code class="descclassname">src.loggingSat.</code><code class="descname">getUnittestLogger</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/loggingSat.html#getUnittestLogger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.getUnittestLogger" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.loggingSat.indent">
+<code class="descclassname">src.loggingSat.</code><code class="descname">indent</code><span class="sig-paren">(</span><em>msg</em>, <em>nb</em>, <em>car=' '</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/loggingSat.html#indent"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.indent" title="Permalink to this definition">¶</a></dt>
+<dd><p>indent nb car (spaces) multi lines message except first one</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.loggingSat.indentUnittest">
+<code class="descclassname">src.loggingSat.</code><code class="descname">indentUnittest</code><span class="sig-paren">(</span><em>msg</em>, <em>prefix=' | '</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/loggingSat.html#indentUnittest"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.indentUnittest" title="Permalink to this definition">¶</a></dt>
+<dd><p>indent car multi lines message except first one
+car default is less spaces for size logs files
+keep human readable</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.loggingSat.initLoggerAsDefault">
+<code class="descclassname">src.loggingSat.</code><code class="descname">initLoggerAsDefault</code><span class="sig-paren">(</span><em>logger</em>, <em>fmt=None</em>, <em>level=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/loggingSat.html#initLoggerAsDefault"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.initLoggerAsDefault" title="Permalink to this definition">¶</a></dt>
+<dd><p>init logger as prefixed message and indented message if multi line
+exept info() outed 'as it' without any format</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.loggingSat.initLoggerAsUnittest">
+<code class="descclassname">src.loggingSat.</code><code class="descname">initLoggerAsUnittest</code><span class="sig-paren">(</span><em>logger</em>, <em>fmt=None</em>, <em>level=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/loggingSat.html#initLoggerAsUnittest"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.initLoggerAsUnittest" title="Permalink to this definition">¶</a></dt>
+<dd><p>init logger as silent on stdout/stderr
+used for retrieve messages in memory for post execution unittest
+<a class="reference external" href="https://docs.python.org/2/library/logging.handlers.html">https://docs.python.org/2/library/logging.handlers.html</a></p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.loggingSat.log">
+<code class="descclassname">src.loggingSat.</code><code class="descname">log</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/loggingSat.html#log"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.log" title="Permalink to this definition">¶</a></dt>
+<dd><p>elementary log when no logger yet</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.loggingSat.testLogger_1">
+<code class="descclassname">src.loggingSat.</code><code class="descname">testLogger_1</code><span class="sig-paren">(</span><em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/loggingSat.html#testLogger_1"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.testLogger_1" title="Permalink to this definition">¶</a></dt>
+<dd><p>small test</p>
+</dd></dl>
+
+</div>
+<div class="section" id="module-src.options">
+<span id="src-options-module"></span><h2>src.options module<a class="headerlink" href="#module-src.options" title="Permalink to this headline">¶</a></h2>
+<p>The Options class that manages the access to all options passed as 
+parameters in salomeTools command lines</p>
+<dl class="class">
+<dt id="src.options.OptResult">
+<em class="property">class </em><code class="descclassname">src.options.</code><code class="descname">OptResult</code><a class="reference internal" href="../_modules/src/options.html#OptResult"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.options.OptResult" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>An instance of this class will be the object manipulated
+in code of all salomeTools commands
+The aim of this class is to have an elegant syntax to manipulate the options.</p>
+<p>example: 
+&gt;&gt; print(options.level)
+&gt;&gt; 5</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="src.options.Options">
+<em class="property">class </em><code class="descclassname">src.options.</code><code class="descname">Options</code><a class="reference internal" href="../_modules/src/options.html#Options"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.options.Options" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>Class to manage all salomeTools options</p>
+<dl class="method">
+<dt id="src.options.Options.add_option">
+<code class="descname">add_option</code><span class="sig-paren">(</span><em>shortName</em>, <em>longName</em>, <em>optionType</em>, <em>destName</em>, <em>helpString=''</em>, <em>default=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/options.html#Options.add_option"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.options.Options.add_option" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add an option to a command. It gets all attributes
+of an option and append it in the options field</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>shortName</strong> -- (str) 
+The short name of the option
+(as '-l' for level option).</li>
+<li><strong>longName</strong> -- (str) 
+The long name of the option 
+(as '--level' for level option).</li>
+<li><strong>optionType</strong> -- (str) The type of the option (ex &quot;int&quot;).</li>
+<li><strong>destName</strong> -- (str) The name that will be used in the code.</li>
+<li><strong>helpString</strong> -- (str) 
+The text to display when user ask for help on a command.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">None</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.options.Options.debug_write">
+<code class="descname">debug_write</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/options.html#Options.debug_write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.options.Options.debug_write" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.options.Options.getDetailOption">
+<code class="descname">getDetailOption</code><span class="sig-paren">(</span><em>option</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/options.html#Options.getDetailOption"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.options.Options.getDetailOption" title="Permalink to this definition">¶</a></dt>
+<dd><p>for convenience</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">(tuple) 4-elements (shortName, longName, optionType, helpString)</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.options.Options.get_help">
+<code class="descname">get_help</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/options.html#Options.get_help"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.options.Options.get_help" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns all options stored in self.options 
+as help message colored string</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">(str) colored string</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.options.Options.indent">
+<code class="descname">indent</code><span class="sig-paren">(</span><em>text</em>, <em>amount</em>, <em>car=' '</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/options.html#Options.indent"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.options.Options.indent" title="Permalink to this definition">¶</a></dt>
+<dd><p>indent multi lines message</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.options.Options.parse_args">
+<code class="descname">parse_args</code><span class="sig-paren">(</span><em>argList=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/options.html#Options.parse_args"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.options.Options.parse_args" title="Permalink to this definition">¶</a></dt>
+<dd><p>Instantiates the class OptResult 
+that gives access to all options in the code</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>argList</strong> -- (list) the raw list of arguments that were passed</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(OptResult, list) as (optResult, args) 
+optResult is the option instance to manipulate in the code. 
+args is the full raw list of passed options</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-src.product">
+<span id="src-product-module"></span><h2>src.product module<a class="headerlink" href="#module-src.product" title="Permalink to this headline">¶</a></h2>
+<p>Contains the methods 
+relative to the product notion of salomeTools</p>
+<dl class="function">
+<dt id="src.product.check_config_exists">
+<code class="descclassname">src.product.</code><code class="descname">check_config_exists</code><span class="sig-paren">(</span><em>config</em>, <em>prod_dir</em>, <em>prod_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#check_config_exists"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.check_config_exists" title="Permalink to this definition">¶</a></dt>
+<dd><p>Verify that the installation directory of a product in a base exists
+Check all the config-&lt;i&gt; directory and verify the sat-config.pyconf file
+that is in it</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>prod_dir</strong> -- (str) 
+The product installation directory path 
+(without config-&lt;i&gt;)</li>
+<li><strong>product_info</strong> -- (Config)
+The configuration specific to the product</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(tuple) as (boolean, str)
+True or false is the installation is found or not 
+and if it is found, the path of the found installation</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.check_installation">
+<code class="descclassname">src.product.</code><code class="descname">check_installation</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#check_installation"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.check_installation" title="Permalink to this definition">¶</a></dt>
+<dd><p>Verify if a product is well installed. 
+Checks install directory presence
+and some additional files if it is defined in the config</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config) 
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool) True if it is well installed</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.get_base_install_dir">
+<code class="descclassname">src.product.</code><code class="descname">get_base_install_dir</code><span class="sig-paren">(</span><em>config</em>, <em>prod_info</em>, <em>version</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#get_base_install_dir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.get_base_install_dir" title="Permalink to this definition">¶</a></dt>
+<dd><p>Compute the installation directory of a product in base</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>product_info</strong> -- (Config) 
+The configuration specific to the product</li>
+<li><strong>version</strong> -- (str) The version of the product</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(str) The path of the product installation</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.get_install_dir">
+<code class="descclassname">src.product.</code><code class="descname">get_install_dir</code><span class="sig-paren">(</span><em>config</em>, <em>base</em>, <em>version</em>, <em>prod_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#get_install_dir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.get_install_dir" title="Permalink to this definition">¶</a></dt>
+<dd><p>Compute the installation directory of a given product</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>base</strong> -- (str) 
+This corresponds to the value given by user in its application.pyconf 
+for the specific product. 
+If &quot;yes&quot;, the user wants the product to be in base. 
+If &quot;no&quot;, he wants the product to be in the application workdir</li>
+<li><strong>version</strong> -- (str) The version of the product</li>
+<li><strong>product_info</strong> -- (Config) The configuration specific to the product</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(str) The path of the product installation</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.get_product_components">
+<code class="descclassname">src.product.</code><code class="descname">get_product_components</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#get_product_components"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.get_product_components" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the component list to generate with the product</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config)
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(list) The list of names of the components</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.get_product_config">
+<code class="descclassname">src.product.</code><code class="descname">get_product_config</code><span class="sig-paren">(</span><em>config</em>, <em>product_name</em>, <em>with_install_dir=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#get_product_config"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.get_product_config" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the specific configuration of a product from the global configuration</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>product_name</strong> -- (str) The name of the product</li>
+<li><strong>with_install_dir</strong> -- (boolean)
+If false, do not provide an install directory 
+(at false only for internal use of the function check_config_exists)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(Config) The specific configuration of the product</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.get_product_dependencies">
+<code class="descclassname">src.product.</code><code class="descname">get_product_dependencies</code><span class="sig-paren">(</span><em>config</em>, <em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#get_product_dependencies"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.get_product_dependencies" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get recursively the list of products that are 
+in the product_info dependencies</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>product_info</strong> -- (Config) 
+The configuration specific to the product</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(list) the list of products in dependence</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.get_product_section">
+<code class="descclassname">src.product.</code><code class="descname">get_product_section</code><span class="sig-paren">(</span><em>config</em>, <em>product_name</em>, <em>version</em>, <em>section=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#get_product_section"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.get_product_section" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the product description from the configuration</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The global configuration</li>
+<li><strong>product_name</strong> -- (str) The product name</li>
+<li><strong>version</strong> -- (str) The version of the product</li>
+<li><strong>section</strong> -- (str) 
+The searched section
+(if not None, the section is explicitly given)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(Config) The product description</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.get_products_infos">
+<code class="descclassname">src.product.</code><code class="descname">get_products_infos</code><span class="sig-paren">(</span><em>lproducts</em>, <em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#get_products_infos"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.get_products_infos" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the specific configuration of a list of products</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>lproducts</strong> -- (list) The list of product names</li>
+<li><strong>config</strong> -- (Config) The global configuration</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(list) of tuples (str, Config)
+as (product name, specific configuration of the product)</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.product_compiles">
+<code class="descclassname">src.product.</code><code class="descname">product_compiles</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#product_compiles"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_compiles" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="docutils">
+<dt>Know if a product compiles or not (some products do not have a </dt>
+<dd>compilation procedure)</dd>
+</dl>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config)
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool) 
+True if the product compiles, else False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.product_has_env_script">
+<code class="descclassname">src.product.</code><code class="descname">product_has_env_script</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#product_has_env_script"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_has_env_script" title="Permalink to this definition">¶</a></dt>
+<dd><p>Know if a product has an environment script</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config)
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool) 
+True if the product it has an environment script, else False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.product_has_logo">
+<code class="descclassname">src.product.</code><code class="descname">product_has_logo</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#product_has_logo"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_has_logo" title="Permalink to this definition">¶</a></dt>
+<dd><p>Know if a product has a logo (YACSGEN generate)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config)
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(str) 
+The path of the logo if the product has a logo, else False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.product_has_patches">
+<code class="descclassname">src.product.</code><code class="descname">product_has_patches</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#product_has_patches"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_has_patches" title="Permalink to this definition">¶</a></dt>
+<dd><p>Know if a product has one or more patches</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config)
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool) 
+True if the product has one or more patches</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.product_has_salome_gui">
+<code class="descclassname">src.product.</code><code class="descname">product_has_salome_gui</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#product_has_salome_gui"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_has_salome_gui" title="Permalink to this definition">¶</a></dt>
+<dd><p>Know if a product has a SALOME gui</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config)
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool) 
+True if the product has a SALOME gui, else False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.product_has_script">
+<code class="descclassname">src.product.</code><code class="descname">product_has_script</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#product_has_script"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_has_script" title="Permalink to this definition">¶</a></dt>
+<dd><p>Know if a product has a compilation script</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config)
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool) 
+True if the product it has a compilation script, else False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.product_is_SALOME">
+<code class="descclassname">src.product.</code><code class="descname">product_is_SALOME</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#product_is_SALOME"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_SALOME" title="Permalink to this definition">¶</a></dt>
+<dd><p>Know if a product is a SALOME module</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config)
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool) 
+True if the product is a SALOME module, else False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.product_is_autotools">
+<code class="descclassname">src.product.</code><code class="descname">product_is_autotools</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#product_is_autotools"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_autotools" title="Permalink to this definition">¶</a></dt>
+<dd><p>Know if a product is compiled using the autotools</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config)
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool) 
+True if the product is autotools, else False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.product_is_cmake">
+<code class="descclassname">src.product.</code><code class="descname">product_is_cmake</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#product_is_cmake"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_cmake" title="Permalink to this definition">¶</a></dt>
+<dd><p>Know if a product is compiled using the cmake</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config)
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool) 
+True if the product is cmake, else False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.product_is_cpp">
+<code class="descclassname">src.product.</code><code class="descname">product_is_cpp</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#product_is_cpp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_cpp" title="Permalink to this definition">¶</a></dt>
+<dd><p>Know if a product is cpp</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config)
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool) 
+True if the product is a cpp, else False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.product_is_debug">
+<code class="descclassname">src.product.</code><code class="descname">product_is_debug</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#product_is_debug"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_debug" title="Permalink to this definition">¶</a></dt>
+<dd><p>Know if a product is in debug mode</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config)
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool) 
+True if the product is in debug mode, else False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.product_is_dev">
+<code class="descclassname">src.product.</code><code class="descname">product_is_dev</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#product_is_dev"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_dev" title="Permalink to this definition">¶</a></dt>
+<dd><p>Know if a product is in dev mode</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config)
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool) 
+True if the product is in dev mode, else False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.product_is_fixed">
+<code class="descclassname">src.product.</code><code class="descname">product_is_fixed</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#product_is_fixed"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_fixed" title="Permalink to this definition">¶</a></dt>
+<dd><p>Know if a product is fixed</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config)
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool) 
+True if the product is fixed, else False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.product_is_generated">
+<code class="descclassname">src.product.</code><code class="descname">product_is_generated</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#product_is_generated"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_generated" title="Permalink to this definition">¶</a></dt>
+<dd><p>Know if a product is generated (YACSGEN)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config)
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool) True if the product is generated</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.product_is_mpi">
+<code class="descclassname">src.product.</code><code class="descname">product_is_mpi</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#product_is_mpi"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_mpi" title="Permalink to this definition">¶</a></dt>
+<dd><p>Know if a product has openmpi in its dependencies</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config)
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool) 
+True if the product has openmpi inits dependencies</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.product_is_native">
+<code class="descclassname">src.product.</code><code class="descname">product_is_native</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#product_is_native"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_native" title="Permalink to this definition">¶</a></dt>
+<dd><p>Know if a product is native</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config)
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool) 
+True if the product is native, else False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.product_is_salome">
+<code class="descclassname">src.product.</code><code class="descname">product_is_salome</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#product_is_salome"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_salome" title="Permalink to this definition">¶</a></dt>
+<dd><p>Know if a product is of type salome</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config) 
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool) 
+True if the product is salome, else False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.product_is_sample">
+<code class="descclassname">src.product.</code><code class="descname">product_is_sample</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#product_is_sample"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_sample" title="Permalink to this definition">¶</a></dt>
+<dd><p>Know if a product has the sample type</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config)
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool) 
+True if the product has the sample type, else False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.product_is_smesh_plugin">
+<code class="descclassname">src.product.</code><code class="descname">product_is_smesh_plugin</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#product_is_smesh_plugin"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_smesh_plugin" title="Permalink to this definition">¶</a></dt>
+<dd><p>Know if a product is a SMESH plugin</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config)
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool)
+True if the product is a SMESH plugin, else False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.product.product_is_vcs">
+<code class="descclassname">src.product.</code><code class="descname">product_is_vcs</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/product.html#product_is_vcs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_vcs" title="Permalink to this definition">¶</a></dt>
+<dd><p>Know if a product is download using git, svn or cvs (not archive)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>product_info</strong> -- (Config)
+The configuration specific to the product</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(bool)
+True if the product is vcs, else False</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-src.pyconf">
+<span id="src-pyconf-module"></span><h2>src.pyconf module<a class="headerlink" href="#module-src.pyconf" title="Permalink to this headline">¶</a></h2>
+<p>This is a configuration module for Python.</p>
+<p>This module should work under Python versions &gt;= 2.2, and cannot be used with
+earlier versions since it uses new-style classes.</p>
+<p>Development and testing has only been carried out (so far) on Python 2.3.4 and
+Python 2.4.2. See the test module (test_config.py) included in the
+U{distribution&lt;<a class="reference external" href="http://www.red-dove.com/python_config">http://www.red-dove.com/python_config</a>.html|_blank&gt;} (follow the
+download link).</p>
+<p>A simple example - with the example configuration file:</p>
+<div class="highlight-default"><div class="highlight"><pre><span></span>messages:
+[
+  {
+    stream : `sys.stderr`
+    message: &#39;Welcome&#39;
+    name: &#39;Harry&#39;
+  }
+  {
+    stream : `sys.stdout`
+    message: &#39;Welkom&#39;
+    name: &#39;Ruud&#39;
+  }
+  {
+    stream : $messages[0].stream
+    message: &#39;Bienvenue&#39;
+    name: Yves
+  }
+]
+</pre></div>
+</div>
+<p>a program to read the configuration would be:</p>
+<div class="highlight-default"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">config</span> <span class="k">import</span> <span class="n">Config</span>
+
+<span class="n">f</span> <span class="o">=</span> <span class="n">file</span><span class="p">(</span><span class="s1">&#39;simple.cfg&#39;</span><span class="p">)</span>
+<span class="n">cfg</span> <span class="o">=</span> <span class="n">Config</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
+<span class="k">for</span> <span class="n">m</span> <span class="ow">in</span> <span class="n">cfg</span><span class="o">.</span><span class="n">messages</span><span class="p">:</span>
+    <span class="n">s</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%s</span><span class="s1">, </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">message</span><span class="p">,</span> <span class="n">m</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="nb">print</span> <span class="o">&gt;&gt;</span> <span class="n">m</span><span class="o">.</span><span class="n">stream</span><span class="p">,</span> <span class="n">s</span>
+    <span class="k">except</span> <span class="ne">IOError</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span>
+        <span class="nb">print</span> <span class="n">e</span>
+</pre></div>
+</div>
+<p>which, when run, would yield the console output:</p>
+<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">Welcome</span><span class="p">,</span> <span class="n">Harry</span>
+<span class="n">Welkom</span><span class="p">,</span> <span class="n">Ruud</span>
+<span class="n">Bienvenue</span><span class="p">,</span> <span class="n">Yves</span>
+</pre></div>
+</div>
+<p>See U{this tutorial&lt;<a class="reference external" href="http://www.red-dove.com/python_config">http://www.red-dove.com/python_config</a>.html|_blank&gt;} for more
+information.</p>
+<p>#modified for salomeTools
+&#64;version: 0.3.7.1</p>
+<p>&#64;author: Vinay Sajip</p>
+<p>&#64;copyright: Copyright (C) 2004-2007 Vinay Sajip. All Rights Reserved.</p>
+<p>&#64;var streamOpener: The default stream opener. This is a factory function which
+takes a string (e.g. filename) and returns a stream suitable for reading. If
+unable to open the stream, an IOError exception should be thrown.</p>
+<p>The default value of this variable is L{defaultStreamOpener}. For an example
+of how it's used, see test_config.py (search for streamOpener).</p>
+<dl class="class">
+<dt id="src.pyconf.Config">
+<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">Config</code><span class="sig-paren">(</span><em>streamOrFile=None</em>, <em>parent=None</em>, <em>PWD=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Config"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Config" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#src.pyconf.Mapping" title="src.pyconf.Mapping"><code class="xref py py-class docutils literal"><span class="pre">src.pyconf.Mapping</span></code></a></p>
+<p>This class represents a configuration, and is the only one which clients
+need to interface to, under normal circumstances.</p>
+<dl class="class">
+<dt id="src.pyconf.Config.Namespace">
+<em class="property">class </em><code class="descname">Namespace</code><a class="reference internal" href="../_modules/src/pyconf.html#Config.Namespace"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Config.Namespace" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>This internal class is used for implementing default namespaces.</p>
+<p>An instance acts as a namespace.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.Config.addNamespace">
+<code class="descclassname">Config.</code><code class="descname">addNamespace</code><span class="sig-paren">(</span><em>ns</em>, <em>name=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Config.addNamespace"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Config.addNamespace" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a namespace to this configuration which can be used to evaluate
+(resolve) dotted-identifier expressions.
+&#64;param ns: The namespace to be added.
+&#64;type ns: A module or other namespace suitable for passing as an
+argument to vars().
+&#64;param name: A name for the namespace, which, if specified, provides
+an additional level of indirection.
+&#64;type name: str</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.Config.getByPath">
+<code class="descclassname">Config.</code><code class="descname">getByPath</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Config.getByPath"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Config.getByPath" title="Permalink to this definition">¶</a></dt>
+<dd><p>Obtain a value in the configuration via its path.
+&#64;param path: The path of the required value
+&#64;type path: str
+&#64;return the value at the specified path.
+&#64;rtype: any
+&#64;raise ConfigError: If the path is invalid</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.Config.load">
+<code class="descclassname">Config.</code><code class="descname">load</code><span class="sig-paren">(</span><em>stream</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Config.load"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Config.load" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load the configuration from the specified stream. Multiple streams can
+be used to populate the same instance, as long as there are no
+clashing keys. The stream is closed.
+&#64;param stream: A stream from which the configuration is read.
+&#64;type stream: A read-only stream (file-like object).
+&#64;raise ConfigError: if keys in the loaded configuration clash with
+existing keys.
+&#64;raise ConfigFormatError: if there is a syntax error in the stream.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.Config.removeNamespace">
+<code class="descclassname">Config.</code><code class="descname">removeNamespace</code><span class="sig-paren">(</span><em>ns</em>, <em>name=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Config.removeNamespace"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Config.removeNamespace" title="Permalink to this definition">¶</a></dt>
+<dd><p>Remove a namespace added with L{addNamespace}.
+&#64;param ns: The namespace to be removed.
+&#64;param name: The name which was specified when L{addNamespace} was
+called.
+&#64;type name: str</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="exception">
+<dt id="src.pyconf.ConfigError">
+<em class="property">exception </em><code class="descclassname">src.pyconf.</code><code class="descname">ConfigError</code><a class="reference internal" href="../_modules/src/pyconf.html#ConfigError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigError" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">exceptions.Exception</span></code></p>
+<p>This is the base class of exceptions raised by this module.</p>
+</dd></dl>
+
+<dl class="exception">
+<dt id="src.pyconf.ConfigFormatError">
+<em class="property">exception </em><code class="descclassname">src.pyconf.</code><code class="descname">ConfigFormatError</code><a class="reference internal" href="../_modules/src/pyconf.html#ConfigFormatError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigFormatError" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#src.pyconf.ConfigError" title="src.pyconf.ConfigError"><code class="xref py py-class docutils literal"><span class="pre">src.pyconf.ConfigError</span></code></a></p>
+<p>This is the base class of exceptions raised due to syntax errors in
+configurations.</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="src.pyconf.ConfigInputStream">
+<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">ConfigInputStream</code><span class="sig-paren">(</span><em>stream</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigInputStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigInputStream" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>An input stream which can read either ANSI files with default encoding
+or Unicode files with BOMs.</p>
+<p>Handles UTF-8, UTF-16LE, UTF-16BE. Could handle UTF-32 if Python had
+built-in support.</p>
+<dl class="method">
+<dt id="src.pyconf.ConfigInputStream.close">
+<code class="descname">close</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigInputStream.close"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigInputStream.close" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigInputStream.read">
+<code class="descname">read</code><span class="sig-paren">(</span><em>size</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigInputStream.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigInputStream.read" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigInputStream.readline">
+<code class="descname">readline</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigInputStream.readline"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigInputStream.readline" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.pyconf.ConfigList">
+<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">ConfigList</code><a class="reference internal" href="../_modules/src/pyconf.html#ConfigList"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigList" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">list</span></code></p>
+<p>This class implements an ordered list of configurations and allows you
+to try getting the configuration from each entry in turn, returning
+the first successfully obtained value.</p>
+<dl class="method">
+<dt id="src.pyconf.ConfigList.getByPath">
+<code class="descname">getByPath</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigList.getByPath"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigList.getByPath" title="Permalink to this definition">¶</a></dt>
+<dd><p>Obtain a value from the first configuration in the list which defines
+it.</p>
+<p>&#64;param path: The path of the value to retrieve.
+&#64;type path: str
+&#64;return: The value from the earliest configuration in the list which
+defines it.
+&#64;rtype: any
+&#64;raise ConfigError: If no configuration in the list has an entry with
+the specified path.</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.pyconf.ConfigMerger">
+<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">ConfigMerger</code><span class="sig-paren">(</span><em>resolver=&lt;function defaultMergeResolve&gt;</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigMerger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigMerger" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>This class is used for merging two configurations. If a key exists in the
+merge operand but not the merge target, then the entry is copied from the
+merge operand to the merge target. If a key exists in both configurations,
+then a resolver (a callable) is called to decide how to handle the
+conflict.</p>
+<dl class="method">
+<dt id="src.pyconf.ConfigMerger.handleMismatch">
+<code class="descname">handleMismatch</code><span class="sig-paren">(</span><em>obj1</em>, <em>obj2</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigMerger.handleMismatch"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigMerger.handleMismatch" title="Permalink to this definition">¶</a></dt>
+<dd><p>Handle a mismatch between two objects.</p>
+<p>&#64;param obj1: The object to merge into.
+&#64;type obj1: any
+&#64;param obj2: The object to merge.
+&#64;type obj2: any</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigMerger.merge">
+<code class="descname">merge</code><span class="sig-paren">(</span><em>merged</em>, <em>mergee</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigMerger.merge"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigMerger.merge" title="Permalink to this definition">¶</a></dt>
+<dd><p>Merge two configurations. The second configuration is unchanged,
+and the first is changed to reflect the results of the merge.</p>
+<p>&#64;param merged: The configuration to merge into.
+&#64;type merged: L{Config}.
+&#64;param mergee: The configuration to merge.
+&#64;type mergee: L{Config}.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigMerger.mergeMapping">
+<code class="descname">mergeMapping</code><span class="sig-paren">(</span><em>map1</em>, <em>map2</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigMerger.mergeMapping"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigMerger.mergeMapping" title="Permalink to this definition">¶</a></dt>
+<dd><p>Merge two mappings recursively. The second mapping is unchanged,
+and the first is changed to reflect the results of the merge.</p>
+<p>&#64;param map1: The mapping to merge into.
+&#64;type map1: L{Mapping}.
+&#64;param map2: The mapping to merge.
+&#64;type map2: L{Mapping}.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigMerger.mergeSequence">
+<code class="descname">mergeSequence</code><span class="sig-paren">(</span><em>seq1</em>, <em>seq2</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigMerger.mergeSequence"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigMerger.mergeSequence" title="Permalink to this definition">¶</a></dt>
+<dd><p>Merge two sequences. The second sequence is unchanged,
+and the first is changed to have the elements of the second
+appended to it.</p>
+<p>&#64;param seq1: The sequence to merge into.
+&#64;type seq1: L{Sequence}.
+&#64;param seq2: The sequence to merge.
+&#64;type seq2: L{Sequence}.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigMerger.overwriteKeys">
+<code class="descname">overwriteKeys</code><span class="sig-paren">(</span><em>map1</em>, <em>seq2</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigMerger.overwriteKeys"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigMerger.overwriteKeys" title="Permalink to this definition">¶</a></dt>
+<dd><p>Renint variables. The second mapping is unchanged,
+and the first is changed depending the keys of the second mapping.
+&#64;param map1: The mapping to reinit keys into.
+&#64;type map1: L{Mapping}.
+&#64;param map2: The mapping container reinit information.
+&#64;type map2: L{Mapping}.</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.pyconf.ConfigOutputStream">
+<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">ConfigOutputStream</code><span class="sig-paren">(</span><em>stream</em>, <em>encoding=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigOutputStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigOutputStream" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>An output stream which can write either ANSI files with default encoding
+or Unicode files with BOMs.</p>
+<p>Handles UTF-8, UTF-16LE, UTF-16BE. Could handle UTF-32 if Python had
+built-in support.</p>
+<dl class="method">
+<dt id="src.pyconf.ConfigOutputStream.close">
+<code class="descname">close</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigOutputStream.close"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigOutputStream.close" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigOutputStream.flush">
+<code class="descname">flush</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigOutputStream.flush"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigOutputStream.flush" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigOutputStream.write">
+<code class="descname">write</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigOutputStream.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigOutputStream.write" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.pyconf.ConfigReader">
+<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">ConfigReader</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigReader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>This internal class implements a parser for configurations.</p>
+<dl class="method">
+<dt id="src.pyconf.ConfigReader.getChar">
+<code class="descname">getChar</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigReader.getChar"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.getChar" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the next char from the stream. Update line and column numbers
+appropriately.</p>
+<p>&#64;return: The next character from the stream.
+&#64;rtype: str</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigReader.getToken">
+<code class="descname">getToken</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigReader.getToken"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.getToken" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get a token from the stream. String values are returned in a form
+where you need to eval() the returned value to get the actual
+string. The return value is (token_type, token_value).</p>
+<p>Multiline string tokenizing is thanks to David Janes (BlogMatrix)</p>
+<p>&#64;return: The next token.
+&#64;rtype: A token tuple.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigReader.load">
+<code class="descname">load</code><span class="sig-paren">(</span><em>stream</em>, <em>parent=None</em>, <em>suffix=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigReader.load"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.load" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load the configuration from the specified stream.</p>
+<p>&#64;param stream: A stream from which to load the configuration.
+&#64;type stream: A stream (file-like object).
+&#64;param parent: The parent of the configuration (to which this reader
+belongs) in the hierarchy. Specified when the configuration is
+included in another one.
+&#64;type parent: A L{Container} instance.
+&#64;param suffix: The suffix of this configuration in the parent
+configuration. Should be specified whenever the parent is not None.
+&#64;raise ConfigError: If parent is specified but suffix is not.
+&#64;raise ConfigFormatError: If there are syntax errors in the stream.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigReader.location">
+<code class="descname">location</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigReader.location"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.location" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the current location (filename, line, column) in the stream
+as a string.</p>
+<p>Used when printing error messages,</p>
+<p>&#64;return: A string representing a location in the stream being read.
+&#64;rtype: str</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigReader.match">
+<code class="descname">match</code><span class="sig-paren">(</span><em>t</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigReader.match"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.match" title="Permalink to this definition">¶</a></dt>
+<dd><p>Ensure that the current token type matches the specified value, and
+advance to the next token.</p>
+<p>&#64;param t: The token type to match.
+&#64;type t: A valid token type.
+&#64;return: The token which was last read from the stream before this
+function is called.
+&#64;rtype: a token tuple - see L{getToken}.
+&#64;raise ConfigFormatError: If the token does not match what's expected.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigReader.parseFactor">
+<code class="descname">parseFactor</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigReader.parseFactor"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.parseFactor" title="Permalink to this definition">¶</a></dt>
+<dd><p>Parse a factor in an multiplicative expression (a * b, a / b, a % b)</p>
+<p>&#64;return: the parsed factor
+&#64;rtype: any scalar
+&#64;raise ConfigFormatError: if a syntax error is found.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigReader.parseKeyValuePair">
+<code class="descname">parseKeyValuePair</code><span class="sig-paren">(</span><em>parent</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigReader.parseKeyValuePair"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.parseKeyValuePair" title="Permalink to this definition">¶</a></dt>
+<dd><p>Parse a key-value pair, and add it to the provided L{Mapping}.</p>
+<p>&#64;param parent: The mapping to add entries to.
+&#64;type parent: A L{Mapping} instance.
+&#64;raise ConfigFormatError: if a syntax error is found.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigReader.parseMapping">
+<code class="descname">parseMapping</code><span class="sig-paren">(</span><em>parent</em>, <em>suffix</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigReader.parseMapping"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.parseMapping" title="Permalink to this definition">¶</a></dt>
+<dd><p>Parse a mapping.</p>
+<p>&#64;param parent: The container to which the mapping will be added.
+&#64;type parent: A L{Container} instance.
+&#64;param suffix: The suffix for the value.
+&#64;type suffix: str
+&#64;return: a L{Mapping} instance representing the mapping.
+&#64;rtype: L{Mapping}
+&#64;raise ConfigFormatError: if a syntax error is found.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigReader.parseMappingBody">
+<code class="descname">parseMappingBody</code><span class="sig-paren">(</span><em>parent</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigReader.parseMappingBody"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.parseMappingBody" title="Permalink to this definition">¶</a></dt>
+<dd><p>Parse the internals of a mapping, and add entries to the provided
+L{Mapping}.</p>
+<p>&#64;param parent: The mapping to add entries to.
+&#64;type parent: A L{Mapping} instance.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigReader.parseReference">
+<code class="descname">parseReference</code><span class="sig-paren">(</span><em>type</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigReader.parseReference"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.parseReference" title="Permalink to this definition">¶</a></dt>
+<dd><p>Parse a reference.</p>
+<p>&#64;return: the parsed reference
+&#64;rtype: L{Reference}
+&#64;raise ConfigFormatError: if a syntax error is found.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigReader.parseScalar">
+<code class="descname">parseScalar</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigReader.parseScalar"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.parseScalar" title="Permalink to this definition">¶</a></dt>
+<dd><p>Parse a scalar - a terminal value such as a string or number, or
+an L{Expression} or L{Reference}.</p>
+<p>&#64;return: the parsed scalar
+&#64;rtype: any scalar
+&#64;raise ConfigFormatError: if a syntax error is found.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigReader.parseSequence">
+<code class="descname">parseSequence</code><span class="sig-paren">(</span><em>parent</em>, <em>suffix</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigReader.parseSequence"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.parseSequence" title="Permalink to this definition">¶</a></dt>
+<dd><p>Parse a sequence.</p>
+<p>&#64;param parent: The container to which the sequence will be added.
+&#64;type parent: A L{Container} instance.
+&#64;param suffix: The suffix for the value.
+&#64;type suffix: str
+&#64;return: a L{Sequence} instance representing the sequence.
+&#64;rtype: L{Sequence}
+&#64;raise ConfigFormatError: if a syntax error is found.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigReader.parseSuffix">
+<code class="descname">parseSuffix</code><span class="sig-paren">(</span><em>ref</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigReader.parseSuffix"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.parseSuffix" title="Permalink to this definition">¶</a></dt>
+<dd><p>Parse a reference suffix.</p>
+<p>&#64;param ref: The reference of which this suffix is a part.
+&#64;type ref: L{Reference}.
+&#64;raise ConfigFormatError: if a syntax error is found.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigReader.parseTerm">
+<code class="descname">parseTerm</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigReader.parseTerm"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.parseTerm" title="Permalink to this definition">¶</a></dt>
+<dd><p>Parse a term in an additive expression (a + b, a - b)</p>
+<p>&#64;return: the parsed term
+&#64;rtype: any scalar
+&#64;raise ConfigFormatError: if a syntax error is found.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigReader.parseValue">
+<code class="descname">parseValue</code><span class="sig-paren">(</span><em>parent</em>, <em>suffix</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigReader.parseValue"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.parseValue" title="Permalink to this definition">¶</a></dt>
+<dd><p>Parse a value.</p>
+<p>&#64;param parent: The container to which the value will be added.
+&#64;type parent: A L{Container} instance.
+&#64;param suffix: The suffix for the value.
+&#64;type suffix: str
+&#64;return: The value
+&#64;rtype: any
+&#64;raise ConfigFormatError: if a syntax error is found.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.ConfigReader.setStream">
+<code class="descname">setStream</code><span class="sig-paren">(</span><em>stream</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#ConfigReader.setStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.setStream" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the stream to the specified value, and prepare to read from it.</p>
+<p>&#64;param stream: A stream from which to load the configuration.
+&#64;type stream: A stream (file-like object).</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="exception">
+<dt id="src.pyconf.ConfigResolutionError">
+<em class="property">exception </em><code class="descclassname">src.pyconf.</code><code class="descname">ConfigResolutionError</code><a class="reference internal" href="../_modules/src/pyconf.html#ConfigResolutionError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigResolutionError" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#src.pyconf.ConfigError" title="src.pyconf.ConfigError"><code class="xref py py-class docutils literal"><span class="pre">src.pyconf.ConfigError</span></code></a></p>
+<p>This is the base class of exceptions raised due to semantic errors in
+configurations.</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="src.pyconf.Container">
+<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">Container</code><span class="sig-paren">(</span><em>parent</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Container"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Container" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>This internal class is the base class for mappings and sequences.</p>
+<p>&#64;ivar path: A string which describes how to get
+to this instance from the root of the hierarchy.</p>
+<p>Example:</p>
+<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">a</span><span class="o">.</span><span class="n">list</span><span class="o">.</span><span class="n">of</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="ow">or</span><span class="p">[</span><span class="s1">&#39;more&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">elements</span>
+</pre></div>
+</div>
+<dl class="method">
+<dt id="src.pyconf.Container.evaluate">
+<code class="descname">evaluate</code><span class="sig-paren">(</span><em>item</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Container.evaluate"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Container.evaluate" title="Permalink to this definition">¶</a></dt>
+<dd><p>Evaluate items which are instances of L{Reference} or L{Expression}.</p>
+<p>L{Reference} instances are evaluated using L{Reference.resolve},
+and L{Expression} instances are evaluated using
+L{Expression.evaluate}.</p>
+<p>&#64;param item: The item to be evaluated.
+&#64;type item: any
+&#64;return: If the item is an instance of L{Reference} or L{Expression},
+the evaluated value is returned, otherwise the item is returned
+unchanged.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.Container.setPath">
+<code class="descname">setPath</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Container.setPath"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Container.setPath" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the path for this instance.
+&#64;param path: The path - a string which describes how to get
+to this instance from the root of the hierarchy.
+&#64;type path: str</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.Container.writeToStream">
+<code class="descname">writeToStream</code><span class="sig-paren">(</span><em>stream</em>, <em>indent</em>, <em>container</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Container.writeToStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Container.writeToStream" title="Permalink to this definition">¶</a></dt>
+<dd><p>Write this instance to a stream at the specified indentation level.</p>
+<p>Should be redefined in subclasses.</p>
+<p>&#64;param stream: The stream to write to
+&#64;type stream: A writable stream (file-like object)
+&#64;param indent: The indentation level
+&#64;type indent: int
+&#64;param container: The container of this instance
+&#64;type container: L{Container}
+&#64;raise NotImplementedError: If a subclass does not override this</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.Container.writeValue">
+<code class="descname">writeValue</code><span class="sig-paren">(</span><em>value</em>, <em>stream</em>, <em>indent</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Container.writeValue"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Container.writeValue" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.pyconf.Expression">
+<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">Expression</code><span class="sig-paren">(</span><em>op</em>, <em>lhs</em>, <em>rhs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Expression"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Expression" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>This internal class implements a value which is obtained by evaluating an expression.</p>
+<dl class="method">
+<dt id="src.pyconf.Expression.evaluate">
+<code class="descname">evaluate</code><span class="sig-paren">(</span><em>container</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Expression.evaluate"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Expression.evaluate" title="Permalink to this definition">¶</a></dt>
+<dd><p>Evaluate this instance in the context of a container.</p>
+<p>&#64;param container: The container to evaluate in from.
+&#64;type container: L{Container}
+&#64;return: The evaluated value.
+&#64;rtype: any
+&#64;raise ConfigResolutionError: If evaluation fails.
+&#64;raise ZeroDivideError: If division by zero occurs.
+&#64;raise TypeError: If the operation is invalid, e.g.
+subtracting one string from another.</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.pyconf.Mapping">
+<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">Mapping</code><span class="sig-paren">(</span><em>parent=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Mapping"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Mapping" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#src.pyconf.Container" title="src.pyconf.Container"><code class="xref py py-class docutils literal"><span class="pre">src.pyconf.Container</span></code></a></p>
+<p>This internal class implements key-value mappings in configurations.</p>
+<dl class="method">
+<dt id="src.pyconf.Mapping.addMapping">
+<code class="descname">addMapping</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>comment</em>, <em>setting=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Mapping.addMapping"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Mapping.addMapping" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a key-value mapping with a comment.</p>
+<p>&#64;param key: The key for the mapping.
+&#64;type key: str
+&#64;param value: The value for the mapping.
+&#64;type value: any
+&#64;param comment: The comment for the key (can be None).
+&#64;type comment: str
+&#64;param setting: If True, ignore clashes. This is set
+to true when called from L{__setattr__}.
+&#64;raise ConfigFormatError: If an existing key is seen
+again and setting is False.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.Mapping.get">
+<code class="descname">get</code><span class="sig-paren">(</span><em>key</em>, <em>default=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Mapping.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Mapping.get" title="Permalink to this definition">¶</a></dt>
+<dd><p>Allows a dictionary-style get operation.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.Mapping.iteritems">
+<code class="descname">iteritems</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Mapping.iteritems"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Mapping.iteritems" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.Mapping.iterkeys">
+<code class="descname">iterkeys</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Mapping.iterkeys"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Mapping.iterkeys" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.Mapping.keys">
+<code class="descname">keys</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Mapping.keys"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Mapping.keys" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the keys in a similar way to a dictionary.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.Mapping.writeToStream">
+<code class="descname">writeToStream</code><span class="sig-paren">(</span><em>stream</em>, <em>indent</em>, <em>container</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Mapping.writeToStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Mapping.writeToStream" title="Permalink to this definition">¶</a></dt>
+<dd><p>Write this instance to a stream at the specified indentation level.</p>
+<p>Should be redefined in subclasses.</p>
+<p>&#64;param stream: The stream to write to
+&#64;type stream: A writable stream (file-like object)
+&#64;param indent: The indentation level
+&#64;type indent: int
+&#64;param container: The container of this instance
+&#64;type container: L{Container}</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.pyconf.Reference">
+<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">Reference</code><span class="sig-paren">(</span><em>config</em>, <em>type</em>, <em>ident</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Reference"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Reference" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>This internal class implements a value which is a reference to another value.</p>
+<dl class="method">
+<dt id="src.pyconf.Reference.addElement">
+<code class="descname">addElement</code><span class="sig-paren">(</span><em>type</em>, <em>ident</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Reference.addElement"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Reference.addElement" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add an element to the reference.</p>
+<p>&#64;param type: The type of reference.
+&#64;type type: BACKTICK or DOLLAR
+&#64;param ident: The identifier which continues the reference.
+&#64;type ident: str</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.Reference.findConfig">
+<code class="descname">findConfig</code><span class="sig-paren">(</span><em>container</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Reference.findConfig"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Reference.findConfig" title="Permalink to this definition">¶</a></dt>
+<dd><p>Find the closest enclosing configuration to the specified container.</p>
+<p>&#64;param container: The container to start from.
+&#64;type container: L{Container}
+&#64;return: The closest enclosing configuration, or None.
+&#64;rtype: L{Config}</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.Reference.resolve">
+<code class="descname">resolve</code><span class="sig-paren">(</span><em>container</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Reference.resolve"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Reference.resolve" title="Permalink to this definition">¶</a></dt>
+<dd><p>Resolve this instance in the context of a container.</p>
+<p>&#64;param container: The container to resolve from.
+&#64;type container: L{Container}
+&#64;return: The resolved value.
+&#64;rtype: any
+&#64;raise ConfigResolutionError: If resolution fails.</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.pyconf.Sequence">
+<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">Sequence</code><span class="sig-paren">(</span><em>parent=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Sequence"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Sequence" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#src.pyconf.Container" title="src.pyconf.Container"><code class="xref py py-class docutils literal"><span class="pre">src.pyconf.Container</span></code></a></p>
+<p>This internal class implements a value which is a sequence of other values.</p>
+<dl class="class">
+<dt id="src.pyconf.Sequence.SeqIter">
+<em class="property">class </em><code class="descname">SeqIter</code><span class="sig-paren">(</span><em>seq</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Sequence.SeqIter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Sequence.SeqIter" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>This internal class implements an iterator for a L{Sequence} instance.</p>
+<dl class="method">
+<dt id="src.pyconf.Sequence.SeqIter.next">
+<code class="descname">next</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Sequence.SeqIter.next"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Sequence.SeqIter.next" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.Sequence.append">
+<code class="descclassname">Sequence.</code><code class="descname">append</code><span class="sig-paren">(</span><em>item</em>, <em>comment</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Sequence.append"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Sequence.append" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add an item to the sequence.</p>
+<p>&#64;param item: The item to add.
+&#64;type item: any
+&#64;param comment: A comment for the item.
+&#64;type comment: str</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.pyconf.Sequence.writeToStream">
+<code class="descclassname">Sequence.</code><code class="descname">writeToStream</code><span class="sig-paren">(</span><em>stream</em>, <em>indent</em>, <em>container</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#Sequence.writeToStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Sequence.writeToStream" title="Permalink to this definition">¶</a></dt>
+<dd><p>Write this instance to a stream at the specified indentation level.</p>
+<p>Should be redefined in subclasses.</p>
+<p>&#64;param stream: The stream to write to
+&#64;type stream: A writable stream (file-like object)
+&#64;param indent: The indentation level
+&#64;type indent: int
+&#64;param container: The container of this instance
+&#64;type container: L{Container}</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="src.pyconf.deepCopyMapping">
+<code class="descclassname">src.pyconf.</code><code class="descname">deepCopyMapping</code><span class="sig-paren">(</span><em>inMapping</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#deepCopyMapping"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.deepCopyMapping" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.pyconf.defaultMergeResolve">
+<code class="descclassname">src.pyconf.</code><code class="descname">defaultMergeResolve</code><span class="sig-paren">(</span><em>map1</em>, <em>map2</em>, <em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#defaultMergeResolve"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.defaultMergeResolve" title="Permalink to this definition">¶</a></dt>
+<dd><p>A default resolver for merge conflicts. 
+Returns a string indicating what action to take to resolve the conflict.</p>
+<p>&#64;param map1: The map being merged into.
+&#64;type map1: L{Mapping}.
+&#64;param map2: The map being used as the merge operand.
+&#64;type map2: L{Mapping}.
+&#64;param key: The key in map2 (which also exists in map1).
+&#64;type key: str
+&#64;return: One of &quot;merge&quot;, &quot;append&quot;, &quot;mismatch&quot; or &quot;overwrite&quot; 
+indicating what action should be taken. This should
+be appropriate to the objects being merged - e.g.
+there is no point returning &quot;merge&quot; if the two objects
+are instances of L{Sequence}.
+&#64;rtype: str</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.pyconf.defaultStreamOpener">
+<code class="descclassname">src.pyconf.</code><code class="descname">defaultStreamOpener</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#defaultStreamOpener"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.defaultStreamOpener" title="Permalink to this definition">¶</a></dt>
+<dd><p>This function returns a read-only stream, given its name. The name passed
+in should correspond to an existing stream, otherwise an exception will be
+raised.</p>
+<p>This is the default value of L{streamOpener}; assign your own callable to
+streamOpener to return streams based on names. For example, you could use
+urllib2.urlopen().</p>
+<p>&#64;param name: The name of a stream, most commonly a file name.
+&#64;type name: str
+&#64;return: A stream with the specified name.
+&#64;rtype: A read-only stream (file-like object)</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.pyconf.isWord">
+<code class="descclassname">src.pyconf.</code><code class="descname">isWord</code><span class="sig-paren">(</span><em>s</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#isWord"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.isWord" title="Permalink to this definition">¶</a></dt>
+<dd><p>See if a passed-in value is an identifier. If the value passed in is not a
+string, False is returned. An identifier consists of alphanumerics or
+underscore characters.</p>
+<p>Examples:</p>
+<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">isWord</span><span class="p">(</span><span class="s1">&#39;a word&#39;</span><span class="p">)</span> <span class="o">-&gt;</span><span class="kc">False</span>
+<span class="n">isWord</span><span class="p">(</span><span class="s1">&#39;award&#39;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">True</span>
+<span class="n">isWord</span><span class="p">(</span><span class="mi">9</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">False</span>
+<span class="n">isWord</span><span class="p">(</span><span class="s1">&#39;a_b_c_&#39;</span><span class="p">)</span> <span class="o">-&gt;</span><span class="kc">True</span>
+</pre></div>
+</div>
+<p>&#64;note: isWord('9abc') will return True - not exactly correct, but adequate
+for the way it's used here.</p>
+<p>&#64;param s: The name to be tested
+&#64;type s: any
+&#64;return: True if a word, else False
+&#64;rtype: bool</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.pyconf.makePath">
+<code class="descclassname">src.pyconf.</code><code class="descname">makePath</code><span class="sig-paren">(</span><em>prefix</em>, <em>suffix</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#makePath"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.makePath" title="Permalink to this definition">¶</a></dt>
+<dd><p>Make a path from a prefix and suffix.</p>
+<p>Examples::
+makePath('', 'suffix') -&gt; 'suffix'
+makePath('prefix', 'suffix') -&gt; 'prefix.suffix'
+makePath('prefix', '[1]') -&gt; 'prefix[1]'</p>
+<p>&#64;param prefix:  The prefix to use. If it evaluates as false, the suffix is returned.
+&#64;type prefix:   str
+&#64;param suffix:  The suffix to use. It is either an identifier or an index in brackets.
+&#64;type suffix:   str
+&#64;return:        The path concatenation of prefix and suffix, with a dot if the suffix is not a bracketed index.
+&#64;rtype:         str</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.pyconf.overwriteMergeResolve">
+<code class="descclassname">src.pyconf.</code><code class="descname">overwriteMergeResolve</code><span class="sig-paren">(</span><em>map1</em>, <em>map2</em>, <em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/pyconf.html#overwriteMergeResolve"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.overwriteMergeResolve" title="Permalink to this definition">¶</a></dt>
+<dd><p>An overwriting resolver for merge conflicts. Calls L{defaultMergeResolve},
+but where a &quot;mismatch&quot; is detected, returns &quot;overwrite&quot; instead.</p>
+<p>&#64;param map1: The map being merged into.
+&#64;type map1: L{Mapping}.
+&#64;param map2: The map being used as the merge operand.
+&#64;type map2: L{Mapping}.
+&#64;param key: The key in map2 (which also exists in map1).
+&#64;type key: str</p>
+</dd></dl>
+
+</div>
+<div class="section" id="module-src.returnCode">
+<span id="src-returncode-module"></span><h2>src.returnCode module<a class="headerlink" href="#module-src.returnCode" title="Permalink to this headline">¶</a></h2>
+<p>This file contains ReturnCode class
+usage:
+&gt;&gt; import returnCode as RCO</p>
+<dl class="class">
+<dt id="src.returnCode.ReturnCode">
+<em class="property">class </em><code class="descclassname">src.returnCode.</code><code class="descname">ReturnCode</code><span class="sig-paren">(</span><em>status=None</em>, <em>why=None</em>, <em>value=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/returnCode.html#ReturnCode"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.returnCode.ReturnCode" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>assume simple return code for methods, with explanation as 'why'
+obviously why is why it is not OK, 
+but also why is why it is OK (if you want). 
+and optionnaly contains a return value as self.getValue()</p>
+<dl class="docutils">
+<dt>usage:</dt>
+<dd><p class="first">&gt;&gt; import returnCode as RCO</p>
+<p>&gt;&gt; aValue = doSomethingToReturn()
+&gt;&gt; return RCO.ReturnCode(&quot;KO&quot;, &quot;there is no problem here&quot;, aValue)
+&gt;&gt; return RCO.ReturnCode(&quot;KO&quot;, &quot;there is a problem here because etc&quot;, None)
+&gt;&gt; return RCO.ReturnCode(&quot;TIMEOUT_STATUS&quot;, &quot;too long here because etc&quot;)
+&gt;&gt; return RCO.ReturnCode(&quot;NA&quot;, &quot;not applicable here because etc&quot;)</p>
+<p>&gt;&gt; rc = doSomething()
+&gt;&gt; print(&quot;short returnCode string&quot;, str(rc))
+&gt;&gt; print(&quot;long returnCode string with value&quot;, repr(rc))</p>
+<p class="last">&gt;&gt; rc1 = RCO.ReturnCode(&quot;OK&quot;, ...)
+&gt;&gt; rc2 = RCO.ReturnCode(&quot;KO&quot;, ...)
+&gt;&gt; rcFinal = rc1 + rc2
+&gt;&gt; print(&quot;long returnCode string with value&quot;, repr(rcFinal)) # KO!</p>
+</dd>
+</dl>
+<dl class="attribute">
+<dt id="src.returnCode.ReturnCode.KFSYS">
+<code class="descname">KFSYS</code><em class="property"> = 4</em><a class="headerlink" href="#src.returnCode.ReturnCode.KFSYS" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.returnCode.ReturnCode.KNOWNFAILURE_STATUS">
+<code class="descname">KNOWNFAILURE_STATUS</code><em class="property"> = 'KF'</em><a class="headerlink" href="#src.returnCode.ReturnCode.KNOWNFAILURE_STATUS" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.returnCode.ReturnCode.KOSYS">
+<code class="descname">KOSYS</code><em class="property"> = 1</em><a class="headerlink" href="#src.returnCode.ReturnCode.KOSYS" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.returnCode.ReturnCode.KO_STATUS">
+<code class="descname">KO_STATUS</code><em class="property"> = 'KO'</em><a class="headerlink" href="#src.returnCode.ReturnCode.KO_STATUS" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.returnCode.ReturnCode.NASYS">
+<code class="descname">NASYS</code><em class="property"> = 2</em><a class="headerlink" href="#src.returnCode.ReturnCode.NASYS" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.returnCode.ReturnCode.NA_STATUS">
+<code class="descname">NA_STATUS</code><em class="property"> = 'NA'</em><a class="headerlink" href="#src.returnCode.ReturnCode.NA_STATUS" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.returnCode.ReturnCode.NDSYS">
+<code class="descname">NDSYS</code><em class="property"> = 3</em><a class="headerlink" href="#src.returnCode.ReturnCode.NDSYS" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.returnCode.ReturnCode.OKSYS">
+<code class="descname">OKSYS</code><em class="property"> = 0</em><a class="headerlink" href="#src.returnCode.ReturnCode.OKSYS" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.returnCode.ReturnCode.OK_STATUS">
+<code class="descname">OK_STATUS</code><em class="property"> = 'OK'</em><a class="headerlink" href="#src.returnCode.ReturnCode.OK_STATUS" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.returnCode.ReturnCode.TIMEOUT_STATUS">
+<code class="descname">TIMEOUT_STATUS</code><em class="property"> = 'TIMEOUT'</em><a class="headerlink" href="#src.returnCode.ReturnCode.TIMEOUT_STATUS" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.returnCode.ReturnCode.TOSYS">
+<code class="descname">TOSYS</code><em class="property"> = 5</em><a class="headerlink" href="#src.returnCode.ReturnCode.TOSYS" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.returnCode.ReturnCode.UNKNOWN_STATUS">
+<code class="descname">UNKNOWN_STATUS</code><em class="property"> = 'ND'</em><a class="headerlink" href="#src.returnCode.ReturnCode.UNKNOWN_STATUS" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.returnCode.ReturnCode.getValue">
+<code class="descname">getValue</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/returnCode.html#ReturnCode.getValue"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.returnCode.ReturnCode.getValue" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.returnCode.ReturnCode.getWhy">
+<code class="descname">getWhy</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/returnCode.html#ReturnCode.getWhy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.returnCode.ReturnCode.getWhy" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.returnCode.ReturnCode.indent">
+<code class="descname">indent</code><span class="sig-paren">(</span><em>text</em>, <em>amount=5</em>, <em>ch=' '</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/returnCode.html#ReturnCode.indent"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.returnCode.ReturnCode.indent" title="Permalink to this definition">¶</a></dt>
+<dd><p>indent multi lines message</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.returnCode.ReturnCode.isOk">
+<code class="descname">isOk</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/returnCode.html#ReturnCode.isOk"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.returnCode.ReturnCode.isOk" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.returnCode.ReturnCode.setStatus">
+<code class="descname">setStatus</code><span class="sig-paren">(</span><em>status</em>, <em>why=None</em>, <em>value=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/returnCode.html#ReturnCode.setStatus"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.returnCode.ReturnCode.setStatus" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.returnCode.ReturnCode.setValue">
+<code class="descname">setValue</code><span class="sig-paren">(</span><em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/returnCode.html#ReturnCode.setValue"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.returnCode.ReturnCode.setValue" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.returnCode.ReturnCode.setWhy">
+<code class="descname">setWhy</code><span class="sig-paren">(</span><em>why</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/returnCode.html#ReturnCode.setWhy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.returnCode.ReturnCode.setWhy" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.returnCode.ReturnCode.toSys">
+<code class="descname">toSys</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/returnCode.html#ReturnCode.toSys"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.returnCode.ReturnCode.toSys" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-src.salomeTools">
+<span id="src-salometools-module"></span><h2>src.salomeTools module<a class="headerlink" href="#module-src.salomeTools" title="Permalink to this headline">¶</a></h2>
+<p>This file is the main entry file to salomeTools
+NO __main__ entry allowed, use 'sat' (in parent directory)</p>
+<dl class="class">
+<dt id="src.salomeTools.Sat">
+<em class="property">class </em><code class="descclassname">src.salomeTools.</code><code class="descname">Sat</code><span class="sig-paren">(</span><em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/salomeTools.html#Sat"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>The main class that stores all the commands of salomeTools
+(usually known as 'runner' argument in Command classes)</p>
+<dl class="method">
+<dt id="src.salomeTools.Sat.assumeAsList">
+<code class="descname">assumeAsList</code><span class="sig-paren">(</span><em>strOrList</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/salomeTools.html#Sat.assumeAsList"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.assumeAsList" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.salomeTools.Sat.execute_cli">
+<code class="descname">execute_cli</code><span class="sig-paren">(</span><em>cli_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/salomeTools.html#Sat.execute_cli"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.execute_cli" title="Permalink to this definition">¶</a></dt>
+<dd><p>select first argument as a command in directory 'commands', and launch on arguments</p>
+<p>:param args str or list, The sat cli arguments (as sys.argv)</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.salomeTools.Sat.getColoredVersion">
+<code class="descname">getColoredVersion</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/salomeTools.html#Sat.getColoredVersion"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.getColoredVersion" title="Permalink to this definition">¶</a></dt>
+<dd><p>get colored salomeTools version message</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.salomeTools.Sat.getCommandAndAppli">
+<code class="descname">getCommandAndAppli</code><span class="sig-paren">(</span><em>arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/salomeTools.html#Sat.getCommandAndAppli"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.getCommandAndAppli" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.salomeTools.Sat.getCommandInstance">
+<code class="descname">getCommandInstance</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/salomeTools.html#Sat.getCommandInstance"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.getCommandInstance" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns inherited instance of Command(_BaseCmd) for command 'name'
+if module not loaded yet, load it.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.salomeTools.Sat.getConfig">
+<code class="descname">getConfig</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/salomeTools.html#Sat.getConfig"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.getConfig" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.salomeTools.Sat.getConfigManager">
+<code class="descname">getConfigManager</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/salomeTools.html#Sat.getConfigManager"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.getConfigManager" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.salomeTools.Sat.getLogger">
+<code class="descname">getLogger</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/salomeTools.html#Sat.getLogger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.getLogger" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.salomeTools.Sat.getModule">
+<code class="descname">getModule</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/salomeTools.html#Sat.getModule"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.getModule" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns only-one-time loaded module Command 'name'
+assume load if not done yet</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.salomeTools.Sat.get_help">
+<code class="descname">get_help</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/salomeTools.html#Sat.get_help"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.get_help" title="Permalink to this definition">¶</a></dt>
+<dd><p>get general help colored string</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.salomeTools.Sat.parseArguments">
+<code class="descname">parseArguments</code><span class="sig-paren">(</span><em>arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/salomeTools.html#Sat.parseArguments"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.parseArguments" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.salomeTools.Sat.print_help">
+<code class="descname">print_help</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/salomeTools.html#Sat.print_help"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.print_help" title="Permalink to this definition">¶</a></dt>
+<dd><p>prints salomeTools general help</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="src.salomeTools.assumeAsList">
+<code class="descclassname">src.salomeTools.</code><code class="descname">assumeAsList</code><span class="sig-paren">(</span><em>strOrList</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/salomeTools.html#assumeAsList"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.assumeAsList" title="Permalink to this definition">¶</a></dt>
+<dd><p>return a list as sys.argv if string</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.salomeTools.find_command_list">
+<code class="descclassname">src.salomeTools.</code><code class="descname">find_command_list</code><span class="sig-paren">(</span><em>dirPath</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/salomeTools.html#find_command_list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.find_command_list" title="Permalink to this definition">¶</a></dt>
+<dd><p>Parse files in dirPath that end with '.py' : it gives commands list</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>dirPath</em>) -- The directory path where to search the commands</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">cmd_list : the list containing the commands name</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#src.utilsSat.Path.list" title="src.utilsSat.Path.list">list</a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.salomeTools.getCommandsList">
+<code class="descclassname">src.salomeTools.</code><code class="descname">getCommandsList</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/salomeTools.html#getCommandsList"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.getCommandsList" title="Permalink to this definition">¶</a></dt>
+<dd><p>Gives commands list (as basename of files .py in directory commands</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.salomeTools.getVersion">
+<code class="descclassname">src.salomeTools.</code><code class="descname">getVersion</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/salomeTools.html#getVersion"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.getVersion" title="Permalink to this definition">¶</a></dt>
+<dd><p>get version number as string</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.salomeTools.launchSat">
+<code class="descclassname">src.salomeTools.</code><code class="descname">launchSat</code><span class="sig-paren">(</span><em>command</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/salomeTools.html#launchSat"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.launchSat" title="Permalink to this definition">¶</a></dt>
+<dd><p>launch sat as subprocess popen
+command as string ('sat --help' for example)
+used for unittest, or else...
+returns tuple (stdout, stderr)</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.salomeTools.setLocale">
+<code class="descclassname">src.salomeTools.</code><code class="descname">setLocale</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/salomeTools.html#setLocale"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.setLocale" title="Permalink to this definition">¶</a></dt>
+<dd><p>reset initial locale at any moment 
+'fr' or else (TODO) from initial environment var '$LANG'
+'i18n' as 'internationalization'</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.salomeTools.setNotLocale">
+<code class="descclassname">src.salomeTools.</code><code class="descname">setNotLocale</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/salomeTools.html#setNotLocale"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.setNotLocale" title="Permalink to this definition">¶</a></dt>
+<dd><p>force english at any moment</p>
+</dd></dl>
+
+</div>
+<div class="section" id="module-src.system">
+<span id="src-system-module"></span><h2>src.system module<a class="headerlink" href="#module-src.system" title="Permalink to this headline">¶</a></h2>
+<p>All utilities method doing a system call, 
+like open a browser or an editor, or call a git command</p>
+<dl class="docutils">
+<dt>usage:</dt>
+<dd>&gt;&gt; import src.system as SYSS</dd>
+</dl>
+<dl class="function">
+<dt id="src.system.archive_extract">
+<code class="descclassname">src.system.</code><code class="descname">archive_extract</code><span class="sig-paren">(</span><em>from_what</em>, <em>where</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/system.html#archive_extract"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.system.archive_extract" title="Permalink to this definition">¶</a></dt>
+<dd><p>Extracts sources from an archive.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>from_what</strong> -- (str) The path to the archive.</li>
+<li><strong>where</strong> -- (str) The path where to extract.</li>
+<li><strong>logger</strong> -- (Logger) The logger instance to use.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(bool) True if the extraction is successful</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.system.cvs_extract">
+<code class="descclassname">src.system.</code><code class="descname">cvs_extract</code><span class="sig-paren">(</span><em>protocol</em>, <em>user</em>, <em>server</em>, <em>base</em>, <em>tag</em>, <em>product</em>, <em>where</em>, <em>logger</em>, <em>checkout=False</em>, <em>environment=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/system.html#cvs_extract"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.system.cvs_extract" title="Permalink to this definition">¶</a></dt>
+<dd><p>Extracts sources from a cvs repository.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>protocol</strong> -- (str) The cvs protocol.</li>
+<li><strong>user</strong> -- (str) The user to be used.</li>
+<li><strong>server</strong> -- (str) The remote cvs server.</li>
+<li><strong>base</strong> -- (str) .</li>
+<li><strong>tag</strong> -- (str) The tag.</li>
+<li><strong>product</strong> -- (str) The product.</li>
+<li><strong>where</strong> -- (str) The path where to extract.</li>
+<li><strong>logger</strong> -- (Logger) The logger instance to use.</li>
+<li><strong>checkout</strong> -- (bool) If true use checkout cvs.</li>
+<li><strong>environment</strong> -- (Environ) 
+The environment to source when extracting.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(bool) True if the extraction is successful</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.system.git_extract">
+<code class="descclassname">src.system.</code><code class="descname">git_extract</code><span class="sig-paren">(</span><em>from_what</em>, <em>tag</em>, <em>where</em>, <em>logger</em>, <em>environment=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/system.html#git_extract"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.system.git_extract" title="Permalink to this definition">¶</a></dt>
+<dd><p>Extracts sources from a git repository.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>from_what</strong> -- (str) The remote git repository.</li>
+<li><strong>tag</strong> -- (str) The tag.</li>
+<li><strong>where</strong> -- (str) The path where to extract.</li>
+<li><strong>logger</strong> -- (Logger) The logger instance to use.</li>
+<li><strong>environment</strong> -- (Environ) 
+The environment to source when extracting.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(bool) True if the extraction is successful</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.system.show_in_editor">
+<code class="descclassname">src.system.</code><code class="descname">show_in_editor</code><span class="sig-paren">(</span><em>editor</em>, <em>filePath</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/system.html#show_in_editor"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.system.show_in_editor" title="Permalink to this definition">¶</a></dt>
+<dd><p>open filePath using editor.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>editor</strong> -- (str) The editor to use.</li>
+<li><strong>filePath</strong> -- (str) The path to the file to open.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.system.svn_extract">
+<code class="descclassname">src.system.</code><code class="descname">svn_extract</code><span class="sig-paren">(</span><em>user</em>, <em>from_what</em>, <em>tag</em>, <em>where</em>, <em>logger</em>, <em>checkout=False</em>, <em>environment=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/system.html#svn_extract"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.system.svn_extract" title="Permalink to this definition">¶</a></dt>
+<dd><p>Extracts sources from a svn repository.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>user</strong> -- (str) The user to be used.</li>
+<li><strong>from_what</strong> -- (str) The remote git repository.</li>
+<li><strong>tag</strong> -- (str) The tag.</li>
+<li><strong>where</strong> -- (str) The path where to extract.</li>
+<li><strong>logger</strong> -- (Logger) The logger instance to use.</li>
+<li><strong>checkout</strong> -- (bool) If true use checkout svn.</li>
+<li><strong>environment</strong> -- (Environ)
+The environment to source when extracting.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(bool) True if the extraction is successful</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-src.template">
+<span id="src-template-module"></span><h2>src.template module<a class="headerlink" href="#module-src.template" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="src.template.MyTemplate">
+<em class="property">class </em><code class="descclassname">src.template.</code><code class="descname">MyTemplate</code><span class="sig-paren">(</span><em>template</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/template.html#MyTemplate"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.template.MyTemplate" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">string.Template</span></code></p>
+<dl class="attribute">
+<dt id="src.template.MyTemplate.delimiter">
+<code class="descname">delimiter</code><em class="property"> = '\xc2\xa4'</em><a class="headerlink" href="#src.template.MyTemplate.delimiter" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="src.template.MyTemplate.pattern">
+<code class="descname">pattern</code><em class="property"> = &lt;_sre.SRE_Pattern object&gt;</em><a class="headerlink" href="#src.template.MyTemplate.pattern" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="src.template.substitute">
+<code class="descclassname">src.template.</code><code class="descname">substitute</code><span class="sig-paren">(</span><em>template_file</em>, <em>subst_dic</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/template.html#substitute"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.template.substitute" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</div>
+<div class="section" id="module-src.test_module">
+<span id="src-test-module-module"></span><h2>src.test_module module<a class="headerlink" href="#module-src.test_module" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="src.test_module.Test">
+<em class="property">class </em><code class="descclassname">src.test_module.</code><code class="descname">Test</code><span class="sig-paren">(</span><em>config</em>, <em>logger</em>, <em>tmp_working_dir</em>, <em>testbase=''</em>, <em>grids=None</em>, <em>sessions=None</em>, <em>launcher=''</em>, <em>show_desktop=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/test_module.html#Test"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="method">
+<dt id="src.test_module.Test.generate_launching_commands">
+<code class="descname">generate_launching_commands</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/test_module.html#Test.generate_launching_commands"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.generate_launching_commands" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.test_module.Test.generate_script">
+<code class="descname">generate_script</code><span class="sig-paren">(</span><em>listTest</em>, <em>script_path</em>, <em>ignoreList</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/test_module.html#Test.generate_script"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.generate_script" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.test_module.Test.get_test_timeout">
+<code class="descname">get_test_timeout</code><span class="sig-paren">(</span><em>test_name</em>, <em>default_value</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/test_module.html#Test.get_test_timeout"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.get_test_timeout" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.test_module.Test.get_tmp_dir">
+<code class="descname">get_tmp_dir</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/test_module.html#Test.get_tmp_dir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.get_tmp_dir" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.test_module.Test.prepare_testbase">
+<code class="descname">prepare_testbase</code><span class="sig-paren">(</span><em>test_base_name</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/test_module.html#Test.prepare_testbase"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.prepare_testbase" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.test_module.Test.prepare_testbase_from_dir">
+<code class="descname">prepare_testbase_from_dir</code><span class="sig-paren">(</span><em>testbase_name</em>, <em>testbase_dir</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/test_module.html#Test.prepare_testbase_from_dir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.prepare_testbase_from_dir" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.test_module.Test.prepare_testbase_from_git">
+<code class="descname">prepare_testbase_from_git</code><span class="sig-paren">(</span><em>testbase_name</em>, <em>testbase_base</em>, <em>testbase_tag</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/test_module.html#Test.prepare_testbase_from_git"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.prepare_testbase_from_git" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.test_module.Test.prepare_testbase_from_svn">
+<code class="descname">prepare_testbase_from_svn</code><span class="sig-paren">(</span><em>user</em>, <em>testbase_name</em>, <em>testbase_base</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/test_module.html#Test.prepare_testbase_from_svn"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.prepare_testbase_from_svn" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.test_module.Test.read_results">
+<code class="descname">read_results</code><span class="sig-paren">(</span><em>listTest</em>, <em>has_timed_out</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/test_module.html#Test.read_results"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.read_results" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.test_module.Test.run_all_tests">
+<code class="descname">run_all_tests</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/test_module.html#Test.run_all_tests"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.run_all_tests" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.test_module.Test.run_grid_tests">
+<code class="descname">run_grid_tests</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/test_module.html#Test.run_grid_tests"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.run_grid_tests" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.test_module.Test.run_script">
+<code class="descname">run_script</code><span class="sig-paren">(</span><em>script_name</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/test_module.html#Test.run_script"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.run_script" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.test_module.Test.run_session_tests">
+<code class="descname">run_session_tests</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/test_module.html#Test.run_session_tests"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.run_session_tests" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.test_module.Test.run_testbase_tests">
+<code class="descname">run_testbase_tests</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/test_module.html#Test.run_testbase_tests"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.run_testbase_tests" title="Permalink to this definition">¶</a></dt>
+<dd><p>Runs test testbase</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.test_module.Test.run_tests">
+<code class="descname">run_tests</code><span class="sig-paren">(</span><em>listTest</em>, <em>ignoreList</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/test_module.html#Test.run_tests"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.run_tests" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.test_module.Test.search_known_errors">
+<code class="descname">search_known_errors</code><span class="sig-paren">(</span><em>status</em>, <em>test_grid</em>, <em>test_session</em>, <em>test</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/test_module.html#Test.search_known_errors"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.search_known_errors" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.test_module.Test.write_test_margin">
+<code class="descname">write_test_margin</code><span class="sig-paren">(</span><em>tab</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/test_module.html#Test.write_test_margin"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.write_test_margin" title="Permalink to this definition">¶</a></dt>
+<dd><p>indent with '| ... +' to show test results.</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="src.test_module.getTmpDirDEFAULT">
+<code class="descclassname">src.test_module.</code><code class="descname">getTmpDirDEFAULT</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/test_module.html#getTmpDirDEFAULT"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.getTmpDirDEFAULT" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</div>
+<div class="section" id="module-src.utilsSat">
+<span id="src-utilssat-module"></span><h2>src.utilsSat module<a class="headerlink" href="#module-src.utilsSat" title="Permalink to this headline">¶</a></h2>
+<p>utilities for sat
+general useful simple methods
+all-in-one import srs.utilsSat as UTS</p>
+<p>usage:
+&gt;&gt; import srsc.utilsSat as UTS
+&gt;&gt; UTS.ensure_path_exists(path)</p>
+<dl class="class">
+<dt id="src.utilsSat.Path">
+<em class="property">class </em><code class="descclassname">src.utilsSat.</code><code class="descname">Path</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#Path"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="method">
+<dt id="src.utilsSat.Path.base">
+<code class="descname">base</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#Path.base"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.base" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.utilsSat.Path.chmod">
+<code class="descname">chmod</code><span class="sig-paren">(</span><em>mode</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#Path.chmod"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.chmod" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.utilsSat.Path.copy">
+<code class="descname">copy</code><span class="sig-paren">(</span><em>path</em>, <em>smart=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#Path.copy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.copy" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.utilsSat.Path.copydir">
+<code class="descname">copydir</code><span class="sig-paren">(</span><em>dst</em>, <em>smart=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#Path.copydir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.copydir" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.utilsSat.Path.copyfile">
+<code class="descname">copyfile</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#Path.copyfile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.copyfile" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.utilsSat.Path.copylink">
+<code class="descname">copylink</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#Path.copylink"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.copylink" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.utilsSat.Path.dir">
+<code class="descname">dir</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#Path.dir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.dir" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.utilsSat.Path.exists">
+<code class="descname">exists</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#Path.exists"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.exists" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.utilsSat.Path.isdir">
+<code class="descname">isdir</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#Path.isdir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.isdir" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.utilsSat.Path.isfile">
+<code class="descname">isfile</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#Path.isfile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.isfile" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.utilsSat.Path.islink">
+<code class="descname">islink</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#Path.islink"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.islink" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.utilsSat.Path.list">
+<code class="descname">list</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#Path.list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.list" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.utilsSat.Path.make">
+<code class="descname">make</code><span class="sig-paren">(</span><em>mode=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#Path.make"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.make" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.utilsSat.Path.readlink">
+<code class="descname">readlink</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#Path.readlink"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.readlink" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.utilsSat.Path.rm">
+<code class="descname">rm</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#Path.rm"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.rm" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.utilsSat.Path.smartcopy">
+<code class="descname">smartcopy</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#Path.smartcopy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.smartcopy" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="src.utilsSat.Path.symlink">
+<code class="descname">symlink</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#Path.symlink"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.symlink" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.black">
+<code class="descclassname">src.utilsSat.</code><code class="descname">black</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#black"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.black" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.blue">
+<code class="descclassname">src.utilsSat.</code><code class="descname">blue</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#blue"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.blue" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.check_config_has_application">
+<code class="descclassname">src.utilsSat.</code><code class="descname">check_config_has_application</code><span class="sig-paren">(</span><em>config</em>, <em>details=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#check_config_has_application"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.check_config_has_application" title="Permalink to this definition">¶</a></dt>
+<dd><p>Check that the config has the key APPLICATION. 
+Else raise an exception.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>config</strong> -- (Config) The config.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.check_config_has_profile">
+<code class="descclassname">src.utilsSat.</code><code class="descname">check_config_has_profile</code><span class="sig-paren">(</span><em>config</em>, <em>details=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#check_config_has_profile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.check_config_has_profile" title="Permalink to this definition">¶</a></dt>
+<dd><p>Check that the config has the key APPLICATION.profile.
+Else, raise an exception.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>config</strong> -- (Config) The config.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.config_has_application">
+<code class="descclassname">src.utilsSat.</code><code class="descname">config_has_application</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#config_has_application"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.config_has_application" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.critical">
+<code class="descclassname">src.utilsSat.</code><code class="descname">critical</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#critical"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.critical" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.cyan">
+<code class="descclassname">src.utilsSat.</code><code class="descname">cyan</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#cyan"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.cyan" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.date_to_datetime">
+<code class="descclassname">src.utilsSat.</code><code class="descname">date_to_datetime</code><span class="sig-paren">(</span><em>date</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#date_to_datetime"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.date_to_datetime" title="Permalink to this definition">¶</a></dt>
+<dd><p>From a string date in format YYYYMMDD_HHMMSS
+returns list year, mon, day, hour, minutes, seconds</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>date</strong> -- (str) The date in format YYYYMMDD_HHMMSS</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(tuple) as (str,str,str,str,str,str)
+The same date and time in separate variables.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.deepcopy_list">
+<code class="descclassname">src.utilsSat.</code><code class="descname">deepcopy_list</code><span class="sig-paren">(</span><em>input_list</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#deepcopy_list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.deepcopy_list" title="Permalink to this definition">¶</a></dt>
+<dd><p>Do a deep copy of a list</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>input_list</strong> -- (list) The list to copy</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(list) The copy of the list</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.ensure_path_exists">
+<code class="descclassname">src.utilsSat.</code><code class="descname">ensure_path_exists</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#ensure_path_exists"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.ensure_path_exists" title="Permalink to this definition">¶</a></dt>
+<dd><p>Create a path if not existing</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>path</strong> -- (str) The path.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.error">
+<code class="descclassname">src.utilsSat.</code><code class="descname">error</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#error"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.error" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.find_file_in_lpath">
+<code class="descclassname">src.utilsSat.</code><code class="descname">find_file_in_lpath</code><span class="sig-paren">(</span><em>file_name</em>, <em>lpath</em>, <em>additional_dir=''</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#find_file_in_lpath"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.find_file_in_lpath" title="Permalink to this definition">¶</a></dt>
+<dd><p>Find in all the directories in lpath list the file 
+that has the same name as file_name. 
+If it is found, return the full path of the file, else, return False. 
+The additional_dir (optional) is the name of the directory 
+to add to all paths in lpath.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>file_name</strong> -- (str) The file name to search</li>
+<li><strong>lpath</strong> -- (list) The list of directories where to search</li>
+<li><strong>additional_dir</strong> -- (str) The name of the additional directory</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(str) The full path of the file or False if not found</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.formatTuples">
+<code class="descclassname">src.utilsSat.</code><code class="descname">formatTuples</code><span class="sig-paren">(</span><em>tuples</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#formatTuples"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.formatTuples" title="Permalink to this definition">¶</a></dt>
+<dd><p>format 'label = value' the tuples in a tabulated way.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>tuples</strong> -- (list) The list of tuples to format</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(str) The tabulated text. (as mutiples lines)</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.formatValue">
+<code class="descclassname">src.utilsSat.</code><code class="descname">formatValue</code><span class="sig-paren">(</span><em>label</em>, <em>value</em>, <em>suffix=''</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#formatValue"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.formatValue" title="Permalink to this definition">¶</a></dt>
+<dd><p>format 'label = value' with the info color</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>label</strong> -- (int) the label to print.</li>
+<li><strong>value</strong> -- (str) the value to print.</li>
+<li><strong>suffix</strong> -- (str) the optionnal suffix to add at the end.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.get_base_path">
+<code class="descclassname">src.utilsSat.</code><code class="descname">get_base_path</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#get_base_path"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.get_base_path" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the path of the products base.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>config</strong> -- (Config) The global Config instance.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(str) The path of the products base.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.get_cfg_param">
+<code class="descclassname">src.utilsSat.</code><code class="descname">get_cfg_param</code><span class="sig-paren">(</span><em>config</em>, <em>param_name</em>, <em>default</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#get_cfg_param"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.get_cfg_param" title="Permalink to this definition">¶</a></dt>
+<dd><p>Search for param_name value in config.
+If param_name is not in config, then return default,
+else, return the found value</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>config</strong> -- (Config) The config.</li>
+<li><strong>param_name</strong> -- (str) the name of the parameter to get the value</li>
+<li><strong>default</strong> -- (str) The value to return if param_name is not in config</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(str) see initial description of the function</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.get_launcher_name">
+<code class="descclassname">src.utilsSat.</code><code class="descname">get_launcher_name</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#get_launcher_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.get_launcher_name" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the name of salome launcher.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>config</strong> -- (Config) The global Config instance.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(str) The name of salome launcher.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.get_log_path">
+<code class="descclassname">src.utilsSat.</code><code class="descname">get_log_path</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#get_log_path"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.get_log_path" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the path of the logs.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>config</strong> -- (Config) The global Config instance.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(str) The path of the logs.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.get_property_in_product_cfg">
+<code class="descclassname">src.utilsSat.</code><code class="descname">get_property_in_product_cfg</code><span class="sig-paren">(</span><em>product_cfg</em>, <em>pprty</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#get_property_in_product_cfg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.get_property_in_product_cfg" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.get_salome_version">
+<code class="descclassname">src.utilsSat.</code><code class="descname">get_salome_version</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#get_salome_version"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.get_salome_version" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.get_tmp_filename">
+<code class="descclassname">src.utilsSat.</code><code class="descname">get_tmp_filename</code><span class="sig-paren">(</span><em>config</em>, <em>name</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#get_tmp_filename"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.get_tmp_filename" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.green">
+<code class="descclassname">src.utilsSat.</code><code class="descname">green</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#green"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.green" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.handleRemoveReadonly">
+<code class="descclassname">src.utilsSat.</code><code class="descname">handleRemoveReadonly</code><span class="sig-paren">(</span><em>func</em>, <em>path</em>, <em>exc</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#handleRemoveReadonly"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.handleRemoveReadonly" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.header">
+<code class="descclassname">src.utilsSat.</code><code class="descname">header</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#header"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.header" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.info">
+<code class="descclassname">src.utilsSat.</code><code class="descname">info</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#info"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.info" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.label">
+<code class="descclassname">src.utilsSat.</code><code class="descname">label</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#label"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.label" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.list_log_file">
+<code class="descclassname">src.utilsSat.</code><code class="descname">list_log_file</code><span class="sig-paren">(</span><em>dirPath</em>, <em>expression</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#list_log_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.list_log_file" title="Permalink to this definition">¶</a></dt>
+<dd><p>Find all files corresponding to expression in dirPath</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>dirPath</strong> -- (str) the directory where to search the files</li>
+<li><strong>expression</strong> -- (str) the regular expression of files to find</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(list) the list of files path and informations about it</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.logger_info_tuples">
+<code class="descclassname">src.utilsSat.</code><code class="descname">logger_info_tuples</code><span class="sig-paren">(</span><em>logger</em>, <em>tuples</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#logger_info_tuples"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.logger_info_tuples" title="Permalink to this definition">¶</a></dt>
+<dd><p>for convenience
+format as formatTuples() and call logger.info()</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.magenta">
+<code class="descclassname">src.utilsSat.</code><code class="descname">magenta</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#magenta"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.magenta" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.merge_dicts">
+<code class="descclassname">src.utilsSat.</code><code class="descname">merge_dicts</code><span class="sig-paren">(</span><em>*dict_args</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#merge_dicts"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.merge_dicts" title="Permalink to this definition">¶</a></dt>
+<dd><p>Given any number of dicts, shallow copy and merge into a new dict,
+precedence goes to key value pairs in latter dicts.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.normal">
+<code class="descclassname">src.utilsSat.</code><code class="descname">normal</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#normal"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.normal" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.only_numbers">
+<code class="descclassname">src.utilsSat.</code><code class="descname">only_numbers</code><span class="sig-paren">(</span><em>str_num</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#only_numbers"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.only_numbers" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.parse_date">
+<code class="descclassname">src.utilsSat.</code><code class="descname">parse_date</code><span class="sig-paren">(</span><em>date</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#parse_date"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.parse_date" title="Permalink to this definition">¶</a></dt>
+<dd><p>Transform YYYYMMDD_hhmmss into YYYY-MM-DD hh:mm:ss.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>date</strong> -- (str) The date to transform</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(str) The date in the new format</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.read_config_from_a_file">
+<code class="descclassname">src.utilsSat.</code><code class="descname">read_config_from_a_file</code><span class="sig-paren">(</span><em>filePath</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#read_config_from_a_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.read_config_from_a_file" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.red">
+<code class="descclassname">src.utilsSat.</code><code class="descname">red</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#red"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.red" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.remove_item_from_list">
+<code class="descclassname">src.utilsSat.</code><code class="descname">remove_item_from_list</code><span class="sig-paren">(</span><em>input_list</em>, <em>item</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#remove_item_from_list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.remove_item_from_list" title="Permalink to this definition">¶</a></dt>
+<dd><p>Remove all occurences of item from input_list</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>input_list</strong> -- (list) The list to modify</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(list) The without any item</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.replace_in_file">
+<code class="descclassname">src.utilsSat.</code><code class="descname">replace_in_file</code><span class="sig-paren">(</span><em>file_in</em>, <em>str_in</em>, <em>str_out</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#replace_in_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.replace_in_file" title="Permalink to this definition">¶</a></dt>
+<dd><p>Replace &lt;str_in&gt; by &lt;str_out&gt; in file &lt;file_in&gt;</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>file_in</strong> -- (str) The file name</li>
+<li><strong>str_in</strong> -- (str) The string to search</li>
+<li><strong>str_out</strong> -- (str) The string to replace.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.reset">
+<code class="descclassname">src.utilsSat.</code><code class="descname">reset</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#reset"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.reset" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.show_command_log">
+<code class="descclassname">src.utilsSat.</code><code class="descname">show_command_log</code><span class="sig-paren">(</span><em>logFilePath</em>, <em>cmd</em>, <em>application</em>, <em>notShownCommands</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#show_command_log"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.show_command_log" title="Permalink to this definition">¶</a></dt>
+<dd><p>Used in updateHatXml. 
+Determine if the log xml file logFilePath 
+has to be shown or not in the hat log.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>logFilePath</strong> -- (str) the path to the command xml log file</li>
+<li><strong>cmd</strong> -- (str) the command of the log file</li>
+<li><strong>application</strong> -- (str) 
+The application passed as parameter to the salomeTools command</li>
+<li><strong>notShownCommands</strong> -- (list) 
+The list of commands that are not shown by default</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(RCO.ReturnCode)
+OK if cmd is not in notShownCommands and the application 
+in the log file corresponds to application
+ReturnCode value is tuple (appliLog, launched_cmd)</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.success">
+<code class="descclassname">src.utilsSat.</code><code class="descname">success</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#success"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.success" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.timedelta_total_seconds">
+<code class="descclassname">src.utilsSat.</code><code class="descname">timedelta_total_seconds</code><span class="sig-paren">(</span><em>timedelta</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#timedelta_total_seconds"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.timedelta_total_seconds" title="Permalink to this definition">¶</a></dt>
+<dd><p>Replace total_seconds from datetime module 
+in order to be compatible with old python versions</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>timedelta</strong> -- (datetime.timedelta) 
+The delta between two dates</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(float) 
+The number of seconds corresponding to timedelta.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.update_hat_xml">
+<code class="descclassname">src.utilsSat.</code><code class="descname">update_hat_xml</code><span class="sig-paren">(</span><em>logDir</em>, <em>application=None</em>, <em>notShownCommands=[]</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#update_hat_xml"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.update_hat_xml" title="Permalink to this definition">¶</a></dt>
+<dd><p>Create the xml file in logDir that contain all the xml file 
+and have a name like YYYYMMDD_HHMMSS_namecmd.xml</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>logDir</strong> -- (str) the directory to parse</li>
+<li><strong>application</strong> -- (str) the name of the application if there is any</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.warning">
+<code class="descclassname">src.utilsSat.</code><code class="descname">warning</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#warning"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.warning" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.white">
+<code class="descclassname">src.utilsSat.</code><code class="descname">white</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#white"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.white" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="src.utilsSat.yellow">
+<code class="descclassname">src.utilsSat.</code><code class="descname">yellow</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/utilsSat.html#yellow"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.yellow" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</div>
+<div class="section" id="module-src.xmlManager">
+<span id="src-xmlmanager-module"></span><h2>src.xmlManager module<a class="headerlink" href="#module-src.xmlManager" title="Permalink to this headline">¶</a></h2>
+<p>Utilities to read xml logging files</p>
+<dl class="docutils">
+<dt>usage:</dt>
+<dd>&gt;&gt; import src.xmlManager as XMLMGR</dd>
+</dl>
+<dl class="class">
+<dt id="src.xmlManager.ReadXmlFile">
+<em class="property">class </em><code class="descclassname">src.xmlManager.</code><code class="descname">ReadXmlFile</code><span class="sig-paren">(</span><em>filePath</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/xmlManager.html#ReadXmlFile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.ReadXmlFile" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>Class to manage reading of an xml log file</p>
+<dl class="method">
+<dt id="src.xmlManager.ReadXmlFile.getRootAttrib">
+<code class="descname">getRootAttrib</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/xmlManager.html#ReadXmlFile.getRootAttrib"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.ReadXmlFile.getRootAttrib" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the attibutes of the self.xmlroot</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">(dict) The attributes of the root node</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.xmlManager.ReadXmlFile.get_attrib">
+<code class="descname">get_attrib</code><span class="sig-paren">(</span><em>node_name</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/xmlManager.html#ReadXmlFile.get_attrib"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.ReadXmlFile.get_attrib" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the attibutes of the node node_name in self.xmlroot</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>node_name</strong> -- (str) the name of the node</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(dict) the attibutes of the node node_name in self.xmlroot</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.xmlManager.ReadXmlFile.get_node_text">
+<code class="descname">get_node_text</code><span class="sig-paren">(</span><em>node</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/xmlManager.html#ReadXmlFile.get_node_text"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.ReadXmlFile.get_node_text" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the text of the first node that has name 
+that corresponds to the parameter node</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>node</strong> -- (str) the name of the node from which get the text</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(str) 
+The text of the first node that has name 
+that corresponds to the parameter node</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="src.xmlManager.XmlLogFile">
+<em class="property">class </em><code class="descclassname">src.xmlManager.</code><code class="descname">XmlLogFile</code><span class="sig-paren">(</span><em>filePath</em>, <em>rootname</em>, <em>attrib={}</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/xmlManager.html#XmlLogFile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.XmlLogFile" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>Class to manage writing in salomeTools xml log file</p>
+<dl class="method">
+<dt id="src.xmlManager.XmlLogFile.add_simple_node">
+<code class="descname">add_simple_node</code><span class="sig-paren">(</span><em>node_name</em>, <em>text=None</em>, <em>attrib={}</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/xmlManager.html#XmlLogFile.add_simple_node"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.XmlLogFile.add_simple_node" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a node with some attibutes and text to the root node.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>node_name</strong> -- (str) the name of the node to add</li>
+<li><strong>text</strong> -- (str) the text of the node</li>
+<li><strong>attrib</strong> -- (dict)
+The dictionary containing the attribute of the new node</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.xmlManager.XmlLogFile.append_node_attrib">
+<code class="descname">append_node_attrib</code><span class="sig-paren">(</span><em>node_name</em>, <em>attrib</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/xmlManager.html#XmlLogFile.append_node_attrib"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.XmlLogFile.append_node_attrib" title="Permalink to this definition">¶</a></dt>
+<dd><p>Append a new attributes to the node that has node_name as name</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>node_name</strong> -- (str) The name of the node on which append text</li>
+<li><strong>attrib</strong> -- (dict) The attrib to append</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.xmlManager.XmlLogFile.append_node_text">
+<code class="descname">append_node_text</code><span class="sig-paren">(</span><em>node_name</em>, <em>text</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/xmlManager.html#XmlLogFile.append_node_text"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.XmlLogFile.append_node_text" title="Permalink to this definition">¶</a></dt>
+<dd><p>Append a new text to the node that has node_name as name</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>node_name</strong> -- (str) The name of the node on which append text</li>
+<li><strong>text</strong> -- (str) The text to append</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="src.xmlManager.XmlLogFile.write_tree">
+<code class="descname">write_tree</code><span class="sig-paren">(</span><em>stylesheet=None</em>, <em>file_path=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/xmlManager.html#XmlLogFile.write_tree"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.XmlLogFile.write_tree" title="Permalink to this definition">¶</a></dt>
+<dd><p>Write the xml tree in the log file path. Add the stylesheet if asked.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>stylesheet</strong> -- (str) The stylesheet to apply to the xml file</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="src.xmlManager.add_simple_node">
+<code class="descclassname">src.xmlManager.</code><code class="descname">add_simple_node</code><span class="sig-paren">(</span><em>root_node</em>, <em>node_name</em>, <em>text=None</em>, <em>attrib={}</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/xmlManager.html#add_simple_node"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.add_simple_node" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a node with some attibutes and text to the root node.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>root_node</strong> -- (etree.Element) 
+the Etree element where to add the new node</li>
+<li><strong>node_name</strong> -- (str) the name of the node to add</li>
+<li><strong>text</strong> -- (str) the text of the node</li>
+<li><strong>attrib</strong> -- (dict) 
+the dictionary containing the attribute(s) of the new node</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.xmlManager.append_node_attrib">
+<code class="descclassname">src.xmlManager.</code><code class="descname">append_node_attrib</code><span class="sig-paren">(</span><em>root_node</em>, <em>attrib</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/xmlManager.html#append_node_attrib"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.append_node_attrib" title="Permalink to this definition">¶</a></dt>
+<dd><p>Append a new attributes to the node that has node_name as name</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>root_node</strong> -- (etree.Element)
+the Etree element where to append the new attibutes</li>
+<li><strong>attrib</strong> -- (dict) The attrib to append</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.xmlManager.find_node_by_attrib">
+<code class="descclassname">src.xmlManager.</code><code class="descname">find_node_by_attrib</code><span class="sig-paren">(</span><em>xmlroot</em>, <em>name_node</em>, <em>key</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/xmlManager.html#find_node_by_attrib"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.find_node_by_attrib" title="Permalink to this definition">¶</a></dt>
+<dd><p>Find the first node from xmlroot that has name name_node 
+and that has in its attributes {key : value}. 
+Return the node</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>xmlroot</strong> -- (etree.Element) 
+the Etree element where to search</li>
+<li><strong>name_node</strong> -- (str) the name of node to search</li>
+<li><strong>key</strong> -- (str) the key to search</li>
+<li><strong>value</strong> -- (str) the value to search</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(etree.Element) the found node</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="src.xmlManager.write_report">
+<code class="descclassname">src.xmlManager.</code><code class="descname">write_report</code><span class="sig-paren">(</span><em>filename</em>, <em>xmlroot</em>, <em>stylesheet</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/src/xmlManager.html#write_report"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.write_report" title="Permalink to this definition">¶</a></dt>
+<dd><p>Writes a report file from a XML tree.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>filename</strong> -- (str) The path to the file to create</li>
+<li><strong>xmlroot</strong> -- (etree.Element) the Etree element to write to the file</li>
+<li><strong>stylesheet</strong> -- (str) The stylesheet to add to the begin of the file</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-src">
+<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-src" title="Permalink to this headline">¶</a></h2>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="../index.html">
+              <img class="logo" src="../_static/sat_v5.0.png" alt="Logo"/>
+            </a></p>
+  <h3><a href="../index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">src package</a><ul>
+<li><a class="reference internal" href="#subpackages">Subpackages</a></li>
+<li><a class="reference internal" href="#submodules">Submodules</a></li>
+<li><a class="reference internal" href="#module-src.ElementTree">src.ElementTree module</a></li>
+<li><a class="reference internal" href="#module-src.architecture">src.architecture module</a></li>
+<li><a class="reference internal" href="#module-src.catchAll">src.catchAll module</a></li>
+<li><a class="reference internal" href="#module-src.coloringSat">src.coloringSat module</a></li>
+<li><a class="reference internal" href="#module-src.compilation">src.compilation module</a></li>
+<li><a class="reference internal" href="#module-src.configManager">src.configManager module</a></li>
+<li><a class="reference internal" href="#module-src.debug">src.debug module</a></li>
+<li><a class="reference internal" href="#module-src.environment">src.environment module</a></li>
+<li><a class="reference internal" href="#module-src.environs">src.environs module</a></li>
+<li><a class="reference internal" href="#module-src.exceptionSat">src.exceptionSat module</a></li>
+<li><a class="reference internal" href="#module-src.fileEnviron">src.fileEnviron module</a></li>
+<li><a class="reference internal" href="#module-src.fork">src.fork module</a></li>
+<li><a class="reference internal" href="#module-src.loggingSat">src.loggingSat module</a></li>
+<li><a class="reference internal" href="#module-src.options">src.options module</a></li>
+<li><a class="reference internal" href="#module-src.product">src.product module</a></li>
+<li><a class="reference internal" href="#module-src.pyconf">src.pyconf module</a></li>
+<li><a class="reference internal" href="#module-src.returnCode">src.returnCode module</a></li>
+<li><a class="reference internal" href="#module-src.salomeTools">src.salomeTools module</a></li>
+<li><a class="reference internal" href="#module-src.system">src.system module</a></li>
+<li><a class="reference internal" href="#module-src.template">src.template module</a></li>
+<li><a class="reference internal" href="#module-src.test_module">src.test_module module</a></li>
+<li><a class="reference internal" href="#module-src.utilsSat">src.utilsSat module</a></li>
+<li><a class="reference internal" href="#module-src.xmlManager">src.xmlManager module</a></li>
+<li><a class="reference internal" href="#module-src">Module contents</a></li>
+</ul>
+</li>
+</ul>
+<div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../index.html">Documentation overview</a><ul>
+  <li><a href="modules.html">src</a><ul>
+      <li>Previous: <a href="modules.html" title="previous chapter">src</a></li>
+      <li>Next: <a href="src.colorama.html" title="next chapter">src.colorama package</a></li>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/apidoc_src/src.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <div><input type="text" name="q" /></div>
+      <div><input type="submit" value="Go" /></div>
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2018, CEA.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
+      
+      |
+      <a href="../_sources/apidoc_src/src.txt"
+          rel="nofollow">Page source</a>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/commands/apidoc/modules.html b/doc/build/html/commands/apidoc/modules.html
deleted file mode 100644 (file)
index 724ae61..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>src &#8212; salomeTools 5.0.0dev documentation</title>
-    
-    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
-    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
-    
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '../../',
-        VERSION:     '5.0.0dev',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="../../_static/jquery.js"></script>
-    <script type="text/javascript" src="../../_static/underscore.js"></script>
-    <script type="text/javascript" src="../../_static/doctools.js"></script>
-    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
-    <link rel="index" title="Index" href="../../genindex.html" />
-    <link rel="search" title="Search" href="../../search.html" />
-    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
-    <link rel="next" title="src package" href="src.html" />
-    <link rel="prev" title="Add a user custom command" href="../../write_command.html" />
-   
-  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
-  
-  
-  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
-
-  </head>
-  <body role="document">
-  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body" role="main">
-            
-  <div class="section" id="src">
-<h1>src<a class="headerlink" href="#src" title="Permalink to this headline">¶</a></h1>
-<div class="toctree-wrapper compound">
-<ul>
-<li class="toctree-l1"><a class="reference internal" href="src.html">src package</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="src.html#subpackages">Subpackages</a><ul>
-<li class="toctree-l3"><a class="reference internal" href="src.colorama.html">src.colorama package</a><ul>
-<li class="toctree-l4"><a class="reference internal" href="src.colorama.html#submodules">Submodules</a></li>
-<li class="toctree-l4"><a class="reference internal" href="src.colorama.html#module-src.colorama.ansi">src.colorama.ansi module</a></li>
-<li class="toctree-l4"><a class="reference internal" href="src.colorama.html#module-src.colorama.ansitowin32">src.colorama.ansitowin32 module</a></li>
-<li class="toctree-l4"><a class="reference internal" href="src.colorama.html#module-src.colorama.initialise">src.colorama.initialise module</a></li>
-<li class="toctree-l4"><a class="reference internal" href="src.colorama.html#module-src.colorama.win32">src.colorama.win32 module</a></li>
-<li class="toctree-l4"><a class="reference internal" href="src.colorama.html#module-src.colorama.winterm">src.colorama.winterm module</a></li>
-<li class="toctree-l4"><a class="reference internal" href="src.colorama.html#module-src.colorama">Module contents</a></li>
-</ul>
-</li>
-<li class="toctree-l3"><a class="reference internal" href="src.example.html">src.example package</a><ul>
-<li class="toctree-l4"><a class="reference internal" href="src.example.html#submodules">Submodules</a></li>
-<li class="toctree-l4"><a class="reference internal" href="src.example.html#module-src.example.essai_logging_1">src.example.essai_logging_1 module</a></li>
-<li class="toctree-l4"><a class="reference internal" href="src.example.html#module-src.example.essai_logging_2">src.example.essai_logging_2 module</a></li>
-<li class="toctree-l4"><a class="reference internal" href="src.example.html#module-src.example">Module contents</a></li>
-</ul>
-</li>
-</ul>
-</li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#submodules">Submodules</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.ElementTree">src.ElementTree module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.architecture">src.architecture module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.catchAll">src.catchAll module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.coloringSat">src.coloringSat module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.compilation">src.compilation module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.configManager">src.configManager module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.debug">src.debug module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.environment">src.environment module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.environs">src.environs module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.exceptionSat">src.exceptionSat module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.fileEnviron">src.fileEnviron module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.fork">src.fork module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.loggingSat">src.loggingSat module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.options">src.options module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.product">src.product module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.pyconf">src.pyconf module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.returnCode">src.returnCode module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.salomeTools">src.salomeTools module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.system">src.system module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.template">src.template module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.test_module">src.test_module module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.utilsSat">src.utilsSat module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src.xmlManager">src.xmlManager module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.html#module-src">Module contents</a></li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="../../index.html">
-              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
-            </a></p><div class="relations">
-<h3>Related Topics</h3>
-<ul>
-  <li><a href="../../index.html">Documentation overview</a><ul>
-      <li>Previous: <a href="../../write_command.html" title="previous chapter">Add a user custom command</a></li>
-      <li>Next: <a href="src.html" title="next chapter">src package</a></li>
-  </ul></li>
-</ul>
-</div>
-  <div role="note" aria-label="source link">
-    <h3>This Page</h3>
-    <ul class="this-page-menu">
-      <li><a href="../../_sources/commands/apidoc/modules.txt"
-            rel="nofollow">Show Source</a></li>
-    </ul>
-   </div>
-<div id="searchbox" style="display: none" role="search">
-  <h3>Quick search</h3>
-    <form class="search" action="../../search.html" method="get">
-      <div><input type="text" name="q" /></div>
-      <div><input type="submit" value="Go" /></div>
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="footer">
-      &copy;2018, CEA.
-      
-      |
-      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
-      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
-      
-      |
-      <a href="../../_sources/commands/apidoc/modules.txt"
-          rel="nofollow">Page source</a>
-    </div>
-
-    
-
-    
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/build/html/commands/apidoc/src.colorama.html b/doc/build/html/commands/apidoc/src.colorama.html
deleted file mode 100644 (file)
index aa9f69d..0000000
+++ /dev/null
@@ -1,691 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>src.colorama package &#8212; salomeTools 5.0.0dev documentation</title>
-    
-    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
-    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
-    
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '../../',
-        VERSION:     '5.0.0dev',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="../../_static/jquery.js"></script>
-    <script type="text/javascript" src="../../_static/underscore.js"></script>
-    <script type="text/javascript" src="../../_static/doctools.js"></script>
-    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
-    <link rel="index" title="Index" href="../../genindex.html" />
-    <link rel="search" title="Search" href="../../search.html" />
-    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
-    <link rel="up" title="src package" href="src.html" />
-    <link rel="next" title="src.example package" href="src.example.html" />
-    <link rel="prev" title="src package" href="src.html" />
-   
-  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
-  
-  
-  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
-
-  </head>
-  <body role="document">
-  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body" role="main">
-            
-  <div class="section" id="src-colorama-package">
-<h1>src.colorama package<a class="headerlink" href="#src-colorama-package" title="Permalink to this headline">¶</a></h1>
-<div class="section" id="submodules">
-<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2>
-</div>
-<div class="section" id="module-src.colorama.ansi">
-<span id="src-colorama-ansi-module"></span><h2>src.colorama.ansi module<a class="headerlink" href="#module-src.colorama.ansi" title="Permalink to this headline">¶</a></h2>
-<p>This module generates ANSI character codes to printing colors to terminals.
-See: <a class="reference external" href="http://en.wikipedia.org/wiki/ANSI_escape_code">http://en.wikipedia.org/wiki/ANSI_escape_code</a></p>
-<dl class="class">
-<dt id="src.colorama.ansi.AnsiBack">
-<em class="property">class </em><code class="descclassname">src.colorama.ansi.</code><code class="descname">AnsiBack</code><a class="reference internal" href="../../_modules/src/colorama/ansi.html#AnsiBack"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.AnsiBack" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <a class="reference internal" href="#src.colorama.ansi.AnsiCodes" title="src.colorama.ansi.AnsiCodes"><code class="xref py py-class docutils literal"><span class="pre">src.colorama.ansi.AnsiCodes</span></code></a></p>
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiBack.BLACK">
-<code class="descname">BLACK</code><em class="property"> = 40</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.BLACK" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiBack.BLUE">
-<code class="descname">BLUE</code><em class="property"> = 44</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.BLUE" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiBack.CYAN">
-<code class="descname">CYAN</code><em class="property"> = 46</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.CYAN" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiBack.GREEN">
-<code class="descname">GREEN</code><em class="property"> = 42</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.GREEN" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiBack.LIGHTBLACK_EX">
-<code class="descname">LIGHTBLACK_EX</code><em class="property"> = 100</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.LIGHTBLACK_EX" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiBack.LIGHTBLUE_EX">
-<code class="descname">LIGHTBLUE_EX</code><em class="property"> = 104</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.LIGHTBLUE_EX" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiBack.LIGHTCYAN_EX">
-<code class="descname">LIGHTCYAN_EX</code><em class="property"> = 106</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.LIGHTCYAN_EX" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiBack.LIGHTGREEN_EX">
-<code class="descname">LIGHTGREEN_EX</code><em class="property"> = 102</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.LIGHTGREEN_EX" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiBack.LIGHTMAGENTA_EX">
-<code class="descname">LIGHTMAGENTA_EX</code><em class="property"> = 105</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.LIGHTMAGENTA_EX" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiBack.LIGHTRED_EX">
-<code class="descname">LIGHTRED_EX</code><em class="property"> = 101</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.LIGHTRED_EX" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiBack.LIGHTWHITE_EX">
-<code class="descname">LIGHTWHITE_EX</code><em class="property"> = 107</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.LIGHTWHITE_EX" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiBack.LIGHTYELLOW_EX">
-<code class="descname">LIGHTYELLOW_EX</code><em class="property"> = 103</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.LIGHTYELLOW_EX" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiBack.MAGENTA">
-<code class="descname">MAGENTA</code><em class="property"> = 45</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.MAGENTA" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiBack.RED">
-<code class="descname">RED</code><em class="property"> = 41</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.RED" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiBack.RESET">
-<code class="descname">RESET</code><em class="property"> = 49</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.RESET" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiBack.WHITE">
-<code class="descname">WHITE</code><em class="property"> = 47</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.WHITE" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiBack.YELLOW">
-<code class="descname">YELLOW</code><em class="property"> = 43</em><a class="headerlink" href="#src.colorama.ansi.AnsiBack.YELLOW" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.colorama.ansi.AnsiCodes">
-<em class="property">class </em><code class="descclassname">src.colorama.ansi.</code><code class="descname">AnsiCodes</code><a class="reference internal" href="../../_modules/src/colorama/ansi.html#AnsiCodes"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.AnsiCodes" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-</dd></dl>
-
-<dl class="class">
-<dt id="src.colorama.ansi.AnsiCursor">
-<em class="property">class </em><code class="descclassname">src.colorama.ansi.</code><code class="descname">AnsiCursor</code><a class="reference internal" href="../../_modules/src/colorama/ansi.html#AnsiCursor"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.AnsiCursor" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<dl class="method">
-<dt id="src.colorama.ansi.AnsiCursor.BACK">
-<code class="descname">BACK</code><span class="sig-paren">(</span><em>n=1</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansi.html#AnsiCursor.BACK"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.AnsiCursor.BACK" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.ansi.AnsiCursor.DOWN">
-<code class="descname">DOWN</code><span class="sig-paren">(</span><em>n=1</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansi.html#AnsiCursor.DOWN"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.AnsiCursor.DOWN" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.ansi.AnsiCursor.FORWARD">
-<code class="descname">FORWARD</code><span class="sig-paren">(</span><em>n=1</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansi.html#AnsiCursor.FORWARD"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.AnsiCursor.FORWARD" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.ansi.AnsiCursor.POS">
-<code class="descname">POS</code><span class="sig-paren">(</span><em>x=1</em>, <em>y=1</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansi.html#AnsiCursor.POS"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.AnsiCursor.POS" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.ansi.AnsiCursor.UP">
-<code class="descname">UP</code><span class="sig-paren">(</span><em>n=1</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansi.html#AnsiCursor.UP"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.AnsiCursor.UP" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.colorama.ansi.AnsiFore">
-<em class="property">class </em><code class="descclassname">src.colorama.ansi.</code><code class="descname">AnsiFore</code><a class="reference internal" href="../../_modules/src/colorama/ansi.html#AnsiFore"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.AnsiFore" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <a class="reference internal" href="#src.colorama.ansi.AnsiCodes" title="src.colorama.ansi.AnsiCodes"><code class="xref py py-class docutils literal"><span class="pre">src.colorama.ansi.AnsiCodes</span></code></a></p>
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiFore.BLACK">
-<code class="descname">BLACK</code><em class="property"> = 30</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.BLACK" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiFore.BLUE">
-<code class="descname">BLUE</code><em class="property"> = 34</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.BLUE" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiFore.CYAN">
-<code class="descname">CYAN</code><em class="property"> = 36</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.CYAN" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiFore.GREEN">
-<code class="descname">GREEN</code><em class="property"> = 32</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.GREEN" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiFore.LIGHTBLACK_EX">
-<code class="descname">LIGHTBLACK_EX</code><em class="property"> = 90</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.LIGHTBLACK_EX" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiFore.LIGHTBLUE_EX">
-<code class="descname">LIGHTBLUE_EX</code><em class="property"> = 94</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.LIGHTBLUE_EX" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiFore.LIGHTCYAN_EX">
-<code class="descname">LIGHTCYAN_EX</code><em class="property"> = 96</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.LIGHTCYAN_EX" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiFore.LIGHTGREEN_EX">
-<code class="descname">LIGHTGREEN_EX</code><em class="property"> = 92</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.LIGHTGREEN_EX" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiFore.LIGHTMAGENTA_EX">
-<code class="descname">LIGHTMAGENTA_EX</code><em class="property"> = 95</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.LIGHTMAGENTA_EX" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiFore.LIGHTRED_EX">
-<code class="descname">LIGHTRED_EX</code><em class="property"> = 91</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.LIGHTRED_EX" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiFore.LIGHTWHITE_EX">
-<code class="descname">LIGHTWHITE_EX</code><em class="property"> = 97</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.LIGHTWHITE_EX" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiFore.LIGHTYELLOW_EX">
-<code class="descname">LIGHTYELLOW_EX</code><em class="property"> = 93</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.LIGHTYELLOW_EX" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiFore.MAGENTA">
-<code class="descname">MAGENTA</code><em class="property"> = 35</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.MAGENTA" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiFore.RED">
-<code class="descname">RED</code><em class="property"> = 31</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.RED" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiFore.RESET">
-<code class="descname">RESET</code><em class="property"> = 39</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.RESET" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiFore.WHITE">
-<code class="descname">WHITE</code><em class="property"> = 37</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.WHITE" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiFore.YELLOW">
-<code class="descname">YELLOW</code><em class="property"> = 33</em><a class="headerlink" href="#src.colorama.ansi.AnsiFore.YELLOW" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.colorama.ansi.AnsiStyle">
-<em class="property">class </em><code class="descclassname">src.colorama.ansi.</code><code class="descname">AnsiStyle</code><a class="reference internal" href="../../_modules/src/colorama/ansi.html#AnsiStyle"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.AnsiStyle" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <a class="reference internal" href="#src.colorama.ansi.AnsiCodes" title="src.colorama.ansi.AnsiCodes"><code class="xref py py-class docutils literal"><span class="pre">src.colorama.ansi.AnsiCodes</span></code></a></p>
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiStyle.BRIGHT">
-<code class="descname">BRIGHT</code><em class="property"> = 1</em><a class="headerlink" href="#src.colorama.ansi.AnsiStyle.BRIGHT" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiStyle.DIM">
-<code class="descname">DIM</code><em class="property"> = 2</em><a class="headerlink" href="#src.colorama.ansi.AnsiStyle.DIM" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiStyle.NORMAL">
-<code class="descname">NORMAL</code><em class="property"> = 22</em><a class="headerlink" href="#src.colorama.ansi.AnsiStyle.NORMAL" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansi.AnsiStyle.RESET_ALL">
-<code class="descname">RESET_ALL</code><em class="property"> = 0</em><a class="headerlink" href="#src.colorama.ansi.AnsiStyle.RESET_ALL" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="function">
-<dt id="src.colorama.ansi.clear_line">
-<code class="descclassname">src.colorama.ansi.</code><code class="descname">clear_line</code><span class="sig-paren">(</span><em>mode=2</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansi.html#clear_line"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.clear_line" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.colorama.ansi.clear_screen">
-<code class="descclassname">src.colorama.ansi.</code><code class="descname">clear_screen</code><span class="sig-paren">(</span><em>mode=2</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansi.html#clear_screen"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.clear_screen" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.colorama.ansi.code_to_chars">
-<code class="descclassname">src.colorama.ansi.</code><code class="descname">code_to_chars</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansi.html#code_to_chars"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.code_to_chars" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.colorama.ansi.set_title">
-<code class="descclassname">src.colorama.ansi.</code><code class="descname">set_title</code><span class="sig-paren">(</span><em>title</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansi.html#set_title"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansi.set_title" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</div>
-<div class="section" id="module-src.colorama.ansitowin32">
-<span id="src-colorama-ansitowin32-module"></span><h2>src.colorama.ansitowin32 module<a class="headerlink" href="#module-src.colorama.ansitowin32" title="Permalink to this headline">¶</a></h2>
-<dl class="class">
-<dt id="src.colorama.ansitowin32.AnsiToWin32">
-<em class="property">class </em><code class="descclassname">src.colorama.ansitowin32.</code><code class="descname">AnsiToWin32</code><span class="sig-paren">(</span><em>wrapped</em>, <em>convert=None</em>, <em>strip=None</em>, <em>autoreset=False</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansitowin32.html#AnsiToWin32"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<p>Implements a 'write()' method which, on Windows, will strip ANSI character
-sequences from the text, and if outputting to a tty, will convert them into
-win32 function calls.</p>
-<dl class="attribute">
-<dt id="src.colorama.ansitowin32.AnsiToWin32.ANSI_CSI_RE">
-<code class="descname">ANSI_CSI_RE</code><em class="property"> = &lt;_sre.SRE_Pattern object&gt;</em><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.ANSI_CSI_RE" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.ansitowin32.AnsiToWin32.ANSI_OSC_RE">
-<code class="descname">ANSI_OSC_RE</code><em class="property"> = &lt;_sre.SRE_Pattern object&gt;</em><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.ANSI_OSC_RE" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.ansitowin32.AnsiToWin32.call_win32">
-<code class="descname">call_win32</code><span class="sig-paren">(</span><em>command</em>, <em>params</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansitowin32.html#AnsiToWin32.call_win32"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.call_win32" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.ansitowin32.AnsiToWin32.convert_ansi">
-<code class="descname">convert_ansi</code><span class="sig-paren">(</span><em>paramstring</em>, <em>command</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansitowin32.html#AnsiToWin32.convert_ansi"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.convert_ansi" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.ansitowin32.AnsiToWin32.convert_osc">
-<code class="descname">convert_osc</code><span class="sig-paren">(</span><em>text</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansitowin32.html#AnsiToWin32.convert_osc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.convert_osc" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.ansitowin32.AnsiToWin32.extract_params">
-<code class="descname">extract_params</code><span class="sig-paren">(</span><em>command</em>, <em>paramstring</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansitowin32.html#AnsiToWin32.extract_params"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.extract_params" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.ansitowin32.AnsiToWin32.get_win32_calls">
-<code class="descname">get_win32_calls</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansitowin32.html#AnsiToWin32.get_win32_calls"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.get_win32_calls" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.ansitowin32.AnsiToWin32.reset_all">
-<code class="descname">reset_all</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansitowin32.html#AnsiToWin32.reset_all"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.reset_all" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.ansitowin32.AnsiToWin32.should_wrap">
-<code class="descname">should_wrap</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansitowin32.html#AnsiToWin32.should_wrap"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.should_wrap" title="Permalink to this definition">¶</a></dt>
-<dd><p>True if this class is actually needed. If false, then the output
-stream will not be affected, nor will win32 calls be issued, so
-wrapping stdout is not actually required. This will generally be
-False on non-Windows platforms, unless optional functionality like
-autoreset has been requested using kwargs to init()</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.ansitowin32.AnsiToWin32.write">
-<code class="descname">write</code><span class="sig-paren">(</span><em>text</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansitowin32.html#AnsiToWin32.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.write" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.ansitowin32.AnsiToWin32.write_and_convert">
-<code class="descname">write_and_convert</code><span class="sig-paren">(</span><em>text</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansitowin32.html#AnsiToWin32.write_and_convert"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.write_and_convert" title="Permalink to this definition">¶</a></dt>
-<dd><p>Write the given text to our wrapped stream, stripping any ANSI
-sequences from the text, and optionally converting them into win32
-calls.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.ansitowin32.AnsiToWin32.write_plain_text">
-<code class="descname">write_plain_text</code><span class="sig-paren">(</span><em>text</em>, <em>start</em>, <em>end</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansitowin32.html#AnsiToWin32.write_plain_text"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.AnsiToWin32.write_plain_text" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.colorama.ansitowin32.StreamWrapper">
-<em class="property">class </em><code class="descclassname">src.colorama.ansitowin32.</code><code class="descname">StreamWrapper</code><span class="sig-paren">(</span><em>wrapped</em>, <em>converter</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansitowin32.html#StreamWrapper"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.StreamWrapper" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<p>Wraps a stream (such as stdout), acting as a transparent proxy for all
-attribute access apart from method 'write()', which is delegated to our
-Converter instance.</p>
-<dl class="method">
-<dt id="src.colorama.ansitowin32.StreamWrapper.write">
-<code class="descname">write</code><span class="sig-paren">(</span><em>text</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansitowin32.html#StreamWrapper.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.StreamWrapper.write" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="function">
-<dt id="src.colorama.ansitowin32.is_a_tty">
-<code class="descclassname">src.colorama.ansitowin32.</code><code class="descname">is_a_tty</code><span class="sig-paren">(</span><em>stream</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansitowin32.html#is_a_tty"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.is_a_tty" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.colorama.ansitowin32.is_stream_closed">
-<code class="descclassname">src.colorama.ansitowin32.</code><code class="descname">is_stream_closed</code><span class="sig-paren">(</span><em>stream</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/ansitowin32.html#is_stream_closed"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.ansitowin32.is_stream_closed" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</div>
-<div class="section" id="module-src.colorama.initialise">
-<span id="src-colorama-initialise-module"></span><h2>src.colorama.initialise module<a class="headerlink" href="#module-src.colorama.initialise" title="Permalink to this headline">¶</a></h2>
-<dl class="function">
-<dt id="src.colorama.initialise.colorama_text">
-<code class="descclassname">src.colorama.initialise.</code><code class="descname">colorama_text</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwds</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/initialise.html#colorama_text"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.initialise.colorama_text" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.colorama.initialise.deinit">
-<code class="descclassname">src.colorama.initialise.</code><code class="descname">deinit</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/initialise.html#deinit"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.initialise.deinit" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.colorama.initialise.init">
-<code class="descclassname">src.colorama.initialise.</code><code class="descname">init</code><span class="sig-paren">(</span><em>autoreset=False</em>, <em>convert=None</em>, <em>strip=None</em>, <em>wrap=True</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/initialise.html#init"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.initialise.init" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.colorama.initialise.reinit">
-<code class="descclassname">src.colorama.initialise.</code><code class="descname">reinit</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/initialise.html#reinit"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.initialise.reinit" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.colorama.initialise.reset_all">
-<code class="descclassname">src.colorama.initialise.</code><code class="descname">reset_all</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/initialise.html#reset_all"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.initialise.reset_all" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.colorama.initialise.wrap_stream">
-<code class="descclassname">src.colorama.initialise.</code><code class="descname">wrap_stream</code><span class="sig-paren">(</span><em>stream</em>, <em>convert</em>, <em>strip</em>, <em>autoreset</em>, <em>wrap</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/initialise.html#wrap_stream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.initialise.wrap_stream" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</div>
-<div class="section" id="module-src.colorama.win32">
-<span id="src-colorama-win32-module"></span><h2>src.colorama.win32 module<a class="headerlink" href="#module-src.colorama.win32" title="Permalink to this headline">¶</a></h2>
-<dl class="function">
-<dt id="src.colorama.win32.SetConsoleTextAttribute">
-<code class="descclassname">src.colorama.win32.</code><code class="descname">SetConsoleTextAttribute</code><span class="sig-paren">(</span><em>*_</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/win32.html#SetConsoleTextAttribute"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.win32.SetConsoleTextAttribute" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.colorama.win32.winapi_test">
-<code class="descclassname">src.colorama.win32.</code><code class="descname">winapi_test</code><span class="sig-paren">(</span><em>*_</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/win32.html#winapi_test"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.win32.winapi_test" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</div>
-<div class="section" id="module-src.colorama.winterm">
-<span id="src-colorama-winterm-module"></span><h2>src.colorama.winterm module<a class="headerlink" href="#module-src.colorama.winterm" title="Permalink to this headline">¶</a></h2>
-<dl class="class">
-<dt id="src.colorama.winterm.WinColor">
-<em class="property">class </em><code class="descclassname">src.colorama.winterm.</code><code class="descname">WinColor</code><a class="reference internal" href="../../_modules/src/colorama/winterm.html#WinColor"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinColor" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<dl class="attribute">
-<dt id="src.colorama.winterm.WinColor.BLACK">
-<code class="descname">BLACK</code><em class="property"> = 0</em><a class="headerlink" href="#src.colorama.winterm.WinColor.BLACK" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.winterm.WinColor.BLUE">
-<code class="descname">BLUE</code><em class="property"> = 1</em><a class="headerlink" href="#src.colorama.winterm.WinColor.BLUE" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.winterm.WinColor.CYAN">
-<code class="descname">CYAN</code><em class="property"> = 3</em><a class="headerlink" href="#src.colorama.winterm.WinColor.CYAN" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.winterm.WinColor.GREEN">
-<code class="descname">GREEN</code><em class="property"> = 2</em><a class="headerlink" href="#src.colorama.winterm.WinColor.GREEN" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.winterm.WinColor.GREY">
-<code class="descname">GREY</code><em class="property"> = 7</em><a class="headerlink" href="#src.colorama.winterm.WinColor.GREY" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.winterm.WinColor.MAGENTA">
-<code class="descname">MAGENTA</code><em class="property"> = 5</em><a class="headerlink" href="#src.colorama.winterm.WinColor.MAGENTA" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.winterm.WinColor.RED">
-<code class="descname">RED</code><em class="property"> = 4</em><a class="headerlink" href="#src.colorama.winterm.WinColor.RED" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.winterm.WinColor.YELLOW">
-<code class="descname">YELLOW</code><em class="property"> = 6</em><a class="headerlink" href="#src.colorama.winterm.WinColor.YELLOW" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.colorama.winterm.WinStyle">
-<em class="property">class </em><code class="descclassname">src.colorama.winterm.</code><code class="descname">WinStyle</code><a class="reference internal" href="../../_modules/src/colorama/winterm.html#WinStyle"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinStyle" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<dl class="attribute">
-<dt id="src.colorama.winterm.WinStyle.BRIGHT">
-<code class="descname">BRIGHT</code><em class="property"> = 8</em><a class="headerlink" href="#src.colorama.winterm.WinStyle.BRIGHT" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.winterm.WinStyle.BRIGHT_BACKGROUND">
-<code class="descname">BRIGHT_BACKGROUND</code><em class="property"> = 128</em><a class="headerlink" href="#src.colorama.winterm.WinStyle.BRIGHT_BACKGROUND" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.colorama.winterm.WinStyle.NORMAL">
-<code class="descname">NORMAL</code><em class="property"> = 0</em><a class="headerlink" href="#src.colorama.winterm.WinStyle.NORMAL" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.colorama.winterm.WinTerm">
-<em class="property">class </em><code class="descclassname">src.colorama.winterm.</code><code class="descname">WinTerm</code><a class="reference internal" href="../../_modules/src/colorama/winterm.html#WinTerm"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<dl class="method">
-<dt id="src.colorama.winterm.WinTerm.back">
-<code class="descname">back</code><span class="sig-paren">(</span><em>back=None</em>, <em>light=False</em>, <em>on_stderr=False</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/winterm.html#WinTerm.back"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.back" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.winterm.WinTerm.cursor_adjust">
-<code class="descname">cursor_adjust</code><span class="sig-paren">(</span><em>x</em>, <em>y</em>, <em>on_stderr=False</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/winterm.html#WinTerm.cursor_adjust"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.cursor_adjust" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.winterm.WinTerm.erase_line">
-<code class="descname">erase_line</code><span class="sig-paren">(</span><em>mode=0</em>, <em>on_stderr=False</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/winterm.html#WinTerm.erase_line"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.erase_line" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.winterm.WinTerm.erase_screen">
-<code class="descname">erase_screen</code><span class="sig-paren">(</span><em>mode=0</em>, <em>on_stderr=False</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/winterm.html#WinTerm.erase_screen"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.erase_screen" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.winterm.WinTerm.fore">
-<code class="descname">fore</code><span class="sig-paren">(</span><em>fore=None</em>, <em>light=False</em>, <em>on_stderr=False</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/winterm.html#WinTerm.fore"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.fore" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.winterm.WinTerm.get_attrs">
-<code class="descname">get_attrs</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/winterm.html#WinTerm.get_attrs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.get_attrs" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.winterm.WinTerm.get_position">
-<code class="descname">get_position</code><span class="sig-paren">(</span><em>handle</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/winterm.html#WinTerm.get_position"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.get_position" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.winterm.WinTerm.reset_all">
-<code class="descname">reset_all</code><span class="sig-paren">(</span><em>on_stderr=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/winterm.html#WinTerm.reset_all"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.reset_all" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.winterm.WinTerm.set_attrs">
-<code class="descname">set_attrs</code><span class="sig-paren">(</span><em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/winterm.html#WinTerm.set_attrs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.set_attrs" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.winterm.WinTerm.set_console">
-<code class="descname">set_console</code><span class="sig-paren">(</span><em>attrs=None</em>, <em>on_stderr=False</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/winterm.html#WinTerm.set_console"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.set_console" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.winterm.WinTerm.set_cursor_position">
-<code class="descname">set_cursor_position</code><span class="sig-paren">(</span><em>position=None</em>, <em>on_stderr=False</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/winterm.html#WinTerm.set_cursor_position"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.set_cursor_position" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.winterm.WinTerm.set_title">
-<code class="descname">set_title</code><span class="sig-paren">(</span><em>title</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/winterm.html#WinTerm.set_title"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.set_title" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.colorama.winterm.WinTerm.style">
-<code class="descname">style</code><span class="sig-paren">(</span><em>style=None</em>, <em>on_stderr=False</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/colorama/winterm.html#WinTerm.style"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.colorama.winterm.WinTerm.style" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-</div>
-<div class="section" id="module-src.colorama">
-<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-src.colorama" title="Permalink to this headline">¶</a></h2>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="../../index.html">
-              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="../../index.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">src.colorama package</a><ul>
-<li><a class="reference internal" href="#submodules">Submodules</a></li>
-<li><a class="reference internal" href="#module-src.colorama.ansi">src.colorama.ansi module</a></li>
-<li><a class="reference internal" href="#module-src.colorama.ansitowin32">src.colorama.ansitowin32 module</a></li>
-<li><a class="reference internal" href="#module-src.colorama.initialise">src.colorama.initialise module</a></li>
-<li><a class="reference internal" href="#module-src.colorama.win32">src.colorama.win32 module</a></li>
-<li><a class="reference internal" href="#module-src.colorama.winterm">src.colorama.winterm module</a></li>
-<li><a class="reference internal" href="#module-src.colorama">Module contents</a></li>
-</ul>
-</li>
-</ul>
-<div class="relations">
-<h3>Related Topics</h3>
-<ul>
-  <li><a href="../../index.html">Documentation overview</a><ul>
-  <li><a href="modules.html">src</a><ul>
-  <li><a href="src.html">src package</a><ul>
-      <li>Previous: <a href="src.html" title="previous chapter">src package</a></li>
-      <li>Next: <a href="src.example.html" title="next chapter">src.example package</a></li>
-  </ul></li>
-  </ul></li>
-  </ul></li>
-</ul>
-</div>
-  <div role="note" aria-label="source link">
-    <h3>This Page</h3>
-    <ul class="this-page-menu">
-      <li><a href="../../_sources/commands/apidoc/src.colorama.txt"
-            rel="nofollow">Show Source</a></li>
-    </ul>
-   </div>
-<div id="searchbox" style="display: none" role="search">
-  <h3>Quick search</h3>
-    <form class="search" action="../../search.html" method="get">
-      <div><input type="text" name="q" /></div>
-      <div><input type="submit" value="Go" /></div>
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="footer">
-      &copy;2018, CEA.
-      
-      |
-      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
-      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
-      
-      |
-      <a href="../../_sources/commands/apidoc/src.colorama.txt"
-          rel="nofollow">Page source</a>
-    </div>
-
-    
-
-    
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/build/html/commands/apidoc/src.example.html b/doc/build/html/commands/apidoc/src.example.html
deleted file mode 100644 (file)
index 10241dc..0000000
+++ /dev/null
@@ -1,208 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>src.example package &#8212; salomeTools 5.0.0dev documentation</title>
-    
-    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
-    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
-    
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '../../',
-        VERSION:     '5.0.0dev',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="../../_static/jquery.js"></script>
-    <script type="text/javascript" src="../../_static/underscore.js"></script>
-    <script type="text/javascript" src="../../_static/doctools.js"></script>
-    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
-    <link rel="index" title="Index" href="../../genindex.html" />
-    <link rel="search" title="Search" href="../../search.html" />
-    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
-    <link rel="up" title="src package" href="src.html" />
-    <link rel="next" title="Release notes" href="../../release_notes/release_notes_5.0.0.html" />
-    <link rel="prev" title="src.colorama package" href="src.colorama.html" />
-   
-  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
-  
-  
-  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
-
-  </head>
-  <body role="document">
-  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body" role="main">
-            
-  <div class="section" id="src-example-package">
-<h1>src.example package<a class="headerlink" href="#src-example-package" title="Permalink to this headline">¶</a></h1>
-<div class="section" id="submodules">
-<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2>
-</div>
-<div class="section" id="module-src.example.essai_logging_1">
-<span id="src-example-essai-logging-1-module"></span><h2>src.example.essai_logging_1 module<a class="headerlink" href="#module-src.example.essai_logging_1" title="Permalink to this headline">¶</a></h2>
-<p><a class="reference external" href="http://sametmax.com/ecrire-des-logs-en-python/">http://sametmax.com/ecrire-des-logs-en-python/</a>
-<a class="reference external" href="https://docs.python.org/3/library/time.html#time.strftime">https://docs.python.org/3/library/time.html#time.strftime</a></p>
-<p>essai utilisation logger plusieurs handler format different</p>
-<blockquote>
-<div><p>/usr/lib/python2.7/logging/__init__.pyc</p>
-<p>init MyLogger, fmt='%(asctime)s :: %(levelname)-8s :: %(message)s', level='20'</p>
-<p>2018-03-11 18:51:21 :: INFO     :: test logger info
-2018-03-11 18:51:21 :: WARNING  :: test logger warning
-2018-03-11 18:51:21 :: ERROR    :: test logger error
-2018-03-11 18:51:21 :: CRITICAL :: test logger critical</p>
-<p>init MyLogger, fmt='None', level='10'</p>
-<p>2018-03-11 18:51:21 :: DEBUG    :: test logger debug
-test logger debug
-2018-03-11 18:51:21 :: INFO     :: test logger info
-test logger info
-2018-03-11 18:51:21 :: WARNING  :: test logger warning
-test logger warning
-2018-03-11 18:51:21 :: ERROR    :: test logger error
-test logger error
-2018-03-11 18:51:21 :: CRITICAL :: test logger critical
-test logger critical</p>
-</div></blockquote>
-<dl class="function">
-<dt id="src.example.essai_logging_1.getMyLogger">
-<code class="descclassname">src.example.essai_logging_1.</code><code class="descname">getMyLogger</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/example/essai_logging_1.html#getMyLogger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.example.essai_logging_1.getMyLogger" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.example.essai_logging_1.initMyLogger">
-<code class="descclassname">src.example.essai_logging_1.</code><code class="descname">initMyLogger</code><span class="sig-paren">(</span><em>fmt=None</em>, <em>level=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/example/essai_logging_1.html#initMyLogger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.example.essai_logging_1.initMyLogger" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.example.essai_logging_1.testLogger1">
-<code class="descclassname">src.example.essai_logging_1.</code><code class="descname">testLogger1</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/example/essai_logging_1.html#testLogger1"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.example.essai_logging_1.testLogger1" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</div>
-<div class="section" id="module-src.example.essai_logging_2">
-<span id="src-example-essai-logging-2-module"></span><h2>src.example.essai_logging_2 module<a class="headerlink" href="#module-src.example.essai_logging_2" title="Permalink to this headline">¶</a></h2>
-<p><a class="reference external" href="http://sametmax.com/ecrire-des-logs-en-python/">http://sametmax.com/ecrire-des-logs-en-python/</a>
-<a class="reference external" href="https://docs.python.org/3/library/time.html#time.strftime">https://docs.python.org/3/library/time.html#time.strftime</a></p>
-<p>essai utilisation logger un handler format different 
-sur info() pas de format et su other format</p>
-<blockquote>
-<div><p>/usr/lib/python2.7/logging/__init__.pyc</p>
-<p>init MyLogger, fmt='%(asctime)s :: %(levelname)-8s :: %(message)s', level='20'</p>
-<p>test logger info
-2018-03-11 18:51:51 :: WARNING  :: test logger warning
-2018-03-11 18:51:51 :: ERROR    :: test logger error
-2018-03-11 18:51:51 :: CRITICAL :: test logger critical</p>
-</div></blockquote>
-<dl class="class">
-<dt id="src.example.essai_logging_2.MyFormatter">
-<em class="property">class </em><code class="descclassname">src.example.essai_logging_2.</code><code class="descname">MyFormatter</code><span class="sig-paren">(</span><em>fmt=None</em>, <em>datefmt=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/example/essai_logging_2.html#MyFormatter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.example.essai_logging_2.MyFormatter" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">logging.Formatter</span></code></p>
-<dl class="method">
-<dt id="src.example.essai_logging_2.MyFormatter.format">
-<code class="descname">format</code><span class="sig-paren">(</span><em>record</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/example/essai_logging_2.html#MyFormatter.format"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.example.essai_logging_2.MyFormatter.format" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="function">
-<dt id="src.example.essai_logging_2.getMyLogger">
-<code class="descclassname">src.example.essai_logging_2.</code><code class="descname">getMyLogger</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/example/essai_logging_2.html#getMyLogger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.example.essai_logging_2.getMyLogger" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.example.essai_logging_2.initMyLogger">
-<code class="descclassname">src.example.essai_logging_2.</code><code class="descname">initMyLogger</code><span class="sig-paren">(</span><em>fmt=None</em>, <em>level=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/example/essai_logging_2.html#initMyLogger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.example.essai_logging_2.initMyLogger" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.example.essai_logging_2.testLogger1">
-<code class="descclassname">src.example.essai_logging_2.</code><code class="descname">testLogger1</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/example/essai_logging_2.html#testLogger1"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.example.essai_logging_2.testLogger1" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</div>
-<div class="section" id="module-src.example">
-<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-src.example" title="Permalink to this headline">¶</a></h2>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="../../index.html">
-              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="../../index.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">src.example package</a><ul>
-<li><a class="reference internal" href="#submodules">Submodules</a></li>
-<li><a class="reference internal" href="#module-src.example.essai_logging_1">src.example.essai_logging_1 module</a></li>
-<li><a class="reference internal" href="#module-src.example.essai_logging_2">src.example.essai_logging_2 module</a></li>
-<li><a class="reference internal" href="#module-src.example">Module contents</a></li>
-</ul>
-</li>
-</ul>
-<div class="relations">
-<h3>Related Topics</h3>
-<ul>
-  <li><a href="../../index.html">Documentation overview</a><ul>
-  <li><a href="modules.html">src</a><ul>
-  <li><a href="src.html">src package</a><ul>
-      <li>Previous: <a href="src.colorama.html" title="previous chapter">src.colorama package</a></li>
-      <li>Next: <a href="../../release_notes/release_notes_5.0.0.html" title="next chapter">Release notes</a></li>
-  </ul></li>
-  </ul></li>
-  </ul></li>
-</ul>
-</div>
-  <div role="note" aria-label="source link">
-    <h3>This Page</h3>
-    <ul class="this-page-menu">
-      <li><a href="../../_sources/commands/apidoc/src.example.txt"
-            rel="nofollow">Show Source</a></li>
-    </ul>
-   </div>
-<div id="searchbox" style="display: none" role="search">
-  <h3>Quick search</h3>
-    <form class="search" action="../../search.html" method="get">
-      <div><input type="text" name="q" /></div>
-      <div><input type="submit" value="Go" /></div>
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="footer">
-      &copy;2018, CEA.
-      
-      |
-      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
-      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
-      
-      |
-      <a href="../../_sources/commands/apidoc/src.example.txt"
-          rel="nofollow">Page source</a>
-    </div>
-
-    
-
-    
-  </body>
-</html>
\ No newline at end of file
diff --git a/doc/build/html/commands/apidoc/src.html b/doc/build/html/commands/apidoc/src.html
deleted file mode 100644 (file)
index 9b90d7f..0000000
+++ /dev/null
@@ -1,5612 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>src package &#8212; salomeTools 5.0.0dev documentation</title>
-    
-    <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
-    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
-    
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '../../',
-        VERSION:     '5.0.0dev',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="../../_static/jquery.js"></script>
-    <script type="text/javascript" src="../../_static/underscore.js"></script>
-    <script type="text/javascript" src="../../_static/doctools.js"></script>
-    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
-    <link rel="index" title="Index" href="../../genindex.html" />
-    <link rel="search" title="Search" href="../../search.html" />
-    <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
-    <link rel="up" title="src" href="modules.html" />
-    <link rel="next" title="src.colorama package" href="src.colorama.html" />
-    <link rel="prev" title="src" href="modules.html" />
-   
-  <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
-  
-  
-  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
-
-  </head>
-  <body role="document">
-  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body" role="main">
-            
-  <div class="section" id="src-package">
-<h1>src package<a class="headerlink" href="#src-package" title="Permalink to this headline">¶</a></h1>
-<div class="section" id="subpackages">
-<h2>Subpackages<a class="headerlink" href="#subpackages" title="Permalink to this headline">¶</a></h2>
-<div class="toctree-wrapper compound">
-<ul>
-<li class="toctree-l1"><a class="reference internal" href="src.colorama.html">src.colorama package</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="src.colorama.html#submodules">Submodules</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.colorama.html#module-src.colorama.ansi">src.colorama.ansi module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.colorama.html#module-src.colorama.ansitowin32">src.colorama.ansitowin32 module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.colorama.html#module-src.colorama.initialise">src.colorama.initialise module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.colorama.html#module-src.colorama.win32">src.colorama.win32 module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.colorama.html#module-src.colorama.winterm">src.colorama.winterm module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.colorama.html#module-src.colorama">Module contents</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="src.example.html">src.example package</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="src.example.html#submodules">Submodules</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.example.html#module-src.example.essai_logging_1">src.example.essai_logging_1 module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.example.html#module-src.example.essai_logging_2">src.example.essai_logging_2 module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="src.example.html#module-src.example">Module contents</a></li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-<div class="section" id="submodules">
-<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2>
-</div>
-<div class="section" id="module-src.ElementTree">
-<span id="src-elementtree-module"></span><h2>src.ElementTree module<a class="headerlink" href="#module-src.ElementTree" title="Permalink to this headline">¶</a></h2>
-<dl class="function">
-<dt id="src.ElementTree.Comment">
-<code class="descclassname">src.ElementTree.</code><code class="descname">Comment</code><span class="sig-paren">(</span><em>text=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#Comment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.Comment" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.ElementTree.dump">
-<code class="descclassname">src.ElementTree.</code><code class="descname">dump</code><span class="sig-paren">(</span><em>elem</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#dump"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.dump" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.ElementTree.Element">
-<code class="descclassname">src.ElementTree.</code><code class="descname">Element</code><span class="sig-paren">(</span><em>tag</em>, <em>attrib={}</em>, <em>**extra</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#Element"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.Element" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="class">
-<dt id="src.ElementTree.ElementTree">
-<em class="property">class </em><code class="descclassname">src.ElementTree.</code><code class="descname">ElementTree</code><span class="sig-paren">(</span><em>element=None</em>, <em>file=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#ElementTree"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.ElementTree" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="method">
-<dt id="src.ElementTree.ElementTree.find">
-<code class="descname">find</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#ElementTree.find"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.ElementTree.find" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.ElementTree.ElementTree.findall">
-<code class="descname">findall</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#ElementTree.findall"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.ElementTree.findall" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.ElementTree.ElementTree.findtext">
-<code class="descname">findtext</code><span class="sig-paren">(</span><em>path</em>, <em>default=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#ElementTree.findtext"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.ElementTree.findtext" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.ElementTree.ElementTree.getiterator">
-<code class="descname">getiterator</code><span class="sig-paren">(</span><em>tag=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#ElementTree.getiterator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.ElementTree.getiterator" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.ElementTree.ElementTree.getroot">
-<code class="descname">getroot</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#ElementTree.getroot"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.ElementTree.getroot" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.ElementTree.ElementTree.parse">
-<code class="descname">parse</code><span class="sig-paren">(</span><em>source</em>, <em>parser=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#ElementTree.parse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.ElementTree.parse" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.ElementTree.ElementTree.write">
-<code class="descname">write</code><span class="sig-paren">(</span><em>file</em>, <em>encoding='us-ascii'</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#ElementTree.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.ElementTree.write" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="function">
-<dt id="src.ElementTree.fromstring">
-<code class="descclassname">src.ElementTree.</code><code class="descname">fromstring</code><span class="sig-paren">(</span><em>text</em><span class="sig-paren">)</span><a class="headerlink" href="#src.ElementTree.fromstring" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.ElementTree.iselement">
-<code class="descclassname">src.ElementTree.</code><code class="descname">iselement</code><span class="sig-paren">(</span><em>element</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#iselement"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.iselement" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="class">
-<dt id="src.ElementTree.iterparse">
-<em class="property">class </em><code class="descclassname">src.ElementTree.</code><code class="descname">iterparse</code><span class="sig-paren">(</span><em>source</em>, <em>events=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#iterparse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.iterparse" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="method">
-<dt id="src.ElementTree.iterparse.next">
-<code class="descname">next</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#iterparse.next"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.iterparse.next" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="function">
-<dt id="src.ElementTree.parse">
-<code class="descclassname">src.ElementTree.</code><code class="descname">parse</code><span class="sig-paren">(</span><em>source</em>, <em>parser=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#parse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.parse" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.ElementTree.PI">
-<code class="descclassname">src.ElementTree.</code><code class="descname">PI</code><span class="sig-paren">(</span><em>target</em>, <em>text=None</em><span class="sig-paren">)</span><a class="headerlink" href="#src.ElementTree.PI" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.ElementTree.ProcessingInstruction">
-<code class="descclassname">src.ElementTree.</code><code class="descname">ProcessingInstruction</code><span class="sig-paren">(</span><em>target</em>, <em>text=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#ProcessingInstruction"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.ProcessingInstruction" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="class">
-<dt id="src.ElementTree.QName">
-<em class="property">class </em><code class="descclassname">src.ElementTree.</code><code class="descname">QName</code><span class="sig-paren">(</span><em>text_or_uri</em>, <em>tag=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#QName"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.QName" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.ElementTree.SubElement">
-<code class="descclassname">src.ElementTree.</code><code class="descname">SubElement</code><span class="sig-paren">(</span><em>parent</em>, <em>tag</em>, <em>attrib={}</em>, <em>**extra</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#SubElement"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.SubElement" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.ElementTree.tostring">
-<code class="descclassname">src.ElementTree.</code><code class="descname">tostring</code><span class="sig-paren">(</span><em>element</em>, <em>encoding=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#tostring"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.tostring" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="class">
-<dt id="src.ElementTree.TreeBuilder">
-<em class="property">class </em><code class="descclassname">src.ElementTree.</code><code class="descname">TreeBuilder</code><span class="sig-paren">(</span><em>element_factory=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#TreeBuilder"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.TreeBuilder" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="method">
-<dt id="src.ElementTree.TreeBuilder.close">
-<code class="descname">close</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#TreeBuilder.close"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.TreeBuilder.close" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.ElementTree.TreeBuilder.data">
-<code class="descname">data</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#TreeBuilder.data"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.TreeBuilder.data" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.ElementTree.TreeBuilder.end">
-<code class="descname">end</code><span class="sig-paren">(</span><em>tag</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#TreeBuilder.end"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.TreeBuilder.end" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.ElementTree.TreeBuilder.start">
-<code class="descname">start</code><span class="sig-paren">(</span><em>tag</em>, <em>attrs</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#TreeBuilder.start"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.TreeBuilder.start" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="function">
-<dt id="src.ElementTree.XML">
-<code class="descclassname">src.ElementTree.</code><code class="descname">XML</code><span class="sig-paren">(</span><em>text</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#XML"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.XML" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="class">
-<dt id="src.ElementTree.XMLTreeBuilder">
-<em class="property">class </em><code class="descclassname">src.ElementTree.</code><code class="descname">XMLTreeBuilder</code><span class="sig-paren">(</span><em>html=0</em>, <em>target=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#XMLTreeBuilder"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.XMLTreeBuilder" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="method">
-<dt id="src.ElementTree.XMLTreeBuilder.close">
-<code class="descname">close</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#XMLTreeBuilder.close"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.XMLTreeBuilder.close" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.ElementTree.XMLTreeBuilder.doctype">
-<code class="descname">doctype</code><span class="sig-paren">(</span><em>name</em>, <em>pubid</em>, <em>system</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#XMLTreeBuilder.doctype"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.XMLTreeBuilder.doctype" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.ElementTree.XMLTreeBuilder.feed">
-<code class="descname">feed</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/ElementTree.html#XMLTreeBuilder.feed"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.ElementTree.XMLTreeBuilder.feed" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-</div>
-<div class="section" id="module-src.architecture">
-<span id="src-architecture-module"></span><h2>src.architecture module<a class="headerlink" href="#module-src.architecture" title="Permalink to this headline">¶</a></h2>
-<p>In this file : all the stuff that can change with the architecture 
-on which SAT is running</p>
-<dl class="function">
-<dt id="src.architecture.get_distrib_version">
-<code class="descclassname">src.architecture.</code><code class="descname">get_distrib_version</code><span class="sig-paren">(</span><em>distrib</em>, <em>codes</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/architecture.html#get_distrib_version"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.architecture.get_distrib_version" title="Permalink to this definition">¶</a></dt>
-<dd><p>Gets the version of the distribution</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>str</strong> (<em>distrib</em>) -- The distribution on which the version will be found.</li>
-<li><strong>L{Mapping}</strong> (<em>codes</em>) -- The map containing distribution correlation table.</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The version of the distribution on which salomeTools is running, 
-regarding the distribution correlation table contained in codes 
-variable.</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">str</p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.architecture.get_distribution">
-<code class="descclassname">src.architecture.</code><code class="descname">get_distribution</code><span class="sig-paren">(</span><em>codes</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/architecture.html#get_distribution"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.architecture.get_distribution" title="Permalink to this definition">¶</a></dt>
-<dd><p>Gets the code for the distribution</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>L{Mapping}</strong> (<em>codes</em>) -- The map containing distribution correlation table.</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The distribution on which salomeTools is running, regarding the 
-distribution correlation table contained in codes variable.</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">str</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.architecture.get_nb_proc">
-<code class="descclassname">src.architecture.</code><code class="descname">get_nb_proc</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/architecture.html#get_nb_proc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.architecture.get_nb_proc" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Gets the number of processors of the machine </dt>
-<dd>on which salomeTools is running.</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">the number of processors.</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body">str</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.architecture.get_python_version">
-<code class="descclassname">src.architecture.</code><code class="descname">get_python_version</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/architecture.html#get_python_version"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.architecture.get_python_version" title="Permalink to this definition">¶</a></dt>
-<dd><p>Gets the version of the running python.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">the version of the running python.</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body">str</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.architecture.get_user">
-<code class="descclassname">src.architecture.</code><code class="descname">get_user</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/architecture.html#get_user"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.architecture.get_user" title="Permalink to this definition">¶</a></dt>
-<dd><p>method that gets the username that launched sat</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">str</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.architecture.is_windows">
-<code class="descclassname">src.architecture.</code><code class="descname">is_windows</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/architecture.html#is_windows"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.architecture.is_windows" title="Permalink to this definition">¶</a></dt>
-<dd><p>method that checks windows OS</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-</div>
-<div class="section" id="module-src.catchAll">
-<span id="src-catchall-module"></span><h2>src.catchAll module<a class="headerlink" href="#module-src.catchAll" title="Permalink to this headline">¶</a></h2>
-<p>define class as a simple dictionary with keys
-with pretty print __str__ and __repr__ (indented as recursive)
-and jsonDumps()</p>
-<dl class="docutils">
-<dt>usage:</dt>
-<dd>&gt;&gt; import catchAll as CAA
-&gt;&gt; a = CAA.CatchAll()
-&gt;&gt; a.tintin = &quot;reporter&quot;
-&gt;&gt; a.milou = &quot;dog&quot;
-&gt;&gt; print(&quot;a=%s&quot; % a)
-&gt;&gt; print(&quot;tintin: %s&quot; % a.tintin)</dd>
-</dl>
-<dl class="class">
-<dt id="src.catchAll.CatchAll">
-<em class="property">class </em><code class="descclassname">src.catchAll.</code><code class="descname">CatchAll</code><a class="reference internal" href="../../_modules/src/catchAll.html#CatchAll"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.catchAll.CatchAll" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<p>class as simple dynamic dictionary 
-with predefined keys as properties in
-inherited classes through __init__ method. Or NOT. 
-with pretty print __str__ and __repr__ (indented as recursive)
-with jsonDumps()</p>
-<p>usage:</p>
-<p>&gt;&gt; import catchAll as CAA
-&gt;&gt; a = CAA.CatchAll()
-&gt;&gt; a.tintin = &quot;reporter&quot;
-&gt;&gt; a.milou = &quot;dog&quot;
-&gt;&gt; print(&quot;a=%s&quot; % a)
-&gt;&gt; print(&quot;tintin: %s&quot; % a.tintin)</p>
-<p>as</p>
-<p>&gt;&gt; a = {}
-&gt;&gt; a[&quot;tintin&quot;] = &quot;reporter&quot;
-&gt;&gt; a[&quot;milou&quot;] = &quot;dog&quot;
-&gt;&gt; print(&quot;tintin: %s&quot; % a[&quot;tintin&quot;]</p>
-<dl class="method">
-<dt id="src.catchAll.CatchAll.jsonDumps">
-<code class="descname">jsonDumps</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/catchAll.html#CatchAll.jsonDumps"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.catchAll.CatchAll.jsonDumps" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="function">
-<dt id="src.catchAll.dumper">
-<code class="descclassname">src.catchAll.</code><code class="descname">dumper</code><span class="sig-paren">(</span><em>obj</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/catchAll.html#dumper"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.catchAll.dumper" title="Permalink to this definition">¶</a></dt>
-<dd><p>to json explore subclass object as dict</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.catchAll.dumperType">
-<code class="descclassname">src.catchAll.</code><code class="descname">dumperType</code><span class="sig-paren">(</span><em>obj</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/catchAll.html#dumperType"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.catchAll.dumperType" title="Permalink to this definition">¶</a></dt>
-<dd><p>to get a &quot;_type&quot; to trace json subclass object,
-but ignore all attributes begining with '_'</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.catchAll.jsonDumps">
-<code class="descclassname">src.catchAll.</code><code class="descname">jsonDumps</code><span class="sig-paren">(</span><em>obj</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/catchAll.html#jsonDumps"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.catchAll.jsonDumps" title="Permalink to this definition">¶</a></dt>
-<dd><p>to get direct default jsonDumps method</p>
-</dd></dl>
-
-</div>
-<div class="section" id="module-src.coloringSat">
-<span id="src-coloringsat-module"></span><h2>src.coloringSat module<a class="headerlink" href="#module-src.coloringSat" title="Permalink to this headline">¶</a></h2>
-<p>simple tagging as '&lt;color&gt;' for simple coloring log messages on terminal(s)
-window or unix or ios using backend colorama</p>
-<p>using '&lt;color&gt;' because EZ human readable
-so '&lt;color&gt;' are not supposed existing in log message
-&quot;{}&quot;.format() is not choosen because &quot;{}&quot; are present
-in log messages of contents of python dict (as JSON) etc.</p>
-<p>example:
-&gt;&gt; log(&quot;this is in &lt;green&gt;color green&lt;reset&gt;, OK is in blue: &lt;blue&gt;OK?&quot;)</p>
-<dl class="class">
-<dt id="src.coloringSat.ColoringStream">
-<em class="property">class </em><code class="descclassname">src.coloringSat.</code><code class="descname">ColoringStream</code><a class="reference internal" href="../../_modules/src/coloringSat.html#ColoringStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.coloringSat.ColoringStream" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<p>write my stream class
-only write and flush are used for the streaming
-<a class="reference external" href="https://docs.python.org/2/library/logging.handlers.html">https://docs.python.org/2/library/logging.handlers.html</a>
-<a class="reference external" href="https://stackoverflow.com/questions/31999627/storing-logger-messages-in-a-string">https://stackoverflow.com/questions/31999627/storing-logger-messages-in-a-string</a></p>
-<dl class="method">
-<dt id="src.coloringSat.ColoringStream.flush">
-<code class="descname">flush</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/coloringSat.html#ColoringStream.flush"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.coloringSat.ColoringStream.flush" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.coloringSat.ColoringStream.write">
-<code class="descname">write</code><span class="sig-paren">(</span><em>astr</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/coloringSat.html#ColoringStream.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.coloringSat.ColoringStream.write" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="function">
-<dt id="src.coloringSat.cleanColors">
-<code class="descclassname">src.coloringSat.</code><code class="descname">cleanColors</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/coloringSat.html#cleanColors"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.coloringSat.cleanColors" title="Permalink to this definition">¶</a></dt>
-<dd><p>clean the message of color tags '&lt;red&gt; ...</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.coloringSat.indent">
-<code class="descclassname">src.coloringSat.</code><code class="descname">indent</code><span class="sig-paren">(</span><em>msg</em>, <em>nb</em>, <em>car=' '</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/coloringSat.html#indent"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.coloringSat.indent" title="Permalink to this definition">¶</a></dt>
-<dd><p>indent nb car (spaces) multi lines message except first one</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.coloringSat.log">
-<code class="descclassname">src.coloringSat.</code><code class="descname">log</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/coloringSat.html#log"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.coloringSat.log" title="Permalink to this definition">¶</a></dt>
-<dd><p>elementary log stdout for debug if _verbose</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.coloringSat.replace">
-<code class="descclassname">src.coloringSat.</code><code class="descname">replace</code><span class="sig-paren">(</span><em>msg</em>, <em>tags</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/coloringSat.html#replace"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.coloringSat.replace" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.coloringSat.toColor">
-<code class="descclassname">src.coloringSat.</code><code class="descname">toColor</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/coloringSat.html#toColor"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.coloringSat.toColor" title="Permalink to this definition">¶</a></dt>
-<dd><p>automatically clean the message of color tags '&lt;red&gt; ... 
-if the terminal output stdout is redirected by user
-if not, replace tags with ansi color codes</p>
-<p>example:
-&gt;&gt; sat compile SALOME &gt; log.txt</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.coloringSat.toColor_AnsiToWin32">
-<code class="descclassname">src.coloringSat.</code><code class="descname">toColor_AnsiToWin32</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/coloringSat.html#toColor_AnsiToWin32"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.coloringSat.toColor_AnsiToWin32" title="Permalink to this definition">¶</a></dt>
-<dd><p>for test debug no wrapping</p>
-</dd></dl>
-
-</div>
-<div class="section" id="module-src.compilation">
-<span id="src-compilation-module"></span><h2>src.compilation module<a class="headerlink" href="#module-src.compilation" title="Permalink to this headline">¶</a></h2>
-<dl class="class">
-<dt id="src.compilation.Builder">
-<em class="property">class </em><code class="descclassname">src.compilation.</code><code class="descname">Builder</code><span class="sig-paren">(</span><em>config</em>, <em>logger</em>, <em>product_info</em>, <em>options=OptResult(   )</em>, <em>check_src=True</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/compilation.html#Builder"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder" title="Permalink to this definition">¶</a></dt>
-<dd><p>Class to handle all construction steps, like cmake, configure, make, ...</p>
-<dl class="method">
-<dt id="src.compilation.Builder.build_configure">
-<code class="descname">build_configure</code><span class="sig-paren">(</span><em>options=''</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/compilation.html#Builder.build_configure"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.build_configure" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.compilation.Builder.check">
-<code class="descname">check</code><span class="sig-paren">(</span><em>command=''</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/compilation.html#Builder.check"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.check" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.compilation.Builder.cmake">
-<code class="descname">cmake</code><span class="sig-paren">(</span><em>options=''</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/compilation.html#Builder.cmake"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.cmake" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.compilation.Builder.complete_environment">
-<code class="descname">complete_environment</code><span class="sig-paren">(</span><em>make_options</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/compilation.html#Builder.complete_environment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.complete_environment" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.compilation.Builder.configure">
-<code class="descname">configure</code><span class="sig-paren">(</span><em>options=''</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/compilation.html#Builder.configure"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.configure" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.compilation.Builder.do_batch_script_build">
-<code class="descname">do_batch_script_build</code><span class="sig-paren">(</span><em>script</em>, <em>nb_proc</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/compilation.html#Builder.do_batch_script_build"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.do_batch_script_build" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.compilation.Builder.do_default_build">
-<code class="descname">do_default_build</code><span class="sig-paren">(</span><em>build_conf_options=''</em>, <em>configure_options=''</em>, <em>show_warning=True</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/compilation.html#Builder.do_default_build"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.do_default_build" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.compilation.Builder.do_python_script_build">
-<code class="descname">do_python_script_build</code><span class="sig-paren">(</span><em>script</em>, <em>nb_proc</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/compilation.html#Builder.do_python_script_build"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.do_python_script_build" title="Permalink to this definition">¶</a></dt>
-<dd><p>Performs a build with a script.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.compilation.Builder.do_script_build">
-<code class="descname">do_script_build</code><span class="sig-paren">(</span><em>script</em>, <em>number_of_proc=0</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/compilation.html#Builder.do_script_build"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.do_script_build" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.compilation.Builder.hack_libtool">
-<code class="descname">hack_libtool</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/compilation.html#Builder.hack_libtool"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.hack_libtool" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.compilation.Builder.install">
-<code class="descname">install</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/compilation.html#Builder.install"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.install" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.compilation.Builder.log">
-<code class="descname">log</code><span class="sig-paren">(</span><em>text</em>, <em>level</em>, <em>showInfo=True</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/compilation.html#Builder.log"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.log" title="Permalink to this definition">¶</a></dt>
-<dd><p>Shortcut method to log in log file.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.compilation.Builder.log_command">
-<code class="descname">log_command</code><span class="sig-paren">(</span><em>command</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/compilation.html#Builder.log_command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.log_command" title="Permalink to this definition">¶</a></dt>
-<dd><p>Shortcut method to log a command.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.compilation.Builder.make">
-<code class="descname">make</code><span class="sig-paren">(</span><em>nb_proc</em>, <em>make_opt=''</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/compilation.html#Builder.make"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.make" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.compilation.Builder.prepare">
-<code class="descname">prepare</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/compilation.html#Builder.prepare"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.prepare" title="Permalink to this definition">¶</a></dt>
-<dd><p>Prepares the environment.
-Build two environment: one for building and one for testing (launch).</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.compilation.Builder.put_txt_log_in_appli_log_dir">
-<code class="descname">put_txt_log_in_appli_log_dir</code><span class="sig-paren">(</span><em>file_name</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/compilation.html#Builder.put_txt_log_in_appli_log_dir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.put_txt_log_in_appli_log_dir" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Put the txt log (that contain the system logs, like make command</dt>
-<dd>output) in the directory &lt;APPLICATION DIR&gt;/LOGS/&lt;product_name&gt;/</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Str</strong> (<em>file_name</em>) -- the name of the file to write</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.compilation.Builder.wmake">
-<code class="descname">wmake</code><span class="sig-paren">(</span><em>nb_proc</em>, <em>opt_nb_proc=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/compilation.html#Builder.wmake"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.compilation.Builder.wmake" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-</div>
-<div class="section" id="module-src.configManager">
-<span id="src-configmanager-module"></span><h2>src.configManager module<a class="headerlink" href="#module-src.configManager" title="Permalink to this headline">¶</a></h2>
-<dl class="class">
-<dt id="src.configManager.ConfigManager">
-<em class="property">class </em><code class="descclassname">src.configManager.</code><code class="descname">ConfigManager</code><span class="sig-paren">(</span><em>runner</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/configManager.html#ConfigManager"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.ConfigManager" title="Permalink to this definition">¶</a></dt>
-<dd><p>Class that manages the read of all the config .pyconf files of salomeTools</p>
-<dl class="method">
-<dt id="src.configManager.ConfigManager.create_config_file">
-<code class="descname">create_config_file</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/configManager.html#ConfigManager.create_config_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.ConfigManager.create_config_file" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>This method is called when there are no user config file. </dt>
-<dd>It build it from scratch.</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>class 'PYCONF.Config'</strong> (<em>config</em>) -- The global config.</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">the config corresponding to the file created.</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">config class 'PYCONF.Config'</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.configManager.ConfigManager.get_command_line_overrides">
-<code class="descname">get_command_line_overrides</code><span class="sig-paren">(</span><em>options</em>, <em>sections</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/configManager.html#ConfigManager.get_command_line_overrides"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.ConfigManager.get_command_line_overrides" title="Permalink to this definition">¶</a></dt>
-<dd><p>get all the overwrites that are in the command line</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>options</strong> -- the options from salomeTools class 
-initialization (like -l5 or --overwrite)</li>
-<li><strong>str</strong> (<em>sections</em>) -- The config section to overwrite.</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The list of all the overwrites to apply.</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#src.utilsSat.Path.list" title="src.utilsSat.Path.list">list</a></p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.configManager.ConfigManager.get_config">
-<code class="descname">get_config</code><span class="sig-paren">(</span><em>application=None</em>, <em>options=None</em>, <em>command=None</em>, <em>datadir=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/configManager.html#ConfigManager.get_config"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.ConfigManager.get_config" title="Permalink to this definition">¶</a></dt>
-<dd><p>get the config from all the configuration files.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>str</strong> (<em>datadir</em>) -- The application for which salomeTools is called.</li>
-<li><strong>class Options</strong> (<a class="reference internal" href="#module-src.options" title="src.options"><em>options</em></a>) -- The general salomeTools
-options (--overwrite or -v5, for example)</li>
-<li><strong>str</strong> -- The command that is called.</li>
-<li><strong>str</strong> -- The repository that contain 
-external data for salomeTools.</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The final config.</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">class 'PYCONF.Config'</p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.configManager.ConfigManager.get_user_config_file">
-<code class="descname">get_user_config_file</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/configManager.html#ConfigManager.get_user_config_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.ConfigManager.get_user_config_file" title="Permalink to this definition">¶</a></dt>
-<dd><p>Get the user config file
-:return: path to the user config file.
-:rtype: str</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.configManager.ConfigManager.set_user_config_file">
-<code class="descname">set_user_config_file</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/configManager.html#ConfigManager.set_user_config_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.ConfigManager.set_user_config_file" title="Permalink to this definition">¶</a></dt>
-<dd><p>Set the user config file name and path.
-If necessary, build it from another one or create it from scratch.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>class 'PYCONF.Config'</strong> (<em>config</em>) -- The global config 
-(containing all pyconf).</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.configManager.ConfigOpener">
-<em class="property">class </em><code class="descclassname">src.configManager.</code><code class="descname">ConfigOpener</code><span class="sig-paren">(</span><em>pathList</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/configManager.html#ConfigOpener"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.ConfigOpener" title="Permalink to this definition">¶</a></dt>
-<dd><p>Class that helps to find an application pyconf 
-in all the possible directories (pathList)</p>
-<dl class="method">
-<dt id="src.configManager.ConfigOpener.get_path">
-<code class="descname">get_path</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/configManager.html#ConfigOpener.get_path"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.ConfigOpener.get_path" title="Permalink to this definition">¶</a></dt>
-<dd><p>The method that returns the entire path of the pyconf searched
-:param name str: The name of the searched pyconf.</p>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="function">
-<dt id="src.configManager.check_path">
-<code class="descclassname">src.configManager.</code><code class="descname">check_path</code><span class="sig-paren">(</span><em>path</em>, <em>ext=[]</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/configManager.html#check_path"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.check_path" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Construct a text with the input path and &quot;not found&quot; if it does not</dt>
-<dd>exist.</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>Str</strong> (<em>path</em>) -- the path to check.</li>
-<li><strong>List</strong> (<em>ext</em>) -- An extension. Verify that the path extension 
-is in the list</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The string of the path with information</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">Str</p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.configManager.getConfigColored">
-<code class="descclassname">src.configManager.</code><code class="descname">getConfigColored</code><span class="sig-paren">(</span><em>config</em>, <em>path</em>, <em>stream</em>, <em>show_label=False</em>, <em>level=0</em>, <em>show_full_path=False</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/configManager.html#getConfigColored"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.getConfigColored" title="Permalink to this definition">¶</a></dt>
-<dd><p>Get a colored representation value from a config pyconf instance.
-used recursively from the initial path.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>class 'PYCONF.Config'</strong> (<em>config</em>) -- The configuration from which the value is displayed.</li>
-<li><strong>str</strong> (<em>path</em>) -- the path in the configuration of the value to print.</li>
-<li><strong>boolean</strong> (<em>show_label</em>) -- if True, do a basic display. (useful for bash completion)</li>
-<li><strong>stream</strong> -- the output stream used</li>
-<li><strong>int</strong> (<em>level</em>) -- The number of spaces to add before display.</li>
-<li><strong>show_full_path</strong> -- display full path, else relative</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.configManager.get_config_children">
-<code class="descclassname">src.configManager.</code><code class="descname">get_config_children</code><span class="sig-paren">(</span><em>config</em>, <em>args</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/configManager.html#get_config_children"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.get_config_children" title="Permalink to this definition">¶</a></dt>
-<dd><p>Gets the names of the children of the given parameter.
-Useful only for completion mechanism</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>Config</strong> (<em>config</em>) -- The configuration where to read the values</li>
-<li><strong>args</strong> -- The path in the config from which get the keys</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.configManager.get_products_list">
-<code class="descclassname">src.configManager.</code><code class="descname">get_products_list</code><span class="sig-paren">(</span><em>self</em>, <em>options</em>, <em>cfg</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/configManager.html#get_products_list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.get_products_list" title="Permalink to this definition">¶</a></dt>
-<dd><p>Gives the product list with their informations from 
-configuration regarding the passed options.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>Options</strong> (<a class="reference internal" href="#module-src.options" title="src.options"><em>options</em></a>) -- The Options instance that stores the commands arguments</li>
-<li><strong>Config</strong> (<em>config</em>) -- The global configuration</li>
-<li><strong>Logger</strong> (<em>logger</em>) -- The logger instance to use for the display and logging</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The list of (product name, product_informations).</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">List</p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.configManager.print_debug">
-<code class="descclassname">src.configManager.</code><code class="descname">print_debug</code><span class="sig-paren">(</span><em>config</em>, <em>path</em>, <em>logger</em>, <em>show_label=False</em>, <em>level=0</em>, <em>show_full_path=False</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/configManager.html#print_debug"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.print_debug" title="Permalink to this definition">¶</a></dt>
-<dd><p>logger output for debugging a config/pyconf
-lines contains: path : expression --&gt; 'evaluation'</p>
-<p>example:
-PROJECTS.projects.salome.project_path : $PWD --&gt; '/tmp/SALOME'</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.configManager.print_value">
-<code class="descclassname">src.configManager.</code><code class="descname">print_value</code><span class="sig-paren">(</span><em>config</em>, <em>path</em>, <em>logger</em>, <em>show_label=False</em>, <em>level=0</em>, <em>show_full_path=False</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/configManager.html#print_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.print_value" title="Permalink to this definition">¶</a></dt>
-<dd><p>print a colored representation value from a config pyconf instance.
-used recursively from the initial path.</p>
-<p>:param see getConfigColored</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.configManager.show_patchs">
-<code class="descclassname">src.configManager.</code><code class="descname">show_patchs</code><span class="sig-paren">(</span><em>config</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/configManager.html#show_patchs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.show_patchs" title="Permalink to this definition">¶</a></dt>
-<dd><p>Prints all the used patchs in the application.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>Config</strong> (<em>config</em>) -- the global configuration.</li>
-<li><strong>Logger</strong> (<em>logger</em>) -- The logger instance to use for the display</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.configManager.show_product_info">
-<code class="descclassname">src.configManager.</code><code class="descname">show_product_info</code><span class="sig-paren">(</span><em>config</em>, <em>name</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/configManager.html#show_product_info"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.configManager.show_product_info" title="Permalink to this definition">¶</a></dt>
-<dd><p>Display on the terminal and logger information about a product.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>Config</strong> (<em>config</em>) -- the global configuration.</li>
-<li><strong>Str</strong> (<em>name</em>) -- The name of the product</li>
-<li><strong>Logger</strong> (<em>logger</em>) -- The logger instance to use for the display</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-</div>
-<div class="section" id="module-src.debug">
-<span id="src-debug-module"></span><h2>src.debug module<a class="headerlink" href="#module-src.debug" title="Permalink to this headline">¶</a></h2>
-<p>This file assume DEBUG functionalities use
-Print salomeTools debug messages in sys.stderr.
-Show pretty print debug representation from instances of SAT classes 
-(pretty print src.pyconf.Config)</p>
-<p>WARNING: supposedly show messages in SAT development phase, not production</p>
-<p>usage:
-&gt;&gt; import debug as DBG
-&gt;&gt; DBG.write(&quot;aTitle&quot;, aVariable)        # not shown in production 
-&gt;&gt; DBG.write(&quot;aTitle&quot;, aVariable, True)  # unconditionaly shown</p>
-<dl class="class">
-<dt id="src.debug.InStream">
-<em class="property">class </em><code class="descclassname">src.debug.</code><code class="descname">InStream</code><span class="sig-paren">(</span><em>buf=''</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/debug.html#InStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.InStream" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">StringIO.StringIO</span></code></p>
-<p>utility class for pyconf.Config input iostream</p>
-</dd></dl>
-
-<dl class="class">
-<dt id="src.debug.OutStream">
-<em class="property">class </em><code class="descclassname">src.debug.</code><code class="descname">OutStream</code><span class="sig-paren">(</span><em>buf=''</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/debug.html#OutStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.OutStream" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">StringIO.StringIO</span></code></p>
-<p>utility class for pyconf.Config output iostream</p>
-<dl class="method">
-<dt id="src.debug.OutStream.close">
-<code class="descname">close</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/debug.html#OutStream.close"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.OutStream.close" title="Permalink to this definition">¶</a></dt>
-<dd><p>because Config.__save__ calls close() stream as file
-keep value before lost as self.value</p>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="function">
-<dt id="src.debug.getLocalEnv">
-<code class="descclassname">src.debug.</code><code class="descname">getLocalEnv</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/debug.html#getLocalEnv"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.getLocalEnv" title="Permalink to this definition">¶</a></dt>
-<dd><p>get string for environment variables representation</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.debug.getStrConfigDbg">
-<code class="descclassname">src.debug.</code><code class="descname">getStrConfigDbg</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/debug.html#getStrConfigDbg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.getStrConfigDbg" title="Permalink to this definition">¶</a></dt>
-<dd><p>set string as saveConfigDbg, 
-as (path expression evaluation) for debug</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.debug.getStrConfigStd">
-<code class="descclassname">src.debug.</code><code class="descname">getStrConfigStd</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/debug.html#getStrConfigStd"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.getStrConfigStd" title="Permalink to this definition">¶</a></dt>
-<dd><p>set string as saveConfigStd, 
-as file .pyconf</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.debug.indent">
-<code class="descclassname">src.debug.</code><code class="descname">indent</code><span class="sig-paren">(</span><em>text</em>, <em>amount=2</em>, <em>ch=' '</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/debug.html#indent"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.indent" title="Permalink to this definition">¶</a></dt>
-<dd><p>indent multi lines message</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.debug.pop_debug">
-<code class="descclassname">src.debug.</code><code class="descname">pop_debug</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/debug.html#pop_debug"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.pop_debug" title="Permalink to this definition">¶</a></dt>
-<dd><p>restore previous debug outputs status</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.debug.push_debug">
-<code class="descclassname">src.debug.</code><code class="descname">push_debug</code><span class="sig-paren">(</span><em>aBool</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/debug.html#push_debug"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.push_debug" title="Permalink to this definition">¶</a></dt>
-<dd><p>set debug outputs activated, or not</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.debug.saveConfigDbg">
-<code class="descclassname">src.debug.</code><code class="descname">saveConfigDbg</code><span class="sig-paren">(</span><em>config</em>, <em>aStream</em>, <em>indent=0</em>, <em>path=''</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/debug.html#saveConfigDbg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.saveConfigDbg" title="Permalink to this definition">¶</a></dt>
-<dd><p>pyconf returns multilines (path expression evaluation) for debug</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.debug.saveConfigStd">
-<code class="descclassname">src.debug.</code><code class="descname">saveConfigStd</code><span class="sig-paren">(</span><em>config</em>, <em>aStream</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/debug.html#saveConfigStd"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.saveConfigStd" title="Permalink to this definition">¶</a></dt>
-<dd><p>returns as file .pyconf</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.debug.tofix">
-<code class="descclassname">src.debug.</code><code class="descname">tofix</code><span class="sig-paren">(</span><em>title</em>, <em>var=''</em>, <em>force=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/debug.html#tofix"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.tofix" title="Permalink to this definition">¶</a></dt>
-<dd><p>write sys.stderr a message if _debug[-1]==True or optionaly force=True
-use this only if no logger accessible for classic logger.warning(message)</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.debug.write">
-<code class="descclassname">src.debug.</code><code class="descname">write</code><span class="sig-paren">(</span><em>title</em>, <em>var=''</em>, <em>force=None</em>, <em>fmt='\n#### DEBUG: %s:\n%s\n'</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/debug.html#write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.debug.write" title="Permalink to this definition">¶</a></dt>
-<dd><p>write sys.stderr a message if _debug[-1]==True or optionaly force=True</p>
-</dd></dl>
-
-</div>
-<div class="section" id="module-src.environment">
-<span id="src-environment-module"></span><h2>src.environment module<a class="headerlink" href="#module-src.environment" title="Permalink to this headline">¶</a></h2>
-<dl class="class">
-<dt id="src.environment.Environ">
-<em class="property">class </em><code class="descclassname">src.environment.</code><code class="descname">Environ</code><span class="sig-paren">(</span><em>environ=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#Environ"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.Environ" title="Permalink to this definition">¶</a></dt>
-<dd><p>Class to manage the environment context</p>
-<dl class="method">
-<dt id="src.environment.Environ.append">
-<code class="descname">append</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#Environ.append"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.Environ.append" title="Permalink to this definition">¶</a></dt>
-<dd><p>Same as append_value but the value argument can be a list</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>sep</em>) -- the environment variable to append</li>
-<li><strong>str or list</strong> (<em>value</em>) -- the value(s) to append to key</li>
-<li><strong>str</strong> -- the separator string</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.Environ.append_value">
-<code class="descname">append_value</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#Environ.append_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.Environ.append_value" title="Permalink to this definition">¶</a></dt>
-<dd><p>append value to key using sep</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>sep</em>) -- the environment variable to append</li>
-<li><strong>str</strong> -- the value to append to key</li>
-<li><strong>str</strong> -- the separator string</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.Environ.command_value">
-<code class="descname">command_value</code><span class="sig-paren">(</span><em>key</em>, <em>command</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#Environ.command_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.Environ.command_value" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Get the value given by the system command &quot;command&quot; </dt>
-<dd>and put it in the environment variable key</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>command</em>) -- the environment variable</li>
-<li><strong>str</strong> -- the command to execute</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.Environ.get">
-<code class="descname">get</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#Environ.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.Environ.get" title="Permalink to this definition">¶</a></dt>
-<dd><p>Get the value of the environment variable &quot;key&quot;</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>key</em>) -- the environment variable</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.Environ.is_defined">
-<code class="descname">is_defined</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#Environ.is_defined"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.Environ.is_defined" title="Permalink to this definition">¶</a></dt>
-<dd><p>Check if the key exists in the environment</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>key</em>) -- the environment variable to check</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.Environ.prepend">
-<code class="descname">prepend</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#Environ.prepend"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.Environ.prepend" title="Permalink to this definition">¶</a></dt>
-<dd><p>Same as prepend_value but the value argument can be a list</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>sep</em>) -- the environment variable to prepend</li>
-<li><strong>str or list</strong> (<em>value</em>) -- the value(s) to prepend to key</li>
-<li><strong>str</strong> -- the separator string</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.Environ.prepend_value">
-<code class="descname">prepend_value</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#Environ.prepend_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.Environ.prepend_value" title="Permalink to this definition">¶</a></dt>
-<dd><p>prepend value to key using sep</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>sep</em>) -- the environment variable to prepend</li>
-<li><strong>str</strong> -- the value to prepend to key</li>
-<li><strong>str</strong> -- the separator string</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.Environ.set">
-<code class="descname">set</code><span class="sig-paren">(</span><em>key</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#Environ.set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.Environ.set" title="Permalink to this definition">¶</a></dt>
-<dd><p>Set the environment variable &quot;key&quot; to value &quot;value&quot;</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>value</em>) -- the environment variable to set</li>
-<li><strong>str</strong> -- the value</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.environment.FileEnvWriter">
-<em class="property">class </em><code class="descclassname">src.environment.</code><code class="descname">FileEnvWriter</code><span class="sig-paren">(</span><em>config</em>, <em>logger</em>, <em>out_dir</em>, <em>src_root</em>, <em>env_info=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#FileEnvWriter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.FileEnvWriter" title="Permalink to this definition">¶</a></dt>
-<dd><p>Class to dump the environment to a file.</p>
-<dl class="method">
-<dt id="src.environment.FileEnvWriter.write_cfgForPy_file">
-<code class="descname">write_cfgForPy_file</code><span class="sig-paren">(</span><em>filename</em>, <em>additional_env={}</em>, <em>for_package=None</em>, <em>with_commercial=True</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#FileEnvWriter.write_cfgForPy_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.FileEnvWriter.write_cfgForPy_file" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Append to current opened aFile a cfgForPy </dt>
-<dd>environment (SALOME python launcher).</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>for_package</em>) -- the file path</li>
-<li><strong>dict</strong> (<em>additional_env</em>) -- a dictionary of additional variables 
-to add to the environment</li>
-<li><strong>str</strong> -- If not None, produce a relative environment 
-designed for a package.</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.FileEnvWriter.write_env_file">
-<code class="descname">write_env_file</code><span class="sig-paren">(</span><em>filename</em>, <em>forBuild</em>, <em>shell</em>, <em>for_package=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#FileEnvWriter.write_env_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.FileEnvWriter.write_env_file" title="Permalink to this definition">¶</a></dt>
-<dd><p>Create an environment file.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>str</strong> (<em>shell</em>) -- the file path</li>
-<li><strong>bool</strong> (<em>forBuild</em>) -- if true, the build environment</li>
-<li><strong>str</strong> -- the type of file wanted (.sh, .bat)</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The path to the generated file</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">str</p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.environment.SalomeEnviron">
-<em class="property">class </em><code class="descclassname">src.environment.</code><code class="descname">SalomeEnviron</code><span class="sig-paren">(</span><em>cfg</em>, <em>environ</em>, <em>forBuild=False</em>, <em>for_package=None</em>, <em>enable_simple_env_script=True</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron" title="Permalink to this definition">¶</a></dt>
-<dd><p>Class to manage the environment of SALOME.</p>
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.add_comment">
-<code class="descname">add_comment</code><span class="sig-paren">(</span><em>comment</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.add_comment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.add_comment" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add a commentary to the out stream (in case of file generation)</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>comment</em>) -- the commentary to add</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.add_line">
-<code class="descname">add_line</code><span class="sig-paren">(</span><em>nb_line</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.add_line"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.add_line" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add empty lines to the out stream (in case of file generation)</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>int</strong> (<em>nb_line</em>) -- the number of empty lines to add</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.add_warning">
-<code class="descname">add_warning</code><span class="sig-paren">(</span><em>warning</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.add_warning"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.add_warning" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add a warning to the out stream (in case of file generation)</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<a class="reference internal" href="#src.utilsSat.warning" title="src.utilsSat.warning"><em>warning</em></a>) -- the warning to add</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.append">
-<code class="descname">append</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.append"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.append" title="Permalink to this definition">¶</a></dt>
-<dd><p>append value to key using sep</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>sep</em>) -- the environment variable to append</li>
-<li><strong>str</strong> -- the value to append to key</li>
-<li><strong>str</strong> -- the separator string</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.dump">
-<code class="descname">dump</code><span class="sig-paren">(</span><em>out</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.dump"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.dump" title="Permalink to this definition">¶</a></dt>
-<dd><p>Write the environment to out</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>file</strong> (<em>out</em>) -- the stream where to write the environment</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.finish">
-<code class="descname">finish</code><span class="sig-paren">(</span><em>required</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.finish"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.finish" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add a final instruction in the out file (in case of file generation)</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>bool</strong> (<em>required</em>) -- Do nothing if required is False</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.get">
-<code class="descname">get</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.get" title="Permalink to this definition">¶</a></dt>
-<dd><p>Get the value of the environment variable &quot;key&quot;</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>key</em>) -- the environment variable</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.get_names">
-<code class="descname">get_names</code><span class="sig-paren">(</span><em>lProducts</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.get_names"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.get_names" title="Permalink to this definition">¶</a></dt>
-<dd><p>Get the products name to add in SALOME_MODULES environment variable
-It is the name of the product, except in the case where the is a 
-component name. And it has to be in SALOME_MODULES variable only 
-if the product has the property has_salome_hui = &quot;yes&quot;</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>list</strong> (<em>lProducts</em>) -- List of products to potentially add</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.is_defined">
-<code class="descname">is_defined</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.is_defined"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.is_defined" title="Permalink to this definition">¶</a></dt>
-<dd><p>Check if the key exists in the environment</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>key</em>) -- the environment variable to check</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.load_cfg_environment">
-<code class="descname">load_cfg_environment</code><span class="sig-paren">(</span><em>cfg_env</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.load_cfg_environment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.load_cfg_environment" title="Permalink to this definition">¶</a></dt>
-<dd><p>Loads environment defined in cfg_env</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>cfg_env</em>) -- A config containing an environment</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.prepend">
-<code class="descname">prepend</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.prepend"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.prepend" title="Permalink to this definition">¶</a></dt>
-<dd><p>prepend value to key using sep</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>sep</em>) -- the environment variable to prepend</li>
-<li><strong>str</strong> -- the value to prepend to key</li>
-<li><strong>str</strong> -- the separator string</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.run_env_script">
-<code class="descname">run_env_script</code><span class="sig-paren">(</span><em>product_info</em>, <em>logger=None</em>, <em>native=False</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.run_env_script"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.run_env_script" title="Permalink to this definition">¶</a></dt>
-<dd><p>Runs an environment script.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>Config</strong> (<em>product_info</em>) -- The product description</li>
-<li><strong>Logger</strong> (<em>logger</em>) -- The logger instance to display messages</li>
-<li><strong>Boolean</strong> (<em>native</em>) -- if True load set_native_env instead of set_env</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.run_simple_env_script">
-<code class="descname">run_simple_env_script</code><span class="sig-paren">(</span><em>script_path</em>, <em>logger=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.run_simple_env_script"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.run_simple_env_script" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Runs an environment script. Same as run_env_script, but with a </dt>
-<dd>script path as parameter.</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>script_path</em>) -- a path to an environment script</li>
-<li><strong>Logger</strong> (<em>logger</em>) -- The logger instance to display messages</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.set">
-<code class="descname">set</code><span class="sig-paren">(</span><em>key</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.set" title="Permalink to this definition">¶</a></dt>
-<dd><p>Set the environment variable &quot;key&quot; to value &quot;value&quot;</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>value</em>) -- the environment variable to set</li>
-<li><strong>str</strong> -- the value</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.set_a_product">
-<code class="descname">set_a_product</code><span class="sig-paren">(</span><em>product</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.set_a_product"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.set_a_product" title="Permalink to this definition">¶</a></dt>
-<dd><p>Sets the environment of a product.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<a class="reference internal" href="#module-src.product" title="src.product"><em>product</em></a>) -- The product name</li>
-<li><strong>Logger</strong> (<em>logger</em>) -- The logger instance to display messages</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.set_application_env">
-<code class="descname">set_application_env</code><span class="sig-paren">(</span><em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.set_application_env"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.set_application_env" title="Permalink to this definition">¶</a></dt>
-<dd><p>Sets the environment defined in the APPLICATION file.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Logger</strong> (<em>logger</em>) -- The logger instance to display messages</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.set_cpp_env">
-<code class="descname">set_cpp_env</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.set_cpp_env"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.set_cpp_env" title="Permalink to this definition">¶</a></dt>
-<dd><p>Sets the generic environment for a SALOME cpp product.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The product description</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.set_full_environ">
-<code class="descname">set_full_environ</code><span class="sig-paren">(</span><em>logger</em>, <em>env_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.set_full_environ"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.set_full_environ" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Sets the full environment for products </dt>
-<dd>specified in env_info dictionary.</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>Logger</strong> (<em>logger</em>) -- The logger instance to display messages</li>
-<li><strong>list</strong> (<em>env_info</em>) -- the list of products</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.set_products">
-<code class="descname">set_products</code><span class="sig-paren">(</span><em>logger</em>, <em>src_root=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.set_products"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.set_products" title="Permalink to this definition">¶</a></dt>
-<dd><p>Sets the environment for all the products.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>Logger</strong> (<em>logger</em>) -- The logger instance to display messages</li>
-<li><strong>src</strong> (<em>src_root</em>) -- the application working directory</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.set_python_libdirs">
-<code class="descname">set_python_libdirs</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.set_python_libdirs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.set_python_libdirs" title="Permalink to this definition">¶</a></dt>
-<dd><p>Set some generic variables for python library paths</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.set_salome_generic_product_env">
-<code class="descname">set_salome_generic_product_env</code><span class="sig-paren">(</span><em>pi</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.set_salome_generic_product_env"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.set_salome_generic_product_env" title="Permalink to this definition">¶</a></dt>
-<dd><p>Sets the generic environment for a SALOME product.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>pi</em>) -- The product description</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.environment.SalomeEnviron.set_salome_minimal_product_env">
-<code class="descname">set_salome_minimal_product_env</code><span class="sig-paren">(</span><em>product_info</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#SalomeEnviron.set_salome_minimal_product_env"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.SalomeEnviron.set_salome_minimal_product_env" title="Permalink to this definition">¶</a></dt>
-<dd><p>Sets the minimal environment for a SALOME product.
-xxx_ROOT_DIR and xxx_SRC_DIR</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>Config</strong> (<em>product_info</em>) -- The product description</li>
-<li><strong>Logger</strong> (<em>logger</em>) -- The logger instance to display messages</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.environment.Shell">
-<em class="property">class </em><code class="descclassname">src.environment.</code><code class="descname">Shell</code><span class="sig-paren">(</span><em>name</em>, <em>extension</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#Shell"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.Shell" title="Permalink to this definition">¶</a></dt>
-<dd><p>Definition of a Shell.</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.environment.load_environment">
-<code class="descclassname">src.environment.</code><code class="descname">load_environment</code><span class="sig-paren">(</span><em>config</em>, <em>build</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environment.html#load_environment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environment.load_environment" title="Permalink to this definition">¶</a></dt>
-<dd><p>Loads the environment (used to run the tests, for example).</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>Config</strong> (<em>config</em>) -- the global config</li>
-<li><strong>bool</strong> (<em>build</em>) -- build environement if True</li>
-<li><strong>Logger</strong> (<em>logger</em>) -- The logger instance to display messages</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-</div>
-<div class="section" id="module-src.environs">
-<span id="src-environs-module"></span><h2>src.environs module<a class="headerlink" href="#module-src.environs" title="Permalink to this headline">¶</a></h2>
-<p>Utility for print environment variables</p>
-<dl class="docutils">
-<dt>examples: </dt>
-<dd><ul class="first last simple">
-<li>split all or specific environment variables $XXX(s)...
-&gt;&gt; environs.py -&gt; all
-&gt;&gt; environs.py SHELL PATH -&gt; specific $SHELL $PATH</li>
-<li>split all or specific environment variables on pattern $*XXX*(s)...
-&gt;&gt; environs.py --pat ROOT -&gt; specific $*ROOT*</li>
-<li>split search specific substrings in contents of environment variables $XXX(s)...
-&gt;&gt; environs.py --grep usr  -&gt; all specific environment variables containing usr</li>
-</ul>
-</dd>
-<dt>tips:</dt>
-<dd><ul class="first last simple">
-<li>create unix alias as shortcut for bash console
-&gt;&gt; alias envs=&quot;.../environs.py&quot;</li>
-</ul>
-</dd>
-</dl>
-<dl class="function">
-<dt id="src.environs.print_grep_environs">
-<code class="descclassname">src.environs.</code><code class="descname">print_grep_environs</code><span class="sig-paren">(</span><em>args=[]</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environs.html#print_grep_environs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environs.print_grep_environs" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.environs.print_split_environs">
-<code class="descclassname">src.environs.</code><code class="descname">print_split_environs</code><span class="sig-paren">(</span><em>args=[]</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environs.html#print_split_environs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environs.print_split_environs" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.environs.print_split_pattern_environs">
-<code class="descclassname">src.environs.</code><code class="descname">print_split_pattern_environs</code><span class="sig-paren">(</span><em>args=[]</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/environs.html#print_split_pattern_environs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.environs.print_split_pattern_environs" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</div>
-<div class="section" id="module-src.exceptionSat">
-<span id="src-exceptionsat-module"></span><h2>src.exceptionSat module<a class="headerlink" href="#module-src.exceptionSat" title="Permalink to this headline">¶</a></h2>
-<dl class="exception">
-<dt id="src.exceptionSat.ExceptionSat">
-<em class="property">exception </em><code class="descclassname">src.exceptionSat.</code><code class="descname">ExceptionSat</code><a class="reference internal" href="../../_modules/src/exceptionSat.html#ExceptionSat"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.exceptionSat.ExceptionSat" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">exceptions.Exception</span></code></p>
-<p>rename Exception Class for sat convenience (for future...)</p>
-</dd></dl>
-
-</div>
-<div class="section" id="module-src.fileEnviron">
-<span id="src-fileenviron-module"></span><h2>src.fileEnviron module<a class="headerlink" href="#module-src.fileEnviron" title="Permalink to this headline">¶</a></h2>
-<dl class="class">
-<dt id="src.fileEnviron.BashFileEnviron">
-<em class="property">class </em><code class="descclassname">src.fileEnviron.</code><code class="descname">BashFileEnviron</code><span class="sig-paren">(</span><em>output</em>, <em>environ=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#BashFileEnviron"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.BashFileEnviron" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <a class="reference internal" href="#src.fileEnviron.FileEnviron" title="src.fileEnviron.FileEnviron"><code class="xref py py-class docutils literal"><span class="pre">src.fileEnviron.FileEnviron</span></code></a></p>
-<p>Class for bash shell.</p>
-<dl class="method">
-<dt id="src.fileEnviron.BashFileEnviron.command_value">
-<code class="descname">command_value</code><span class="sig-paren">(</span><em>key</em>, <em>command</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#BashFileEnviron.command_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.BashFileEnviron.command_value" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Get the value given by the system command &quot;command&quot; </dt>
-<dd>and put it in the environment variable key.
-Has to be overwritten in the derived classes
-This can be seen as a virtual method</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>command</em>) -- the environment variable</li>
-<li><strong>str</strong> -- the command to execute</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.BashFileEnviron.finish">
-<code class="descname">finish</code><span class="sig-paren">(</span><em>required=True</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#BashFileEnviron.finish"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.BashFileEnviron.finish" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add a final instruction in the out file (in case of file generation)</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>bool</strong> (<em>required</em>) -- Do nothing if required is False</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.BashFileEnviron.set">
-<code class="descname">set</code><span class="sig-paren">(</span><em>key</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#BashFileEnviron.set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.BashFileEnviron.set" title="Permalink to this definition">¶</a></dt>
-<dd><p>Set the environment variable &quot;key&quot; to value &quot;value&quot;</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>value</em>) -- the environment variable to set</li>
-<li><strong>str</strong> -- the value</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.fileEnviron.BatFileEnviron">
-<em class="property">class </em><code class="descclassname">src.fileEnviron.</code><code class="descname">BatFileEnviron</code><span class="sig-paren">(</span><em>output</em>, <em>environ=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#BatFileEnviron"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.BatFileEnviron" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <a class="reference internal" href="#src.fileEnviron.FileEnviron" title="src.fileEnviron.FileEnviron"><code class="xref py py-class docutils literal"><span class="pre">src.fileEnviron.FileEnviron</span></code></a></p>
-<p>for Windows batch shell.</p>
-<dl class="method">
-<dt id="src.fileEnviron.BatFileEnviron.add_comment">
-<code class="descname">add_comment</code><span class="sig-paren">(</span><em>comment</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#BatFileEnviron.add_comment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.BatFileEnviron.add_comment" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add a comment in the shell file</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>comment</em>) -- the comment to add</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.BatFileEnviron.command_value">
-<code class="descname">command_value</code><span class="sig-paren">(</span><em>key</em>, <em>command</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#BatFileEnviron.command_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.BatFileEnviron.command_value" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Get the value given by the system command &quot;command&quot; </dt>
-<dd>and put it in the environment variable key.
-Has to be overwritten in the derived classes
-This can be seen as a virtual method</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>command</em>) -- the environment variable</li>
-<li><strong>str</strong> -- the command to execute</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.BatFileEnviron.finish">
-<code class="descname">finish</code><span class="sig-paren">(</span><em>required=True</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#BatFileEnviron.finish"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.BatFileEnviron.finish" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Add a final instruction in the out file (in case of file generation)</dt>
-<dd>In the particular windows case, do nothing</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>bool</strong> (<em>required</em>) -- Do nothing if required is False</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.BatFileEnviron.get">
-<code class="descname">get</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#BatFileEnviron.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.BatFileEnviron.get" title="Permalink to this definition">¶</a></dt>
-<dd><p>Get the value of the environment variable &quot;key&quot;</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>key</em>) -- the environment variable</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.BatFileEnviron.set">
-<code class="descname">set</code><span class="sig-paren">(</span><em>key</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#BatFileEnviron.set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.BatFileEnviron.set" title="Permalink to this definition">¶</a></dt>
-<dd><p>Set the environment variable &quot;key&quot; to value &quot;value&quot;</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>value</em>) -- the environment variable to set</li>
-<li><strong>str</strong> -- the value</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.fileEnviron.ContextFileEnviron">
-<em class="property">class </em><code class="descclassname">src.fileEnviron.</code><code class="descname">ContextFileEnviron</code><span class="sig-paren">(</span><em>output</em>, <em>environ=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ContextFileEnviron"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ContextFileEnviron" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <a class="reference internal" href="#src.fileEnviron.FileEnviron" title="src.fileEnviron.FileEnviron"><code class="xref py py-class docutils literal"><span class="pre">src.fileEnviron.FileEnviron</span></code></a></p>
-<p>Class for a salome context configuration file.</p>
-<dl class="method">
-<dt id="src.fileEnviron.ContextFileEnviron.add_echo">
-<code class="descname">add_echo</code><span class="sig-paren">(</span><em>text</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ContextFileEnviron.add_echo"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ContextFileEnviron.add_echo" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add a comment</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>text</em>) -- the comment to add</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.ContextFileEnviron.add_warning">
-<code class="descname">add_warning</code><span class="sig-paren">(</span><em>warning</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ContextFileEnviron.add_warning"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ContextFileEnviron.add_warning" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add a warning</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>text</em>) -- the warning to add</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.ContextFileEnviron.append_value">
-<code class="descname">append_value</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ContextFileEnviron.append_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ContextFileEnviron.append_value" title="Permalink to this definition">¶</a></dt>
-<dd><p>append value to key using sep</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>sep</em>) -- the environment variable to append</li>
-<li><strong>str</strong> -- the value to append to key</li>
-<li><strong>str</strong> -- the separator string</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.ContextFileEnviron.command_value">
-<code class="descname">command_value</code><span class="sig-paren">(</span><em>key</em>, <em>command</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ContextFileEnviron.command_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ContextFileEnviron.command_value" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Get the value given by the system command &quot;command&quot; </dt>
-<dd>and put it in the environment variable key.
-Has to be overwritten in the derived classes
-This can be seen as a virtual method</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>command</em>) -- the environment variable</li>
-<li><strong>str</strong> -- the command to execute</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.ContextFileEnviron.finish">
-<code class="descname">finish</code><span class="sig-paren">(</span><em>required=True</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ContextFileEnviron.finish"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ContextFileEnviron.finish" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add a final instruction in the out file (in case of file generation)</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>bool</strong> (<em>required</em>) -- Do nothing if required is False</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.ContextFileEnviron.get">
-<code class="descname">get</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ContextFileEnviron.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ContextFileEnviron.get" title="Permalink to this definition">¶</a></dt>
-<dd><p>Get the value of the environment variable &quot;key&quot;</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>key</em>) -- the environment variable</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.ContextFileEnviron.prepend_value">
-<code class="descname">prepend_value</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ContextFileEnviron.prepend_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ContextFileEnviron.prepend_value" title="Permalink to this definition">¶</a></dt>
-<dd><p>prepend value to key using sep</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>sep</em>) -- the environment variable to prepend</li>
-<li><strong>str</strong> -- the value to prepend to key</li>
-<li><strong>str</strong> -- the separator string</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.ContextFileEnviron.set">
-<code class="descname">set</code><span class="sig-paren">(</span><em>key</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ContextFileEnviron.set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ContextFileEnviron.set" title="Permalink to this definition">¶</a></dt>
-<dd><p>Set the environment variable &quot;key&quot; to value &quot;value&quot;</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>value</em>) -- the environment variable to set</li>
-<li><strong>str</strong> -- the value</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.fileEnviron.FileEnviron">
-<em class="property">class </em><code class="descclassname">src.fileEnviron.</code><code class="descname">FileEnviron</code><span class="sig-paren">(</span><em>output</em>, <em>environ=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#FileEnviron"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron" title="Permalink to this definition">¶</a></dt>
-<dd><p>Base class for shell environment</p>
-<dl class="method">
-<dt id="src.fileEnviron.FileEnviron.add_comment">
-<code class="descname">add_comment</code><span class="sig-paren">(</span><em>comment</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#FileEnviron.add_comment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.add_comment" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add a comment in the shell file</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>comment</em>) -- the comment to add</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.FileEnviron.add_echo">
-<code class="descname">add_echo</code><span class="sig-paren">(</span><em>text</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#FileEnviron.add_echo"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.add_echo" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add a &quot;echo&quot; in the shell file</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>text</em>) -- the text to echo</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.FileEnviron.add_line">
-<code class="descname">add_line</code><span class="sig-paren">(</span><em>number</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#FileEnviron.add_line"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.add_line" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add some empty lines in the shell file</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>int</strong> (<em>number</em>) -- the number of lines to add</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.FileEnviron.add_warning">
-<code class="descname">add_warning</code><span class="sig-paren">(</span><em>warning</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#FileEnviron.add_warning"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.add_warning" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add a warning &quot;echo&quot; in the shell file</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<a class="reference internal" href="#src.utilsSat.warning" title="src.utilsSat.warning"><em>warning</em></a>) -- the text to echo</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.FileEnviron.append">
-<code class="descname">append</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#FileEnviron.append"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.append" title="Permalink to this definition">¶</a></dt>
-<dd><p>Same as append_value but the value argument can be a list</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>sep</em>) -- the environment variable to append</li>
-<li><strong>str or list</strong> (<em>value</em>) -- the value(s) to append to key</li>
-<li><strong>str</strong> -- the separator string</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.FileEnviron.append_value">
-<code class="descname">append_value</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#FileEnviron.append_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.append_value" title="Permalink to this definition">¶</a></dt>
-<dd><p>append value to key using sep</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>sep</em>) -- the environment variable to append</li>
-<li><strong>str</strong> -- the value to append to key</li>
-<li><strong>str</strong> -- the separator string</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.FileEnviron.command_value">
-<code class="descname">command_value</code><span class="sig-paren">(</span><em>key</em>, <em>command</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#FileEnviron.command_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.command_value" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Get the value given by the system command &quot;command&quot; </dt>
-<dd>and put it in the environment variable key.
-Has to be overwritten in the derived classes
-This can be seen as a virtual method</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>command</em>) -- the environment variable</li>
-<li><strong>str</strong> -- the command to execute</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.FileEnviron.finish">
-<code class="descname">finish</code><span class="sig-paren">(</span><em>required=True</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#FileEnviron.finish"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.finish" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add a final instruction in the out file (in case of file generation)</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>bool</strong> (<em>required</em>) -- Do nothing if required is False</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.FileEnviron.get">
-<code class="descname">get</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#FileEnviron.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.get" title="Permalink to this definition">¶</a></dt>
-<dd><p>Get the value of the environment variable &quot;key&quot;</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>key</em>) -- the environment variable</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.FileEnviron.is_defined">
-<code class="descname">is_defined</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#FileEnviron.is_defined"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.is_defined" title="Permalink to this definition">¶</a></dt>
-<dd><p>Check if the key exists in the environment</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>key</em>) -- the environment variable to check</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.FileEnviron.prepend">
-<code class="descname">prepend</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#FileEnviron.prepend"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.prepend" title="Permalink to this definition">¶</a></dt>
-<dd><p>Same as prepend_value but the value argument can be a list</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>sep</em>) -- the environment variable to prepend</li>
-<li><strong>str or list</strong> (<em>value</em>) -- the value(s) to prepend to key</li>
-<li><strong>str</strong> -- the separator string</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.FileEnviron.prepend_value">
-<code class="descname">prepend_value</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#FileEnviron.prepend_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.prepend_value" title="Permalink to this definition">¶</a></dt>
-<dd><p>prepend value to key using sep</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>sep</em>) -- the environment variable to prepend</li>
-<li><strong>str</strong> -- the value to prepend to key</li>
-<li><strong>str</strong> -- the separator string</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.FileEnviron.set">
-<code class="descname">set</code><span class="sig-paren">(</span><em>key</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#FileEnviron.set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.FileEnviron.set" title="Permalink to this definition">¶</a></dt>
-<dd><p>Set the environment variable &quot;key&quot; to value &quot;value&quot;</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>value</em>) -- the environment variable to set</li>
-<li><strong>str</strong> -- the value</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.fileEnviron.LauncherFileEnviron">
-<em class="property">class </em><code class="descclassname">src.fileEnviron.</code><code class="descname">LauncherFileEnviron</code><span class="sig-paren">(</span><em>output</em>, <em>environ=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#LauncherFileEnviron"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron" title="Permalink to this definition">¶</a></dt>
-<dd><p>Class to generate a launcher file script 
-(in python syntax) SalomeContext API</p>
-<dl class="method">
-<dt id="src.fileEnviron.LauncherFileEnviron.add">
-<code class="descname">add</code><span class="sig-paren">(</span><em>key</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#LauncherFileEnviron.add"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.add" title="Permalink to this definition">¶</a></dt>
-<dd><p>prepend value to key using sep</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>value</em>) -- the environment variable to prepend</li>
-<li><strong>str</strong> -- the value to prepend to key</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.LauncherFileEnviron.add_comment">
-<code class="descname">add_comment</code><span class="sig-paren">(</span><em>comment</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#LauncherFileEnviron.add_comment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.add_comment" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.LauncherFileEnviron.add_echo">
-<code class="descname">add_echo</code><span class="sig-paren">(</span><em>text</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#LauncherFileEnviron.add_echo"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.add_echo" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add a comment</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>text</em>) -- the comment to add</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.LauncherFileEnviron.add_line">
-<code class="descname">add_line</code><span class="sig-paren">(</span><em>number</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#LauncherFileEnviron.add_line"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.add_line" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add some empty lines in the launcher file</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>int</strong> (<em>number</em>) -- the number of lines to add</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.LauncherFileEnviron.add_warning">
-<code class="descname">add_warning</code><span class="sig-paren">(</span><em>warning</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#LauncherFileEnviron.add_warning"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.add_warning" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add a warning</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>text</em>) -- the warning to add</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.LauncherFileEnviron.append">
-<code class="descname">append</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#LauncherFileEnviron.append"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.append" title="Permalink to this definition">¶</a></dt>
-<dd><p>Same as append_value but the value argument can be a list</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>sep</em>) -- the environment variable to append</li>
-<li><strong>str or list</strong> (<em>value</em>) -- the value(s) to append to key</li>
-<li><strong>str</strong> -- the separator string</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.LauncherFileEnviron.append_value">
-<code class="descname">append_value</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#LauncherFileEnviron.append_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.append_value" title="Permalink to this definition">¶</a></dt>
-<dd><p>append value to key using sep</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>sep</em>) -- the environment variable to append</li>
-<li><strong>str</strong> -- the value to append to key</li>
-<li><strong>str</strong> -- the separator string</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.LauncherFileEnviron.change_to_launcher">
-<code class="descname">change_to_launcher</code><span class="sig-paren">(</span><em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#LauncherFileEnviron.change_to_launcher"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.change_to_launcher" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.LauncherFileEnviron.command_value">
-<code class="descname">command_value</code><span class="sig-paren">(</span><em>key</em>, <em>command</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#LauncherFileEnviron.command_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.command_value" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Get the value given by the system command &quot;command&quot; </dt>
-<dd>and put it in the environment variable key.</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>command</em>) -- the environment variable</li>
-<li><strong>str</strong> -- the command to execute</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.LauncherFileEnviron.finish">
-<code class="descname">finish</code><span class="sig-paren">(</span><em>required=True</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#LauncherFileEnviron.finish"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.finish" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Add a final instruction in the out file (in case of file generation)</dt>
-<dd>In the particular launcher case, do nothing</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>bool</strong> (<em>required</em>) -- Do nothing if required is False</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.LauncherFileEnviron.get">
-<code class="descname">get</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#LauncherFileEnviron.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.get" title="Permalink to this definition">¶</a></dt>
-<dd><p>Get the value of the environment variable &quot;key&quot;</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>key</em>) -- the environment variable</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.LauncherFileEnviron.is_defined">
-<code class="descname">is_defined</code><span class="sig-paren">(</span><em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#LauncherFileEnviron.is_defined"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.is_defined" title="Permalink to this definition">¶</a></dt>
-<dd><p>Check if the key exists in the environment</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>key</em>) -- the environment variable to check</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.LauncherFileEnviron.prepend">
-<code class="descname">prepend</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#LauncherFileEnviron.prepend"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.prepend" title="Permalink to this definition">¶</a></dt>
-<dd><p>Same as prepend_value but the value argument can be a list</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>sep</em>) -- the environment variable to prepend</li>
-<li><strong>str or list</strong> (<em>value</em>) -- the value(s) to prepend to key</li>
-<li><strong>str</strong> -- the separator string</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.LauncherFileEnviron.prepend_value">
-<code class="descname">prepend_value</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#LauncherFileEnviron.prepend_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.prepend_value" title="Permalink to this definition">¶</a></dt>
-<dd><p>prepend value to key using sep</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>sep</em>) -- the environment variable to prepend</li>
-<li><strong>str</strong> -- the value to prepend to key</li>
-<li><strong>str</strong> -- the separator string</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.LauncherFileEnviron.set">
-<code class="descname">set</code><span class="sig-paren">(</span><em>key</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#LauncherFileEnviron.set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.LauncherFileEnviron.set" title="Permalink to this definition">¶</a></dt>
-<dd><p>Set the environment variable &quot;key&quot; to value &quot;value&quot;</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>value</em>) -- the environment variable to set</li>
-<li><strong>str</strong> -- the value</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.fileEnviron.ScreenEnviron">
-<em class="property">class </em><code class="descclassname">src.fileEnviron.</code><code class="descname">ScreenEnviron</code><span class="sig-paren">(</span><em>output</em>, <em>environ=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ScreenEnviron"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <a class="reference internal" href="#src.fileEnviron.FileEnviron" title="src.fileEnviron.FileEnviron"><code class="xref py py-class docutils literal"><span class="pre">src.fileEnviron.FileEnviron</span></code></a></p>
-<dl class="method">
-<dt id="src.fileEnviron.ScreenEnviron.add_comment">
-<code class="descname">add_comment</code><span class="sig-paren">(</span><em>comment</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ScreenEnviron.add_comment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.add_comment" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.ScreenEnviron.add_echo">
-<code class="descname">add_echo</code><span class="sig-paren">(</span><em>text</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ScreenEnviron.add_echo"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.add_echo" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.ScreenEnviron.add_line">
-<code class="descname">add_line</code><span class="sig-paren">(</span><em>number</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ScreenEnviron.add_line"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.add_line" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.ScreenEnviron.add_warning">
-<code class="descname">add_warning</code><span class="sig-paren">(</span><em>warning</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ScreenEnviron.add_warning"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.add_warning" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.ScreenEnviron.append">
-<code class="descname">append</code><span class="sig-paren">(</span><em>name</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ScreenEnviron.append"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.append" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.ScreenEnviron.command_value">
-<code class="descname">command_value</code><span class="sig-paren">(</span><em>key</em>, <em>command</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ScreenEnviron.command_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.command_value" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.ScreenEnviron.get">
-<code class="descname">get</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ScreenEnviron.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.get" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.ScreenEnviron.is_defined">
-<code class="descname">is_defined</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ScreenEnviron.is_defined"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.is_defined" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.ScreenEnviron.prepend">
-<code class="descname">prepend</code><span class="sig-paren">(</span><em>name</em>, <em>value</em>, <em>sep=':'</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ScreenEnviron.prepend"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.prepend" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.ScreenEnviron.run_env_script">
-<code class="descname">run_env_script</code><span class="sig-paren">(</span><em>module</em>, <em>script</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ScreenEnviron.run_env_script"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.run_env_script" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.ScreenEnviron.set">
-<code class="descname">set</code><span class="sig-paren">(</span><em>name</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ScreenEnviron.set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.set" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.fileEnviron.ScreenEnviron.write">
-<code class="descname">write</code><span class="sig-paren">(</span><em>command</em>, <em>name</em>, <em>value</em>, <em>sign='='</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#ScreenEnviron.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.ScreenEnviron.write" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="function">
-<dt id="src.fileEnviron.get_file_environ">
-<code class="descclassname">src.fileEnviron.</code><code class="descname">get_file_environ</code><span class="sig-paren">(</span><em>output</em>, <em>shell</em>, <em>environ=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#get_file_environ"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.get_file_environ" title="Permalink to this definition">¶</a></dt>
-<dd><p>Instantiate correct FileEnvironment sub-class.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>file</strong> (<em>output</em>) -- the output file stream.</li>
-<li><strong>str</strong> (<em>shell</em>) -- the type of shell syntax to use.</li>
-<li><strong>dict</strong> (<em>environ</em>) -- a potential additional environment.</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.fileEnviron.special_path_separator">
-<code class="descclassname">src.fileEnviron.</code><code class="descname">special_path_separator</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fileEnviron.html#special_path_separator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fileEnviron.special_path_separator" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>TCLLIBPATH, TKLIBPATH, PV_PLUGIN_PATH environments variables need</dt>
-<dd>some exotic path separator.
-This function gives the separator regarding the name of the variable
-to append or prepend.</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>name</em>) -- The name of the variable to find the separator</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-</div>
-<div class="section" id="module-src.fork">
-<span id="src-fork-module"></span><h2>src.fork module<a class="headerlink" href="#module-src.fork" title="Permalink to this headline">¶</a></h2>
-<dl class="function">
-<dt id="src.fork.batch">
-<code class="descclassname">src.fork.</code><code class="descname">batch</code><span class="sig-paren">(</span><em>cmd</em>, <em>logger</em>, <em>cwd</em>, <em>args=[]</em>, <em>log=None</em>, <em>delai=20</em>, <em>sommeil=1</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fork.html#batch"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fork.batch" title="Permalink to this definition">¶</a></dt>
-<dd><p>Launch a batch</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.fork.batch_salome">
-<code class="descclassname">src.fork.</code><code class="descname">batch_salome</code><span class="sig-paren">(</span><em>cmd</em>, <em>logger</em>, <em>cwd</em>, <em>args</em>, <em>getTmpDir</em>, <em>pendant='SALOME_Session_Server'</em>, <em>fin='killSalome.py'</em>, <em>log=None</em>, <em>delai=20</em>, <em>sommeil=1</em>, <em>delaiapp=0</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fork.html#batch_salome"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fork.batch_salome" title="Permalink to this definition">¶</a></dt>
-<dd><p>Launch a salome process</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.fork.launch_command">
-<code class="descclassname">src.fork.</code><code class="descname">launch_command</code><span class="sig-paren">(</span><em>cmd</em>, <em>logger</em>, <em>cwd</em>, <em>args=[]</em>, <em>log=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fork.html#launch_command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fork.launch_command" title="Permalink to this definition">¶</a></dt>
-<dd><p>Launch command</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.fork.show_progress">
-<code class="descclassname">src.fork.</code><code class="descname">show_progress</code><span class="sig-paren">(</span><em>logger</em>, <em>top</em>, <em>delai</em>, <em>ss=''</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fork.html#show_progress"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fork.show_progress" title="Permalink to this definition">¶</a></dt>
-<dd><p>shortcut function to display the progression</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>Logger</strong> (<em>logger</em>) -- The logging instance</li>
-<li><strong>int</strong> (<em>delai</em>) -- the number to display</li>
-<li><strong>int</strong> -- the number max</li>
-<li><strong>str</strong> (<em>ss</em>) -- the string to display</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.fork.write_back">
-<code class="descclassname">src.fork.</code><code class="descname">write_back</code><span class="sig-paren">(</span><em>logger</em>, <em>message</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/fork.html#write_back"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.fork.write_back" title="Permalink to this definition">¶</a></dt>
-<dd><p>shortcut function to write at the begin of the line</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>Logger</strong> (<em>logger</em>) -- The logging instance</li>
-<li><strong>str</strong> (<em>message</em>) -- the text to display</li>
-<li><strong>int</strong> (<em>level</em>) -- the level of verbosity</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-</div>
-<div class="section" id="module-src.loggingSat">
-<span id="src-loggingsat-module"></span><h2>src.loggingSat module<a class="headerlink" href="#module-src.loggingSat" title="Permalink to this headline">¶</a></h2>
-<p><a class="reference external" href="http://sametmax.com/ecrire-des-logs-en-python/">http://sametmax.com/ecrire-des-logs-en-python/</a>
-<a class="reference external" href="https://docs.python.org/3/library/time.html#time.strftime">https://docs.python.org/3/library/time.html#time.strftime</a></p>
-<p>use logging package for salometools</p>
-<dl class="docutils">
-<dt>handler:</dt>
-<dd>on info() no format
-on other formatted indented on multi lines messages</dd>
-</dl>
-<dl class="class">
-<dt id="src.loggingSat.DefaultFormatter">
-<em class="property">class </em><code class="descclassname">src.loggingSat.</code><code class="descname">DefaultFormatter</code><span class="sig-paren">(</span><em>fmt=None</em>, <em>datefmt=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/loggingSat.html#DefaultFormatter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.DefaultFormatter" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">logging.Formatter</span></code></p>
-<dl class="method">
-<dt id="src.loggingSat.DefaultFormatter.format">
-<code class="descname">format</code><span class="sig-paren">(</span><em>record</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/loggingSat.html#DefaultFormatter.format"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.DefaultFormatter.format" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.loggingSat.DefaultFormatter.setColorLevelname">
-<code class="descname">setColorLevelname</code><span class="sig-paren">(</span><em>levelname</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/loggingSat.html#DefaultFormatter.setColorLevelname"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.DefaultFormatter.setColorLevelname" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.loggingSat.UnittestFormatter">
-<em class="property">class </em><code class="descclassname">src.loggingSat.</code><code class="descname">UnittestFormatter</code><span class="sig-paren">(</span><em>fmt=None</em>, <em>datefmt=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/loggingSat.html#UnittestFormatter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.UnittestFormatter" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">logging.Formatter</span></code></p>
-<dl class="method">
-<dt id="src.loggingSat.UnittestFormatter.format">
-<code class="descname">format</code><span class="sig-paren">(</span><em>record</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/loggingSat.html#UnittestFormatter.format"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.UnittestFormatter.format" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.loggingSat.UnittestStream">
-<em class="property">class </em><code class="descclassname">src.loggingSat.</code><code class="descname">UnittestStream</code><a class="reference internal" href="../../_modules/src/loggingSat.html#UnittestStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.UnittestStream" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<p>write my stream class
-only write and flush are used for the streaming
-<a class="reference external" href="https://docs.python.org/2/library/logging.handlers.html">https://docs.python.org/2/library/logging.handlers.html</a>
-<a class="reference external" href="https://stackoverflow.com/questions/31999627/storing-logger-messages-in-a-string">https://stackoverflow.com/questions/31999627/storing-logger-messages-in-a-string</a></p>
-<dl class="method">
-<dt id="src.loggingSat.UnittestStream.flush">
-<code class="descname">flush</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/loggingSat.html#UnittestStream.flush"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.UnittestStream.flush" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.loggingSat.UnittestStream.getLogs">
-<code class="descname">getLogs</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/loggingSat.html#UnittestStream.getLogs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.UnittestStream.getLogs" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.loggingSat.UnittestStream.getLogsAndClear">
-<code class="descname">getLogsAndClear</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/loggingSat.html#UnittestStream.getLogsAndClear"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.UnittestStream.getLogsAndClear" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.loggingSat.UnittestStream.write">
-<code class="descname">write</code><span class="sig-paren">(</span><em>astr</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/loggingSat.html#UnittestStream.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.UnittestStream.write" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="function">
-<dt id="src.loggingSat.dirLogger">
-<code class="descclassname">src.loggingSat.</code><code class="descname">dirLogger</code><span class="sig-paren">(</span><em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/loggingSat.html#dirLogger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.dirLogger" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.loggingSat.getDefaultLogger">
-<code class="descclassname">src.loggingSat.</code><code class="descname">getDefaultLogger</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/loggingSat.html#getDefaultLogger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.getDefaultLogger" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.loggingSat.getUnittestLogger">
-<code class="descclassname">src.loggingSat.</code><code class="descname">getUnittestLogger</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/loggingSat.html#getUnittestLogger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.getUnittestLogger" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.loggingSat.indent">
-<code class="descclassname">src.loggingSat.</code><code class="descname">indent</code><span class="sig-paren">(</span><em>msg</em>, <em>nb</em>, <em>car=' '</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/loggingSat.html#indent"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.indent" title="Permalink to this definition">¶</a></dt>
-<dd><p>indent nb car (spaces) multi lines message except first one</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.loggingSat.indentUnittest">
-<code class="descclassname">src.loggingSat.</code><code class="descname">indentUnittest</code><span class="sig-paren">(</span><em>msg</em>, <em>prefix=' | '</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/loggingSat.html#indentUnittest"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.indentUnittest" title="Permalink to this definition">¶</a></dt>
-<dd><p>indent car multi lines message except first one
-car default is less spaces for size logs files
-keep human readable</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.loggingSat.initLoggerAsDefault">
-<code class="descclassname">src.loggingSat.</code><code class="descname">initLoggerAsDefault</code><span class="sig-paren">(</span><em>logger</em>, <em>fmt=None</em>, <em>level=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/loggingSat.html#initLoggerAsDefault"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.initLoggerAsDefault" title="Permalink to this definition">¶</a></dt>
-<dd><p>init logger as prefixed message and indented message if multi line
-exept info() outed 'as it' without any format</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.loggingSat.initLoggerAsUnittest">
-<code class="descclassname">src.loggingSat.</code><code class="descname">initLoggerAsUnittest</code><span class="sig-paren">(</span><em>logger</em>, <em>fmt=None</em>, <em>level=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/loggingSat.html#initLoggerAsUnittest"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.initLoggerAsUnittest" title="Permalink to this definition">¶</a></dt>
-<dd><p>init logger as silent on stdout/stderr
-used for retrieve messages in memory for post execution unittest
-<a class="reference external" href="https://docs.python.org/2/library/logging.handlers.html">https://docs.python.org/2/library/logging.handlers.html</a></p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.loggingSat.log">
-<code class="descclassname">src.loggingSat.</code><code class="descname">log</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/loggingSat.html#log"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.log" title="Permalink to this definition">¶</a></dt>
-<dd><p>elementary log when no logger yet</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.loggingSat.testLogger_1">
-<code class="descclassname">src.loggingSat.</code><code class="descname">testLogger_1</code><span class="sig-paren">(</span><em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/loggingSat.html#testLogger_1"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.loggingSat.testLogger_1" title="Permalink to this definition">¶</a></dt>
-<dd><p>small test</p>
-</dd></dl>
-
-</div>
-<div class="section" id="module-src.options">
-<span id="src-options-module"></span><h2>src.options module<a class="headerlink" href="#module-src.options" title="Permalink to this headline">¶</a></h2>
-<p>The Options class that manages the access to all options passed as 
-parameters in salomeTools command lines</p>
-<dl class="class">
-<dt id="src.options.OptResult">
-<em class="property">class </em><code class="descclassname">src.options.</code><code class="descname">OptResult</code><a class="reference internal" href="../../_modules/src/options.html#OptResult"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.options.OptResult" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<p>An instance of this class will be the object manipulated
-in code of all salomeTools commands
-The aim of this class is to have an elegant syntax to manipulate the options.</p>
-<dl class="docutils">
-<dt>example: </dt>
-<dd>&gt;&gt; print(options.level)
-&gt;&gt; 5</dd>
-</dl>
-</dd></dl>
-
-<dl class="class">
-<dt id="src.options.Options">
-<em class="property">class </em><code class="descclassname">src.options.</code><code class="descname">Options</code><a class="reference internal" href="../../_modules/src/options.html#Options"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.options.Options" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<p>Class to manage all salomeTools options</p>
-<dl class="method">
-<dt id="src.options.Options.add_option">
-<code class="descname">add_option</code><span class="sig-paren">(</span><em>shortName</em>, <em>longName</em>, <em>optionType</em>, <em>destName</em>, <em>helpString=''</em>, <em>default=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/options.html#Options.add_option"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.options.Options.add_option" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Method to add an option to a command. It gets all attributes</dt>
-<dd>of an option and append it in the options field</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>str</strong> (<em>helpString</em>) -- The short name of the option
-(ex &quot;l&quot; for level option).</li>
-<li><strong>str</strong> -- The long name of the option 
-(ex &quot;level&quot; for level option).</li>
-<li><strong>str</strong> -- The type of the option (ex &quot;int&quot;).</li>
-<li><strong>str</strong> -- The name that will be used in the code.</li>
-<li><strong>str</strong> -- The text to display 
-when user ask for help on a command.</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Nothing.</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">NA</p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.options.Options.debug_write">
-<code class="descname">debug_write</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/options.html#Options.debug_write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.options.Options.debug_write" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.options.Options.getDetailOption">
-<code class="descname">getDetailOption</code><span class="sig-paren">(</span><em>option</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/options.html#Options.getDetailOption"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.options.Options.getDetailOption" title="Permalink to this definition">¶</a></dt>
-<dd><p>for convenience 
-returns (shortName, longName, optionType, helpString')</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.options.Options.get_help">
-<code class="descname">get_help</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/options.html#Options.get_help"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.options.Options.get_help" title="Permalink to this definition">¶</a></dt>
-<dd><p>Method that returns all options stored in self.options 
-as help message colored string</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">colored string</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body">NA</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.options.Options.indent">
-<code class="descname">indent</code><span class="sig-paren">(</span><em>text</em>, <em>amount</em>, <em>car=' '</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/options.html#Options.indent"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.options.Options.indent" title="Permalink to this definition">¶</a></dt>
-<dd><p>indent multi lines message</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.options.Options.parse_args">
-<code class="descname">parse_args</code><span class="sig-paren">(</span><em>argList=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/options.html#Options.parse_args"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.options.Options.parse_args" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Method that instantiates the class OptResult </dt>
-<dd>that gives access to all options in the code</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>list</strong> (<em>argList</em>) -- the raw list of arguments that were passed</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">optResult, args : optResult is the option instance 
-to manipulate in the code. args 
-is the full raw list of passed options</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">(class 'common.options.OptResult',list)</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-</dd></dl>
-
-</div>
-<div class="section" id="module-src.product">
-<span id="src-product-module"></span><h2>src.product module<a class="headerlink" href="#module-src.product" title="Permalink to this headline">¶</a></h2>
-<p>In this file are implemented the methods 
-relative to the product notion of salomeTools</p>
-<dl class="function">
-<dt id="src.product.check_config_exists">
-<code class="descclassname">src.product.</code><code class="descname">check_config_exists</code><span class="sig-paren">(</span><em>config</em>, <em>prod_dir</em>, <em>prod_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#check_config_exists"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.check_config_exists" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Verify that the installation directory of a product in a base exists</dt>
-<dd>Check all the config-&lt;i&gt; directory and verify the sat-config.pyconf file
-that is in it</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>Config</strong> (<em>product_info</em>) -- The global configuration</li>
-<li><strong>str</strong> (<em>prod_dir</em>) -- The product installation directory path 
-(without config-&lt;i&gt;)</li>
-<li><strong>Config</strong> -- The configuration specific to 
-the product</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">True or false is the installation is found or not 
-and if it is found, the path of the found installation</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">(boolean, str)</p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.check_installation">
-<code class="descclassname">src.product.</code><code class="descname">check_installation</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#check_installation"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.check_installation" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Verify if a product is well installed. Checks install directory presence</dt>
-<dd>and some additional files if it is defined in the config</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if it is well installed</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.get_base_install_dir">
-<code class="descclassname">src.product.</code><code class="descname">get_base_install_dir</code><span class="sig-paren">(</span><em>config</em>, <em>prod_info</em>, <em>version</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#get_base_install_dir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.get_base_install_dir" title="Permalink to this definition">¶</a></dt>
-<dd><p>Compute the installation directory of a product in base</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>Config</strong> (<em>product_info</em>) -- The global configuration</li>
-<li><strong>Config</strong> -- The configuration specific to 
-the product</li>
-<li><strong>str</strong> (<em>version</em>) -- The version of the product</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The path of the product installation</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">str</p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.get_install_dir">
-<code class="descclassname">src.product.</code><code class="descname">get_install_dir</code><span class="sig-paren">(</span><em>config</em>, <em>base</em>, <em>version</em>, <em>prod_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#get_install_dir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.get_install_dir" title="Permalink to this definition">¶</a></dt>
-<dd><p>Compute the installation directory of a given product</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>Config</strong> (<em>product_info</em>) -- The global configuration</li>
-<li><strong>str</strong> (<em>version</em>) -- This corresponds to the value given by user in its application.pyconf for the specific product. If &quot;yes&quot;, the user wants the product to be in base. If &quot;no&quot;, he wants the product to be in the application workdir</li>
-<li><strong>str</strong> -- The version of the product</li>
-<li><strong>Config</strong> -- The configuration specific to the product</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The path of the product installation</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">str</p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.get_product_components">
-<code class="descclassname">src.product.</code><code class="descname">get_product_components</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#get_product_components"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.get_product_components" title="Permalink to this definition">¶</a></dt>
-<dd><p>Get the component list to generate with the product</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The list of names of the components</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">List</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.get_product_config">
-<code class="descclassname">src.product.</code><code class="descname">get_product_config</code><span class="sig-paren">(</span><em>config</em>, <em>product_name</em>, <em>with_install_dir=True</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#get_product_config"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.get_product_config" title="Permalink to this definition">¶</a></dt>
-<dd><p>Get the specific configuration of a product from the global configuration</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>Config</strong> (<em>config</em>) -- The global configuration</li>
-<li><strong>str</strong> (<em>product_name</em>) -- The name of the product</li>
-<li><strong>boolean</strong> (<em>with_install_dir</em>) -- If false, do not provide an install 
-directory (at false only for internal use 
-of the function check_config_exists)</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">the specific configuration of the product</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#src.pyconf.Config" title="src.pyconf.Config">Config</a></p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.get_product_dependencies">
-<code class="descclassname">src.product.</code><code class="descname">get_product_dependencies</code><span class="sig-paren">(</span><em>config</em>, <em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#get_product_dependencies"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.get_product_dependencies" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Get recursively the list of products that are </dt>
-<dd>in the product_info dependencies</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>Config</strong> (<em>product_info</em>) -- The global configuration</li>
-<li><strong>Config</strong> -- The configuration specific to 
-the product</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">the list of products in dependence</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#src.utilsSat.Path.list" title="src.utilsSat.Path.list">list</a></p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.get_product_section">
-<code class="descclassname">src.product.</code><code class="descname">get_product_section</code><span class="sig-paren">(</span><em>config</em>, <em>product_name</em>, <em>version</em>, <em>section=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#get_product_section"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.get_product_section" title="Permalink to this definition">¶</a></dt>
-<dd><p>Get the product description from the configuration</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>Config</strong> (<em>config</em>) -- The global configuration</li>
-<li><strong>str</strong> (<em>section</em>) -- The product name</li>
-<li><strong>str</strong> -- The version of the product</li>
-<li><strong>str</strong> -- The searched section (if not None, the section is 
-explicitly given</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The product description</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#src.pyconf.Config" title="src.pyconf.Config">Config</a></p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.get_products_infos">
-<code class="descclassname">src.product.</code><code class="descname">get_products_infos</code><span class="sig-paren">(</span><em>lproducts</em>, <em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#get_products_infos"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.get_products_infos" title="Permalink to this definition">¶</a></dt>
-<dd><p>Get the specific configuration of a list of products</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>List</strong> (<em>lproducts</em>) -- The list of product names</li>
-<li><strong>Config</strong> (<em>config</em>) -- The global configuration</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">the list of tuples 
-(product name, specific configuration of the product)</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">[(str, Config)]</p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.product_compiles">
-<code class="descclassname">src.product.</code><code class="descname">product_compiles</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#product_compiles"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_compiles" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Know if a product compiles or not (some products do not have a </dt>
-<dd>compilation procedure)</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if the product compiles, else False</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.product_has_env_script">
-<code class="descclassname">src.product.</code><code class="descname">product_has_env_script</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#product_has_env_script"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_has_env_script" title="Permalink to this definition">¶</a></dt>
-<dd><p>Know if a product has an environment script</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if the product it has an environment script, else False</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.product_has_logo">
-<code class="descclassname">src.product.</code><code class="descname">product_has_logo</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#product_has_logo"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_has_logo" title="Permalink to this definition">¶</a></dt>
-<dd><p>Know if a product has a logo (YACSGEN generate)</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The path of the logo if the product has a logo, else False</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">Str</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.product_has_patches">
-<code class="descclassname">src.product.</code><code class="descname">product_has_patches</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#product_has_patches"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_has_patches" title="Permalink to this definition">¶</a></dt>
-<dd><p>Know if a product has one or more patches</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if the product has one or more patches</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.product_has_salome_gui">
-<code class="descclassname">src.product.</code><code class="descname">product_has_salome_gui</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#product_has_salome_gui"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_has_salome_gui" title="Permalink to this definition">¶</a></dt>
-<dd><p>Know if a product has a SALOME gui</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if the product has a SALOME gui, else False</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">Boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.product_has_script">
-<code class="descclassname">src.product.</code><code class="descname">product_has_script</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#product_has_script"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_has_script" title="Permalink to this definition">¶</a></dt>
-<dd><p>Know if a product has a compilation script</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if the product it has a compilation script, else False</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.product_is_SALOME">
-<code class="descclassname">src.product.</code><code class="descname">product_is_SALOME</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#product_is_SALOME"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_SALOME" title="Permalink to this definition">¶</a></dt>
-<dd><p>Know if a product is a SALOME module</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if the product is a SALOME module, else False</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.product_is_autotools">
-<code class="descclassname">src.product.</code><code class="descname">product_is_autotools</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#product_is_autotools"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_autotools" title="Permalink to this definition">¶</a></dt>
-<dd><p>Know if a product is compiled using the autotools</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if the product is autotools, else False</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.product_is_cmake">
-<code class="descclassname">src.product.</code><code class="descname">product_is_cmake</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#product_is_cmake"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_cmake" title="Permalink to this definition">¶</a></dt>
-<dd><p>Know if a product is compiled using the cmake</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if the product is cmake, else False</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.product_is_cpp">
-<code class="descclassname">src.product.</code><code class="descname">product_is_cpp</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#product_is_cpp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_cpp" title="Permalink to this definition">¶</a></dt>
-<dd><p>Know if a product is cpp</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if the product is a cpp, else False</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.product_is_debug">
-<code class="descclassname">src.product.</code><code class="descname">product_is_debug</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#product_is_debug"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_debug" title="Permalink to this definition">¶</a></dt>
-<dd><p>Know if a product is in debug mode</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if the product is in debug mode, else False</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.product_is_dev">
-<code class="descclassname">src.product.</code><code class="descname">product_is_dev</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#product_is_dev"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_dev" title="Permalink to this definition">¶</a></dt>
-<dd><p>Know if a product is in dev mode</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if the product is in dev mode, else False</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.product_is_fixed">
-<code class="descclassname">src.product.</code><code class="descname">product_is_fixed</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#product_is_fixed"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_fixed" title="Permalink to this definition">¶</a></dt>
-<dd><p>Know if a product is fixed</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if the product is fixed, else False</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.product_is_generated">
-<code class="descclassname">src.product.</code><code class="descname">product_is_generated</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#product_is_generated"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_generated" title="Permalink to this definition">¶</a></dt>
-<dd><p>Know if a product is generated (YACSGEN)</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if the product is generated</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.product_is_mpi">
-<code class="descclassname">src.product.</code><code class="descname">product_is_mpi</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#product_is_mpi"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_mpi" title="Permalink to this definition">¶</a></dt>
-<dd><p>Know if a product has openmpi in its dependencies</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if the product has openmpi inits dependencies</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.product_is_native">
-<code class="descclassname">src.product.</code><code class="descname">product_is_native</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#product_is_native"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_native" title="Permalink to this definition">¶</a></dt>
-<dd><p>Know if a product is native</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if the product is native, else False</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.product_is_salome">
-<code class="descclassname">src.product.</code><code class="descname">product_is_salome</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#product_is_salome"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_salome" title="Permalink to this definition">¶</a></dt>
-<dd><p>Know if a product is of type salome</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if the product is salome, else False</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.product_is_sample">
-<code class="descclassname">src.product.</code><code class="descname">product_is_sample</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#product_is_sample"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_sample" title="Permalink to this definition">¶</a></dt>
-<dd><p>Know if a product has the sample type</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if the product has the sample type, else False</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.product_is_smesh_plugin">
-<code class="descclassname">src.product.</code><code class="descname">product_is_smesh_plugin</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#product_is_smesh_plugin"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_smesh_plugin" title="Permalink to this definition">¶</a></dt>
-<dd><p>Know if a product is a SMESH plugin</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if the product is a SMESH plugin, else False</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.product.product_is_vcs">
-<code class="descclassname">src.product.</code><code class="descname">product_is_vcs</code><span class="sig-paren">(</span><em>product_info</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/product.html#product_is_vcs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.product.product_is_vcs" title="Permalink to this definition">¶</a></dt>
-<dd><p>Know if a product is download using git, svn or cvs (not archive)</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>product_info</em>) -- The configuration specific to 
-the product</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">True if the product is vcs, else False</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-</div>
-<div class="section" id="module-src.pyconf">
-<span id="src-pyconf-module"></span><h2>src.pyconf module<a class="headerlink" href="#module-src.pyconf" title="Permalink to this headline">¶</a></h2>
-<p>This is a configuration module for Python.</p>
-<p>This module should work under Python versions &gt;= 2.2, and cannot be used with
-earlier versions since it uses new-style classes.</p>
-<p>Development and testing has only been carried out (so far) on Python 2.3.4 and
-Python 2.4.2. See the test module (test_config.py) included in the
-U{distribution&lt;<a class="reference external" href="http://www.red-dove.com/python_config">http://www.red-dove.com/python_config</a>.html|_blank&gt;} (follow the
-download link).</p>
-<p>A simple example - with the example configuration file:</p>
-<div class="highlight-default"><div class="highlight"><pre><span></span>messages:
-[
-  {
-    stream : `sys.stderr`
-    message: &#39;Welcome&#39;
-    name: &#39;Harry&#39;
-  }
-  {
-    stream : `sys.stdout`
-    message: &#39;Welkom&#39;
-    name: &#39;Ruud&#39;
-  }
-  {
-    stream : $messages[0].stream
-    message: &#39;Bienvenue&#39;
-    name: Yves
-  }
-]
-</pre></div>
-</div>
-<p>a program to read the configuration would be:</p>
-<div class="highlight-default"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">config</span> <span class="k">import</span> <span class="n">Config</span>
-
-<span class="n">f</span> <span class="o">=</span> <span class="n">file</span><span class="p">(</span><span class="s1">&#39;simple.cfg&#39;</span><span class="p">)</span>
-<span class="n">cfg</span> <span class="o">=</span> <span class="n">Config</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
-<span class="k">for</span> <span class="n">m</span> <span class="ow">in</span> <span class="n">cfg</span><span class="o">.</span><span class="n">messages</span><span class="p">:</span>
-    <span class="n">s</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%s</span><span class="s1">, </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">message</span><span class="p">,</span> <span class="n">m</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-    <span class="k">try</span><span class="p">:</span>
-        <span class="nb">print</span> <span class="o">&gt;&gt;</span> <span class="n">m</span><span class="o">.</span><span class="n">stream</span><span class="p">,</span> <span class="n">s</span>
-    <span class="k">except</span> <span class="ne">IOError</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span>
-        <span class="nb">print</span> <span class="n">e</span>
-</pre></div>
-</div>
-<p>which, when run, would yield the console output:</p>
-<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">Welcome</span><span class="p">,</span> <span class="n">Harry</span>
-<span class="n">Welkom</span><span class="p">,</span> <span class="n">Ruud</span>
-<span class="n">Bienvenue</span><span class="p">,</span> <span class="n">Yves</span>
-</pre></div>
-</div>
-<p>See U{this tutorial&lt;<a class="reference external" href="http://www.red-dove.com/python_config">http://www.red-dove.com/python_config</a>.html|_blank&gt;} for more
-information.</p>
-<p>#modified for salomeTools
-&#64;version: 0.3.7.1</p>
-<p>&#64;author: Vinay Sajip</p>
-<p>&#64;copyright: Copyright (C) 2004-2007 Vinay Sajip. All Rights Reserved.</p>
-<p>&#64;var streamOpener: The default stream opener. This is a factory function which
-takes a string (e.g. filename) and returns a stream suitable for reading. If
-unable to open the stream, an IOError exception should be thrown.</p>
-<p>The default value of this variable is L{defaultStreamOpener}. For an example
-of how it's used, see test_config.py (search for streamOpener).</p>
-<dl class="class">
-<dt id="src.pyconf.Config">
-<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">Config</code><span class="sig-paren">(</span><em>streamOrFile=None</em>, <em>parent=None</em>, <em>PWD=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Config"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Config" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <a class="reference internal" href="#src.pyconf.Mapping" title="src.pyconf.Mapping"><code class="xref py py-class docutils literal"><span class="pre">src.pyconf.Mapping</span></code></a></p>
-<p>This class represents a configuration, and is the only one which clients
-need to interface to, under normal circumstances.</p>
-<dl class="class">
-<dt id="src.pyconf.Config.Namespace">
-<em class="property">class </em><code class="descname">Namespace</code><a class="reference internal" href="../../_modules/src/pyconf.html#Config.Namespace"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Config.Namespace" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<p>This internal class is used for implementing default namespaces.</p>
-<p>An instance acts as a namespace.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.Config.addNamespace">
-<code class="descclassname">Config.</code><code class="descname">addNamespace</code><span class="sig-paren">(</span><em>ns</em>, <em>name=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Config.addNamespace"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Config.addNamespace" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add a namespace to this configuration which can be used to evaluate
-(resolve) dotted-identifier expressions.
-&#64;param ns: The namespace to be added.
-&#64;type ns: A module or other namespace suitable for passing as an
-argument to vars().
-&#64;param name: A name for the namespace, which, if specified, provides
-an additional level of indirection.
-&#64;type name: str</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.Config.getByPath">
-<code class="descclassname">Config.</code><code class="descname">getByPath</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Config.getByPath"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Config.getByPath" title="Permalink to this definition">¶</a></dt>
-<dd><p>Obtain a value in the configuration via its path.
-&#64;param path: The path of the required value
-&#64;type path: str
-&#64;return the value at the specified path.
-&#64;rtype: any
-&#64;raise ConfigError: If the path is invalid</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.Config.load">
-<code class="descclassname">Config.</code><code class="descname">load</code><span class="sig-paren">(</span><em>stream</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Config.load"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Config.load" title="Permalink to this definition">¶</a></dt>
-<dd><p>Load the configuration from the specified stream. Multiple streams can
-be used to populate the same instance, as long as there are no
-clashing keys. The stream is closed.
-&#64;param stream: A stream from which the configuration is read.
-&#64;type stream: A read-only stream (file-like object).
-&#64;raise ConfigError: if keys in the loaded configuration clash with
-existing keys.
-&#64;raise ConfigFormatError: if there is a syntax error in the stream.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.Config.removeNamespace">
-<code class="descclassname">Config.</code><code class="descname">removeNamespace</code><span class="sig-paren">(</span><em>ns</em>, <em>name=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Config.removeNamespace"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Config.removeNamespace" title="Permalink to this definition">¶</a></dt>
-<dd><p>Remove a namespace added with L{addNamespace}.
-&#64;param ns: The namespace to be removed.
-&#64;param name: The name which was specified when L{addNamespace} was
-called.
-&#64;type name: str</p>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="exception">
-<dt id="src.pyconf.ConfigError">
-<em class="property">exception </em><code class="descclassname">src.pyconf.</code><code class="descname">ConfigError</code><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigError" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">exceptions.Exception</span></code></p>
-<p>This is the base class of exceptions raised by this module.</p>
-</dd></dl>
-
-<dl class="exception">
-<dt id="src.pyconf.ConfigFormatError">
-<em class="property">exception </em><code class="descclassname">src.pyconf.</code><code class="descname">ConfigFormatError</code><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigFormatError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigFormatError" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <a class="reference internal" href="#src.pyconf.ConfigError" title="src.pyconf.ConfigError"><code class="xref py py-class docutils literal"><span class="pre">src.pyconf.ConfigError</span></code></a></p>
-<p>This is the base class of exceptions raised due to syntax errors in
-configurations.</p>
-</dd></dl>
-
-<dl class="class">
-<dt id="src.pyconf.ConfigInputStream">
-<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">ConfigInputStream</code><span class="sig-paren">(</span><em>stream</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigInputStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigInputStream" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<p>An input stream which can read either ANSI files with default encoding
-or Unicode files with BOMs.</p>
-<p>Handles UTF-8, UTF-16LE, UTF-16BE. Could handle UTF-32 if Python had
-built-in support.</p>
-<dl class="method">
-<dt id="src.pyconf.ConfigInputStream.close">
-<code class="descname">close</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigInputStream.close"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigInputStream.close" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigInputStream.read">
-<code class="descname">read</code><span class="sig-paren">(</span><em>size</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigInputStream.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigInputStream.read" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigInputStream.readline">
-<code class="descname">readline</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigInputStream.readline"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigInputStream.readline" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.pyconf.ConfigList">
-<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">ConfigList</code><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigList"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigList" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">list</span></code></p>
-<p>This class implements an ordered list of configurations and allows you
-to try getting the configuration from each entry in turn, returning
-the first successfully obtained value.</p>
-<dl class="method">
-<dt id="src.pyconf.ConfigList.getByPath">
-<code class="descname">getByPath</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigList.getByPath"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigList.getByPath" title="Permalink to this definition">¶</a></dt>
-<dd><p>Obtain a value from the first configuration in the list which defines
-it.</p>
-<p>&#64;param path: The path of the value to retrieve.
-&#64;type path: str
-&#64;return: The value from the earliest configuration in the list which
-defines it.
-&#64;rtype: any
-&#64;raise ConfigError: If no configuration in the list has an entry with
-the specified path.</p>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.pyconf.ConfigMerger">
-<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">ConfigMerger</code><span class="sig-paren">(</span><em>resolver=&lt;function defaultMergeResolve&gt;</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigMerger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigMerger" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<p>This class is used for merging two configurations. If a key exists in the
-merge operand but not the merge target, then the entry is copied from the
-merge operand to the merge target. If a key exists in both configurations,
-then a resolver (a callable) is called to decide how to handle the
-conflict.</p>
-<dl class="method">
-<dt id="src.pyconf.ConfigMerger.handleMismatch">
-<code class="descname">handleMismatch</code><span class="sig-paren">(</span><em>obj1</em>, <em>obj2</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigMerger.handleMismatch"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigMerger.handleMismatch" title="Permalink to this definition">¶</a></dt>
-<dd><p>Handle a mismatch between two objects.</p>
-<p>&#64;param obj1: The object to merge into.
-&#64;type obj1: any
-&#64;param obj2: The object to merge.
-&#64;type obj2: any</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigMerger.merge">
-<code class="descname">merge</code><span class="sig-paren">(</span><em>merged</em>, <em>mergee</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigMerger.merge"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigMerger.merge" title="Permalink to this definition">¶</a></dt>
-<dd><p>Merge two configurations. The second configuration is unchanged,
-and the first is changed to reflect the results of the merge.</p>
-<p>&#64;param merged: The configuration to merge into.
-&#64;type merged: L{Config}.
-&#64;param mergee: The configuration to merge.
-&#64;type mergee: L{Config}.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigMerger.mergeMapping">
-<code class="descname">mergeMapping</code><span class="sig-paren">(</span><em>map1</em>, <em>map2</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigMerger.mergeMapping"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigMerger.mergeMapping" title="Permalink to this definition">¶</a></dt>
-<dd><p>Merge two mappings recursively. The second mapping is unchanged,
-and the first is changed to reflect the results of the merge.</p>
-<p>&#64;param map1: The mapping to merge into.
-&#64;type map1: L{Mapping}.
-&#64;param map2: The mapping to merge.
-&#64;type map2: L{Mapping}.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigMerger.mergeSequence">
-<code class="descname">mergeSequence</code><span class="sig-paren">(</span><em>seq1</em>, <em>seq2</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigMerger.mergeSequence"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigMerger.mergeSequence" title="Permalink to this definition">¶</a></dt>
-<dd><p>Merge two sequences. The second sequence is unchanged,
-and the first is changed to have the elements of the second
-appended to it.</p>
-<p>&#64;param seq1: The sequence to merge into.
-&#64;type seq1: L{Sequence}.
-&#64;param seq2: The sequence to merge.
-&#64;type seq2: L{Sequence}.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigMerger.overwriteKeys">
-<code class="descname">overwriteKeys</code><span class="sig-paren">(</span><em>map1</em>, <em>seq2</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigMerger.overwriteKeys"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigMerger.overwriteKeys" title="Permalink to this definition">¶</a></dt>
-<dd><p>Renint variables. The second mapping is unchanged,
-and the first is changed depending the keys of the second mapping.
-&#64;param map1: The mapping to reinit keys into.
-&#64;type map1: L{Mapping}.
-&#64;param map2: The mapping container reinit information.
-&#64;type map2: L{Mapping}.</p>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.pyconf.ConfigOutputStream">
-<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">ConfigOutputStream</code><span class="sig-paren">(</span><em>stream</em>, <em>encoding=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigOutputStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigOutputStream" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<p>An output stream which can write either ANSI files with default encoding
-or Unicode files with BOMs.</p>
-<p>Handles UTF-8, UTF-16LE, UTF-16BE. Could handle UTF-32 if Python had
-built-in support.</p>
-<dl class="method">
-<dt id="src.pyconf.ConfigOutputStream.close">
-<code class="descname">close</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigOutputStream.close"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigOutputStream.close" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigOutputStream.flush">
-<code class="descname">flush</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigOutputStream.flush"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigOutputStream.flush" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigOutputStream.write">
-<code class="descname">write</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigOutputStream.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigOutputStream.write" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.pyconf.ConfigReader">
-<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">ConfigReader</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigReader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<p>This internal class implements a parser for configurations.</p>
-<dl class="method">
-<dt id="src.pyconf.ConfigReader.getChar">
-<code class="descname">getChar</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigReader.getChar"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.getChar" title="Permalink to this definition">¶</a></dt>
-<dd><p>Get the next char from the stream. Update line and column numbers
-appropriately.</p>
-<p>&#64;return: The next character from the stream.
-&#64;rtype: str</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigReader.getToken">
-<code class="descname">getToken</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigReader.getToken"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.getToken" title="Permalink to this definition">¶</a></dt>
-<dd><p>Get a token from the stream. String values are returned in a form
-where you need to eval() the returned value to get the actual
-string. The return value is (token_type, token_value).</p>
-<p>Multiline string tokenizing is thanks to David Janes (BlogMatrix)</p>
-<p>&#64;return: The next token.
-&#64;rtype: A token tuple.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigReader.load">
-<code class="descname">load</code><span class="sig-paren">(</span><em>stream</em>, <em>parent=None</em>, <em>suffix=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigReader.load"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.load" title="Permalink to this definition">¶</a></dt>
-<dd><p>Load the configuration from the specified stream.</p>
-<p>&#64;param stream: A stream from which to load the configuration.
-&#64;type stream: A stream (file-like object).
-&#64;param parent: The parent of the configuration (to which this reader
-belongs) in the hierarchy. Specified when the configuration is
-included in another one.
-&#64;type parent: A L{Container} instance.
-&#64;param suffix: The suffix of this configuration in the parent
-configuration. Should be specified whenever the parent is not None.
-&#64;raise ConfigError: If parent is specified but suffix is not.
-&#64;raise ConfigFormatError: If there are syntax errors in the stream.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigReader.location">
-<code class="descname">location</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigReader.location"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.location" title="Permalink to this definition">¶</a></dt>
-<dd><p>Return the current location (filename, line, column) in the stream
-as a string.</p>
-<p>Used when printing error messages,</p>
-<p>&#64;return: A string representing a location in the stream being read.
-&#64;rtype: str</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigReader.match">
-<code class="descname">match</code><span class="sig-paren">(</span><em>t</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigReader.match"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.match" title="Permalink to this definition">¶</a></dt>
-<dd><p>Ensure that the current token type matches the specified value, and
-advance to the next token.</p>
-<p>&#64;param t: The token type to match.
-&#64;type t: A valid token type.
-&#64;return: The token which was last read from the stream before this
-function is called.
-&#64;rtype: a token tuple - see L{getToken}.
-&#64;raise ConfigFormatError: If the token does not match what's expected.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigReader.parseFactor">
-<code class="descname">parseFactor</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigReader.parseFactor"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.parseFactor" title="Permalink to this definition">¶</a></dt>
-<dd><p>Parse a factor in an multiplicative expression (a * b, a / b, a % b)</p>
-<p>&#64;return: the parsed factor
-&#64;rtype: any scalar
-&#64;raise ConfigFormatError: if a syntax error is found.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigReader.parseKeyValuePair">
-<code class="descname">parseKeyValuePair</code><span class="sig-paren">(</span><em>parent</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigReader.parseKeyValuePair"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.parseKeyValuePair" title="Permalink to this definition">¶</a></dt>
-<dd><p>Parse a key-value pair, and add it to the provided L{Mapping}.</p>
-<p>&#64;param parent: The mapping to add entries to.
-&#64;type parent: A L{Mapping} instance.
-&#64;raise ConfigFormatError: if a syntax error is found.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigReader.parseMapping">
-<code class="descname">parseMapping</code><span class="sig-paren">(</span><em>parent</em>, <em>suffix</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigReader.parseMapping"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.parseMapping" title="Permalink to this definition">¶</a></dt>
-<dd><p>Parse a mapping.</p>
-<p>&#64;param parent: The container to which the mapping will be added.
-&#64;type parent: A L{Container} instance.
-&#64;param suffix: The suffix for the value.
-&#64;type suffix: str
-&#64;return: a L{Mapping} instance representing the mapping.
-&#64;rtype: L{Mapping}
-&#64;raise ConfigFormatError: if a syntax error is found.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigReader.parseMappingBody">
-<code class="descname">parseMappingBody</code><span class="sig-paren">(</span><em>parent</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigReader.parseMappingBody"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.parseMappingBody" title="Permalink to this definition">¶</a></dt>
-<dd><p>Parse the internals of a mapping, and add entries to the provided
-L{Mapping}.</p>
-<p>&#64;param parent: The mapping to add entries to.
-&#64;type parent: A L{Mapping} instance.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigReader.parseReference">
-<code class="descname">parseReference</code><span class="sig-paren">(</span><em>type</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigReader.parseReference"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.parseReference" title="Permalink to this definition">¶</a></dt>
-<dd><p>Parse a reference.</p>
-<p>&#64;return: the parsed reference
-&#64;rtype: L{Reference}
-&#64;raise ConfigFormatError: if a syntax error is found.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigReader.parseScalar">
-<code class="descname">parseScalar</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigReader.parseScalar"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.parseScalar" title="Permalink to this definition">¶</a></dt>
-<dd><p>Parse a scalar - a terminal value such as a string or number, or
-an L{Expression} or L{Reference}.</p>
-<p>&#64;return: the parsed scalar
-&#64;rtype: any scalar
-&#64;raise ConfigFormatError: if a syntax error is found.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigReader.parseSequence">
-<code class="descname">parseSequence</code><span class="sig-paren">(</span><em>parent</em>, <em>suffix</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigReader.parseSequence"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.parseSequence" title="Permalink to this definition">¶</a></dt>
-<dd><p>Parse a sequence.</p>
-<p>&#64;param parent: The container to which the sequence will be added.
-&#64;type parent: A L{Container} instance.
-&#64;param suffix: The suffix for the value.
-&#64;type suffix: str
-&#64;return: a L{Sequence} instance representing the sequence.
-&#64;rtype: L{Sequence}
-&#64;raise ConfigFormatError: if a syntax error is found.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigReader.parseSuffix">
-<code class="descname">parseSuffix</code><span class="sig-paren">(</span><em>ref</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigReader.parseSuffix"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.parseSuffix" title="Permalink to this definition">¶</a></dt>
-<dd><p>Parse a reference suffix.</p>
-<p>&#64;param ref: The reference of which this suffix is a part.
-&#64;type ref: L{Reference}.
-&#64;raise ConfigFormatError: if a syntax error is found.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigReader.parseTerm">
-<code class="descname">parseTerm</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigReader.parseTerm"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.parseTerm" title="Permalink to this definition">¶</a></dt>
-<dd><p>Parse a term in an additive expression (a + b, a - b)</p>
-<p>&#64;return: the parsed term
-&#64;rtype: any scalar
-&#64;raise ConfigFormatError: if a syntax error is found.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigReader.parseValue">
-<code class="descname">parseValue</code><span class="sig-paren">(</span><em>parent</em>, <em>suffix</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigReader.parseValue"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.parseValue" title="Permalink to this definition">¶</a></dt>
-<dd><p>Parse a value.</p>
-<p>&#64;param parent: The container to which the value will be added.
-&#64;type parent: A L{Container} instance.
-&#64;param suffix: The suffix for the value.
-&#64;type suffix: str
-&#64;return: The value
-&#64;rtype: any
-&#64;raise ConfigFormatError: if a syntax error is found.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.ConfigReader.setStream">
-<code class="descname">setStream</code><span class="sig-paren">(</span><em>stream</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigReader.setStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigReader.setStream" title="Permalink to this definition">¶</a></dt>
-<dd><p>Set the stream to the specified value, and prepare to read from it.</p>
-<p>&#64;param stream: A stream from which to load the configuration.
-&#64;type stream: A stream (file-like object).</p>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="exception">
-<dt id="src.pyconf.ConfigResolutionError">
-<em class="property">exception </em><code class="descclassname">src.pyconf.</code><code class="descname">ConfigResolutionError</code><a class="reference internal" href="../../_modules/src/pyconf.html#ConfigResolutionError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.ConfigResolutionError" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <a class="reference internal" href="#src.pyconf.ConfigError" title="src.pyconf.ConfigError"><code class="xref py py-class docutils literal"><span class="pre">src.pyconf.ConfigError</span></code></a></p>
-<p>This is the base class of exceptions raised due to semantic errors in
-configurations.</p>
-</dd></dl>
-
-<dl class="class">
-<dt id="src.pyconf.Container">
-<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">Container</code><span class="sig-paren">(</span><em>parent</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Container"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Container" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<p>This internal class is the base class for mappings and sequences.</p>
-<p>&#64;ivar path: A string which describes how to get
-to this instance from the root of the hierarchy.</p>
-<p>Example:</p>
-<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">a</span><span class="o">.</span><span class="n">list</span><span class="o">.</span><span class="n">of</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="ow">or</span><span class="p">[</span><span class="s1">&#39;more&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">elements</span>
-</pre></div>
-</div>
-<dl class="method">
-<dt id="src.pyconf.Container.evaluate">
-<code class="descname">evaluate</code><span class="sig-paren">(</span><em>item</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Container.evaluate"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Container.evaluate" title="Permalink to this definition">¶</a></dt>
-<dd><p>Evaluate items which are instances of L{Reference} or L{Expression}.</p>
-<p>L{Reference} instances are evaluated using L{Reference.resolve},
-and L{Expression} instances are evaluated using
-L{Expression.evaluate}.</p>
-<p>&#64;param item: The item to be evaluated.
-&#64;type item: any
-&#64;return: If the item is an instance of L{Reference} or L{Expression},
-the evaluated value is returned, otherwise the item is returned
-unchanged.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.Container.setPath">
-<code class="descname">setPath</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Container.setPath"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Container.setPath" title="Permalink to this definition">¶</a></dt>
-<dd><p>Set the path for this instance.
-&#64;param path: The path - a string which describes how to get
-to this instance from the root of the hierarchy.
-&#64;type path: str</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.Container.writeToStream">
-<code class="descname">writeToStream</code><span class="sig-paren">(</span><em>stream</em>, <em>indent</em>, <em>container</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Container.writeToStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Container.writeToStream" title="Permalink to this definition">¶</a></dt>
-<dd><p>Write this instance to a stream at the specified indentation level.</p>
-<p>Should be redefined in subclasses.</p>
-<p>&#64;param stream: The stream to write to
-&#64;type stream: A writable stream (file-like object)
-&#64;param indent: The indentation level
-&#64;type indent: int
-&#64;param container: The container of this instance
-&#64;type container: L{Container}
-&#64;raise NotImplementedError: If a subclass does not override this</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.Container.writeValue">
-<code class="descname">writeValue</code><span class="sig-paren">(</span><em>value</em>, <em>stream</em>, <em>indent</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Container.writeValue"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Container.writeValue" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.pyconf.Expression">
-<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">Expression</code><span class="sig-paren">(</span><em>op</em>, <em>lhs</em>, <em>rhs</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Expression"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Expression" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<p>This internal class implements a value which is obtained by evaluating an expression.</p>
-<dl class="method">
-<dt id="src.pyconf.Expression.evaluate">
-<code class="descname">evaluate</code><span class="sig-paren">(</span><em>container</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Expression.evaluate"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Expression.evaluate" title="Permalink to this definition">¶</a></dt>
-<dd><p>Evaluate this instance in the context of a container.</p>
-<p>&#64;param container: The container to evaluate in from.
-&#64;type container: L{Container}
-&#64;return: The evaluated value.
-&#64;rtype: any
-&#64;raise ConfigResolutionError: If evaluation fails.
-&#64;raise ZeroDivideError: If division by zero occurs.
-&#64;raise TypeError: If the operation is invalid, e.g.
-subtracting one string from another.</p>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.pyconf.Mapping">
-<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">Mapping</code><span class="sig-paren">(</span><em>parent=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Mapping"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Mapping" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <a class="reference internal" href="#src.pyconf.Container" title="src.pyconf.Container"><code class="xref py py-class docutils literal"><span class="pre">src.pyconf.Container</span></code></a></p>
-<p>This internal class implements key-value mappings in configurations.</p>
-<dl class="method">
-<dt id="src.pyconf.Mapping.addMapping">
-<code class="descname">addMapping</code><span class="sig-paren">(</span><em>key</em>, <em>value</em>, <em>comment</em>, <em>setting=False</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Mapping.addMapping"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Mapping.addMapping" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add a key-value mapping with a comment.</p>
-<p>&#64;param key: The key for the mapping.
-&#64;type key: str
-&#64;param value: The value for the mapping.
-&#64;type value: any
-&#64;param comment: The comment for the key (can be None).
-&#64;type comment: str
-&#64;param setting: If True, ignore clashes. This is set
-to true when called from L{__setattr__}.
-&#64;raise ConfigFormatError: If an existing key is seen
-again and setting is False.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.Mapping.get">
-<code class="descname">get</code><span class="sig-paren">(</span><em>key</em>, <em>default=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Mapping.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Mapping.get" title="Permalink to this definition">¶</a></dt>
-<dd><p>Allows a dictionary-style get operation.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.Mapping.iteritems">
-<code class="descname">iteritems</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Mapping.iteritems"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Mapping.iteritems" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.Mapping.iterkeys">
-<code class="descname">iterkeys</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Mapping.iterkeys"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Mapping.iterkeys" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.Mapping.keys">
-<code class="descname">keys</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Mapping.keys"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Mapping.keys" title="Permalink to this definition">¶</a></dt>
-<dd><p>Return the keys in a similar way to a dictionary.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.Mapping.writeToStream">
-<code class="descname">writeToStream</code><span class="sig-paren">(</span><em>stream</em>, <em>indent</em>, <em>container</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Mapping.writeToStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Mapping.writeToStream" title="Permalink to this definition">¶</a></dt>
-<dd><p>Write this instance to a stream at the specified indentation level.</p>
-<p>Should be redefined in subclasses.</p>
-<p>&#64;param stream: The stream to write to
-&#64;type stream: A writable stream (file-like object)
-&#64;param indent: The indentation level
-&#64;type indent: int
-&#64;param container: The container of this instance
-&#64;type container: L{Container}</p>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.pyconf.Reference">
-<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">Reference</code><span class="sig-paren">(</span><em>config</em>, <em>type</em>, <em>ident</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Reference"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Reference" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<p>This internal class implements a value which is a reference to another value.</p>
-<dl class="method">
-<dt id="src.pyconf.Reference.addElement">
-<code class="descname">addElement</code><span class="sig-paren">(</span><em>type</em>, <em>ident</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Reference.addElement"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Reference.addElement" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add an element to the reference.</p>
-<p>&#64;param type: The type of reference.
-&#64;type type: BACKTICK or DOLLAR
-&#64;param ident: The identifier which continues the reference.
-&#64;type ident: str</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.Reference.findConfig">
-<code class="descname">findConfig</code><span class="sig-paren">(</span><em>container</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Reference.findConfig"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Reference.findConfig" title="Permalink to this definition">¶</a></dt>
-<dd><p>Find the closest enclosing configuration to the specified container.</p>
-<p>&#64;param container: The container to start from.
-&#64;type container: L{Container}
-&#64;return: The closest enclosing configuration, or None.
-&#64;rtype: L{Config}</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.Reference.resolve">
-<code class="descname">resolve</code><span class="sig-paren">(</span><em>container</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Reference.resolve"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Reference.resolve" title="Permalink to this definition">¶</a></dt>
-<dd><p>Resolve this instance in the context of a container.</p>
-<p>&#64;param container: The container to resolve from.
-&#64;type container: L{Container}
-&#64;return: The resolved value.
-&#64;rtype: any
-&#64;raise ConfigResolutionError: If resolution fails.</p>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.pyconf.Sequence">
-<em class="property">class </em><code class="descclassname">src.pyconf.</code><code class="descname">Sequence</code><span class="sig-paren">(</span><em>parent=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Sequence"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Sequence" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <a class="reference internal" href="#src.pyconf.Container" title="src.pyconf.Container"><code class="xref py py-class docutils literal"><span class="pre">src.pyconf.Container</span></code></a></p>
-<p>This internal class implements a value which is a sequence of other values.</p>
-<dl class="class">
-<dt id="src.pyconf.Sequence.SeqIter">
-<em class="property">class </em><code class="descname">SeqIter</code><span class="sig-paren">(</span><em>seq</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Sequence.SeqIter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Sequence.SeqIter" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<p>This internal class implements an iterator for a L{Sequence} instance.</p>
-<dl class="method">
-<dt id="src.pyconf.Sequence.SeqIter.next">
-<code class="descname">next</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Sequence.SeqIter.next"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Sequence.SeqIter.next" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.Sequence.append">
-<code class="descclassname">Sequence.</code><code class="descname">append</code><span class="sig-paren">(</span><em>item</em>, <em>comment</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Sequence.append"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Sequence.append" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add an item to the sequence.</p>
-<p>&#64;param item: The item to add.
-&#64;type item: any
-&#64;param comment: A comment for the item.
-&#64;type comment: str</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.pyconf.Sequence.writeToStream">
-<code class="descclassname">Sequence.</code><code class="descname">writeToStream</code><span class="sig-paren">(</span><em>stream</em>, <em>indent</em>, <em>container</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#Sequence.writeToStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.Sequence.writeToStream" title="Permalink to this definition">¶</a></dt>
-<dd><p>Write this instance to a stream at the specified indentation level.</p>
-<p>Should be redefined in subclasses.</p>
-<p>&#64;param stream: The stream to write to
-&#64;type stream: A writable stream (file-like object)
-&#64;param indent: The indentation level
-&#64;type indent: int
-&#64;param container: The container of this instance
-&#64;type container: L{Container}</p>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="function">
-<dt id="src.pyconf.deepCopyMapping">
-<code class="descclassname">src.pyconf.</code><code class="descname">deepCopyMapping</code><span class="sig-paren">(</span><em>inMapping</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#deepCopyMapping"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.deepCopyMapping" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.pyconf.defaultMergeResolve">
-<code class="descclassname">src.pyconf.</code><code class="descname">defaultMergeResolve</code><span class="sig-paren">(</span><em>map1</em>, <em>map2</em>, <em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#defaultMergeResolve"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.defaultMergeResolve" title="Permalink to this definition">¶</a></dt>
-<dd><p>A default resolver for merge conflicts. 
-Returns a string indicating what action to take to resolve the conflict.</p>
-<p>&#64;param map1: The map being merged into.
-&#64;type map1: L{Mapping}.
-&#64;param map2: The map being used as the merge operand.
-&#64;type map2: L{Mapping}.
-&#64;param key: The key in map2 (which also exists in map1).
-&#64;type key: str
-&#64;return: One of &quot;merge&quot;, &quot;append&quot;, &quot;mismatch&quot; or &quot;overwrite&quot; 
-indicating what action should be taken. This should
-be appropriate to the objects being merged - e.g.
-there is no point returning &quot;merge&quot; if the two objects
-are instances of L{Sequence}.
-&#64;rtype: str</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.pyconf.defaultStreamOpener">
-<code class="descclassname">src.pyconf.</code><code class="descname">defaultStreamOpener</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#defaultStreamOpener"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.defaultStreamOpener" title="Permalink to this definition">¶</a></dt>
-<dd><p>This function returns a read-only stream, given its name. The name passed
-in should correspond to an existing stream, otherwise an exception will be
-raised.</p>
-<p>This is the default value of L{streamOpener}; assign your own callable to
-streamOpener to return streams based on names. For example, you could use
-urllib2.urlopen().</p>
-<p>&#64;param name: The name of a stream, most commonly a file name.
-&#64;type name: str
-&#64;return: A stream with the specified name.
-&#64;rtype: A read-only stream (file-like object)</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.pyconf.isWord">
-<code class="descclassname">src.pyconf.</code><code class="descname">isWord</code><span class="sig-paren">(</span><em>s</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#isWord"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.isWord" title="Permalink to this definition">¶</a></dt>
-<dd><p>See if a passed-in value is an identifier. If the value passed in is not a
-string, False is returned. An identifier consists of alphanumerics or
-underscore characters.</p>
-<p>Examples:</p>
-<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">isWord</span><span class="p">(</span><span class="s1">&#39;a word&#39;</span><span class="p">)</span> <span class="o">-&gt;</span><span class="kc">False</span>
-<span class="n">isWord</span><span class="p">(</span><span class="s1">&#39;award&#39;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">True</span>
-<span class="n">isWord</span><span class="p">(</span><span class="mi">9</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">False</span>
-<span class="n">isWord</span><span class="p">(</span><span class="s1">&#39;a_b_c_&#39;</span><span class="p">)</span> <span class="o">-&gt;</span><span class="kc">True</span>
-</pre></div>
-</div>
-<p>&#64;note: isWord('9abc') will return True - not exactly correct, but adequate
-for the way it's used here.</p>
-<p>&#64;param s: The name to be tested
-&#64;type s: any
-&#64;return: True if a word, else False
-&#64;rtype: bool</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.pyconf.makePath">
-<code class="descclassname">src.pyconf.</code><code class="descname">makePath</code><span class="sig-paren">(</span><em>prefix</em>, <em>suffix</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#makePath"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.makePath" title="Permalink to this definition">¶</a></dt>
-<dd><p>Make a path from a prefix and suffix.</p>
-<p>Examples::
-makePath('', 'suffix') -&gt; 'suffix'
-makePath('prefix', 'suffix') -&gt; 'prefix.suffix'
-makePath('prefix', '[1]') -&gt; 'prefix[1]'</p>
-<p>&#64;param prefix:  The prefix to use. If it evaluates as false, the suffix is returned.
-&#64;type prefix:   str
-&#64;param suffix:  The suffix to use. It is either an identifier or an index in brackets.
-&#64;type suffix:   str
-&#64;return:        The path concatenation of prefix and suffix, with a dot if the suffix is not a bracketed index.
-&#64;rtype:         str</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.pyconf.overwriteMergeResolve">
-<code class="descclassname">src.pyconf.</code><code class="descname">overwriteMergeResolve</code><span class="sig-paren">(</span><em>map1</em>, <em>map2</em>, <em>key</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/pyconf.html#overwriteMergeResolve"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.pyconf.overwriteMergeResolve" title="Permalink to this definition">¶</a></dt>
-<dd><p>An overwriting resolver for merge conflicts. Calls L{defaultMergeResolve},
-but where a &quot;mismatch&quot; is detected, returns &quot;overwrite&quot; instead.</p>
-<p>&#64;param map1: The map being merged into.
-&#64;type map1: L{Mapping}.
-&#64;param map2: The map being used as the merge operand.
-&#64;type map2: L{Mapping}.
-&#64;param key: The key in map2 (which also exists in map1).
-&#64;type key: str</p>
-</dd></dl>
-
-</div>
-<div class="section" id="module-src.returnCode">
-<span id="src-returncode-module"></span><h2>src.returnCode module<a class="headerlink" href="#module-src.returnCode" title="Permalink to this headline">¶</a></h2>
-<p>This file contains ReturnCode class
-usage:
-&gt;&gt; import returnCode as RCO</p>
-<dl class="class">
-<dt id="src.returnCode.ReturnCode">
-<em class="property">class </em><code class="descclassname">src.returnCode.</code><code class="descname">ReturnCode</code><span class="sig-paren">(</span><em>status=None</em>, <em>why=None</em>, <em>value=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/returnCode.html#ReturnCode"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.returnCode.ReturnCode" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<p>assume simple return code for methods, with explanation as 'why'
-obviously why is why it is not OK, 
-but also why is why it is OK (if you want). 
-and optionnaly contains a return value as self.getValue()</p>
-<dl class="docutils">
-<dt>usage:</dt>
-<dd><p class="first">&gt;&gt; import returnCode as RCO</p>
-<p>&gt;&gt; aValue = doSomethingToReturn()
-&gt;&gt; return RCO.ReturnCode(&quot;KO&quot;, &quot;there is no problem here&quot;, aValue)
-&gt;&gt; return RCO.ReturnCode(&quot;KO&quot;, &quot;there is a problem here because etc&quot;, None)
-&gt;&gt; return RCO.ReturnCode(&quot;TIMEOUT_STATUS&quot;, &quot;too long here because etc&quot;)
-&gt;&gt; return RCO.ReturnCode(&quot;NA&quot;, &quot;not applicable here because etc&quot;)</p>
-<p>&gt;&gt; rc = doSomething()
-&gt;&gt; print(&quot;short returnCode string&quot;, str(rc))
-&gt;&gt; print(&quot;long returnCode string with value&quot;, repr(rc))</p>
-<p class="last">&gt;&gt; rc1 = RCO.ReturnCode(&quot;OK&quot;, ...)
-&gt;&gt; rc2 = RCO.ReturnCode(&quot;KO&quot;, ...)
-&gt;&gt; rcFinal = rc1 + rc2
-&gt;&gt; print(&quot;long returnCode string with value&quot;, repr(rcFinal)) # KO!</p>
-</dd>
-</dl>
-<dl class="attribute">
-<dt id="src.returnCode.ReturnCode.KFSYS">
-<code class="descname">KFSYS</code><em class="property"> = 4</em><a class="headerlink" href="#src.returnCode.ReturnCode.KFSYS" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.returnCode.ReturnCode.KNOWNFAILURE_STATUS">
-<code class="descname">KNOWNFAILURE_STATUS</code><em class="property"> = 'KF'</em><a class="headerlink" href="#src.returnCode.ReturnCode.KNOWNFAILURE_STATUS" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.returnCode.ReturnCode.KOSYS">
-<code class="descname">KOSYS</code><em class="property"> = 1</em><a class="headerlink" href="#src.returnCode.ReturnCode.KOSYS" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.returnCode.ReturnCode.KO_STATUS">
-<code class="descname">KO_STATUS</code><em class="property"> = 'KO'</em><a class="headerlink" href="#src.returnCode.ReturnCode.KO_STATUS" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.returnCode.ReturnCode.NASYS">
-<code class="descname">NASYS</code><em class="property"> = 2</em><a class="headerlink" href="#src.returnCode.ReturnCode.NASYS" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.returnCode.ReturnCode.NA_STATUS">
-<code class="descname">NA_STATUS</code><em class="property"> = 'NA'</em><a class="headerlink" href="#src.returnCode.ReturnCode.NA_STATUS" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.returnCode.ReturnCode.NDSYS">
-<code class="descname">NDSYS</code><em class="property"> = 3</em><a class="headerlink" href="#src.returnCode.ReturnCode.NDSYS" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.returnCode.ReturnCode.OKSYS">
-<code class="descname">OKSYS</code><em class="property"> = 0</em><a class="headerlink" href="#src.returnCode.ReturnCode.OKSYS" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.returnCode.ReturnCode.OK_STATUS">
-<code class="descname">OK_STATUS</code><em class="property"> = 'OK'</em><a class="headerlink" href="#src.returnCode.ReturnCode.OK_STATUS" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.returnCode.ReturnCode.TIMEOUT_STATUS">
-<code class="descname">TIMEOUT_STATUS</code><em class="property"> = 'TIMEOUT'</em><a class="headerlink" href="#src.returnCode.ReturnCode.TIMEOUT_STATUS" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.returnCode.ReturnCode.TOSYS">
-<code class="descname">TOSYS</code><em class="property"> = 5</em><a class="headerlink" href="#src.returnCode.ReturnCode.TOSYS" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.returnCode.ReturnCode.UNKNOWN_STATUS">
-<code class="descname">UNKNOWN_STATUS</code><em class="property"> = 'ND'</em><a class="headerlink" href="#src.returnCode.ReturnCode.UNKNOWN_STATUS" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.returnCode.ReturnCode.getValue">
-<code class="descname">getValue</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/returnCode.html#ReturnCode.getValue"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.returnCode.ReturnCode.getValue" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.returnCode.ReturnCode.getWhy">
-<code class="descname">getWhy</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/returnCode.html#ReturnCode.getWhy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.returnCode.ReturnCode.getWhy" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.returnCode.ReturnCode.indent">
-<code class="descname">indent</code><span class="sig-paren">(</span><em>text</em>, <em>amount=5</em>, <em>ch=' '</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/returnCode.html#ReturnCode.indent"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.returnCode.ReturnCode.indent" title="Permalink to this definition">¶</a></dt>
-<dd><p>indent multi lines message</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.returnCode.ReturnCode.isOk">
-<code class="descname">isOk</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/returnCode.html#ReturnCode.isOk"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.returnCode.ReturnCode.isOk" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.returnCode.ReturnCode.setStatus">
-<code class="descname">setStatus</code><span class="sig-paren">(</span><em>status</em>, <em>why=None</em>, <em>value=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/returnCode.html#ReturnCode.setStatus"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.returnCode.ReturnCode.setStatus" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.returnCode.ReturnCode.setValue">
-<code class="descname">setValue</code><span class="sig-paren">(</span><em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/returnCode.html#ReturnCode.setValue"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.returnCode.ReturnCode.setValue" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.returnCode.ReturnCode.setWhy">
-<code class="descname">setWhy</code><span class="sig-paren">(</span><em>why</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/returnCode.html#ReturnCode.setWhy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.returnCode.ReturnCode.setWhy" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.returnCode.ReturnCode.toSys">
-<code class="descname">toSys</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/returnCode.html#ReturnCode.toSys"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.returnCode.ReturnCode.toSys" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-</div>
-<div class="section" id="module-src.salomeTools">
-<span id="src-salometools-module"></span><h2>src.salomeTools module<a class="headerlink" href="#module-src.salomeTools" title="Permalink to this headline">¶</a></h2>
-<p>This file is the main entry file to salomeTools
-NO __main__ entry allowed, use 'sat' (in parent directory)</p>
-<dl class="class">
-<dt id="src.salomeTools.Sat">
-<em class="property">class </em><code class="descclassname">src.salomeTools.</code><code class="descname">Sat</code><span class="sig-paren">(</span><em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/salomeTools.html#Sat"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<p>The main class that stores all the commands of salomeTools
-(usually known as 'runner' argument in Command classes)</p>
-<dl class="method">
-<dt id="src.salomeTools.Sat.assumeAsList">
-<code class="descname">assumeAsList</code><span class="sig-paren">(</span><em>strOrList</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/salomeTools.html#Sat.assumeAsList"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.assumeAsList" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.salomeTools.Sat.execute_cli">
-<code class="descname">execute_cli</code><span class="sig-paren">(</span><em>cli_arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/salomeTools.html#Sat.execute_cli"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.execute_cli" title="Permalink to this definition">¶</a></dt>
-<dd><p>select first argument as a command in directory 'commands', and launch on arguments</p>
-<p>:param args str or list, The sat cli arguments (as sys.argv)</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.salomeTools.Sat.getColoredVersion">
-<code class="descname">getColoredVersion</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/salomeTools.html#Sat.getColoredVersion"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.getColoredVersion" title="Permalink to this definition">¶</a></dt>
-<dd><p>get colored salomeTools version message</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.salomeTools.Sat.getCommandAndAppli">
-<code class="descname">getCommandAndAppli</code><span class="sig-paren">(</span><em>arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/salomeTools.html#Sat.getCommandAndAppli"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.getCommandAndAppli" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.salomeTools.Sat.getCommandInstance">
-<code class="descname">getCommandInstance</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/salomeTools.html#Sat.getCommandInstance"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.getCommandInstance" title="Permalink to this definition">¶</a></dt>
-<dd><p>returns inherited instance of Command(_BaseCmd) for command 'name'
-if module not loaded yet, load it.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.salomeTools.Sat.getConfig">
-<code class="descname">getConfig</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/salomeTools.html#Sat.getConfig"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.getConfig" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.salomeTools.Sat.getConfigManager">
-<code class="descname">getConfigManager</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/salomeTools.html#Sat.getConfigManager"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.getConfigManager" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.salomeTools.Sat.getLogger">
-<code class="descname">getLogger</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/salomeTools.html#Sat.getLogger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.getLogger" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.salomeTools.Sat.getModule">
-<code class="descname">getModule</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/salomeTools.html#Sat.getModule"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.getModule" title="Permalink to this definition">¶</a></dt>
-<dd><p>returns only-one-time loaded module Command 'name'
-assume load if not done yet</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.salomeTools.Sat.get_help">
-<code class="descname">get_help</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/salomeTools.html#Sat.get_help"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.get_help" title="Permalink to this definition">¶</a></dt>
-<dd><p>get general help colored string</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.salomeTools.Sat.parseArguments">
-<code class="descname">parseArguments</code><span class="sig-paren">(</span><em>arguments</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/salomeTools.html#Sat.parseArguments"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.parseArguments" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.salomeTools.Sat.print_help">
-<code class="descname">print_help</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/salomeTools.html#Sat.print_help"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.Sat.print_help" title="Permalink to this definition">¶</a></dt>
-<dd><p>prints salomeTools general help</p>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="function">
-<dt id="src.salomeTools.assumeAsList">
-<code class="descclassname">src.salomeTools.</code><code class="descname">assumeAsList</code><span class="sig-paren">(</span><em>strOrList</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/salomeTools.html#assumeAsList"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.assumeAsList" title="Permalink to this definition">¶</a></dt>
-<dd><p>return a list as sys.argv if string</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.salomeTools.find_command_list">
-<code class="descclassname">src.salomeTools.</code><code class="descname">find_command_list</code><span class="sig-paren">(</span><em>dirPath</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/salomeTools.html#find_command_list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.find_command_list" title="Permalink to this definition">¶</a></dt>
-<dd><p>Parse files in dirPath that end with '.py' : it gives commands list</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>dirPath</em>) -- The directory path where to search the commands</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">cmd_list : the list containing the commands name</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#src.utilsSat.Path.list" title="src.utilsSat.Path.list">list</a></td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.salomeTools.getCommandsList">
-<code class="descclassname">src.salomeTools.</code><code class="descname">getCommandsList</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/salomeTools.html#getCommandsList"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.getCommandsList" title="Permalink to this definition">¶</a></dt>
-<dd><p>Gives commands list (as basename of files .py in directory commands</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.salomeTools.getVersion">
-<code class="descclassname">src.salomeTools.</code><code class="descname">getVersion</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/salomeTools.html#getVersion"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.getVersion" title="Permalink to this definition">¶</a></dt>
-<dd><p>get version number as string</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.salomeTools.launchSat">
-<code class="descclassname">src.salomeTools.</code><code class="descname">launchSat</code><span class="sig-paren">(</span><em>command</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/salomeTools.html#launchSat"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.launchSat" title="Permalink to this definition">¶</a></dt>
-<dd><p>launch sat as subprocess popen
-command as string ('sat --help' for example)
-used for unittest, or else...
-returns tuple (stdout, stderr)</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.salomeTools.setLocale">
-<code class="descclassname">src.salomeTools.</code><code class="descname">setLocale</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/salomeTools.html#setLocale"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.setLocale" title="Permalink to this definition">¶</a></dt>
-<dd><p>reset initial locale at any moment 
-'fr' or else (TODO) from initial environment var '$LANG'
-'i18n' as 'internationalization'</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.salomeTools.setNotLocale">
-<code class="descclassname">src.salomeTools.</code><code class="descname">setNotLocale</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/salomeTools.html#setNotLocale"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.salomeTools.setNotLocale" title="Permalink to this definition">¶</a></dt>
-<dd><p>force english at any moment</p>
-</dd></dl>
-
-</div>
-<div class="section" id="module-src.system">
-<span id="src-system-module"></span><h2>src.system module<a class="headerlink" href="#module-src.system" title="Permalink to this headline">¶</a></h2>
-<p>All utilities method doing a system call, 
-like open a browser or an editor, or call a git command</p>
-<dl class="docutils">
-<dt>usage:</dt>
-<dd>&gt;&gt; import src.system as SYSS</dd>
-</dl>
-<dl class="function">
-<dt id="src.system.archive_extract">
-<code class="descclassname">src.system.</code><code class="descname">archive_extract</code><span class="sig-paren">(</span><em>from_what</em>, <em>where</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/system.html#archive_extract"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.system.archive_extract" title="Permalink to this definition">¶</a></dt>
-<dd><p>Extracts sources from an archive.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>str</strong> (<em>where</em>) -- The path to the archive.</li>
-<li><strong>str</strong> -- The path where to extract.</li>
-<li><strong>Logger</strong> (<em>logger</em>) -- The logger instance to use.</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">True if the extraction is successful</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">boolean</p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.system.cvs_extract">
-<code class="descclassname">src.system.</code><code class="descname">cvs_extract</code><span class="sig-paren">(</span><em>protocol</em>, <em>user</em>, <em>server</em>, <em>base</em>, <em>tag</em>, <em>product</em>, <em>where</em>, <em>logger</em>, <em>checkout=False</em>, <em>environment=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/system.html#cvs_extract"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.system.cvs_extract" title="Permalink to this definition">¶</a></dt>
-<dd><p>Extracts sources from a cvs repository.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>str</strong> (<em>where</em>) -- The cvs protocol.</li>
-<li><strong>str</strong> -- The user to be used.</li>
-<li><strong>str</strong> -- The remote cvs server.</li>
-<li><strong>str</strong> -- <p>.</p>
-</li>
-<li><strong>str</strong> -- The tag.</li>
-<li><strong>str</strong> -- The product.</li>
-<li><strong>str</strong> -- The path where to extract.</li>
-<li><strong>Logger</strong> (<em>logger</em>) -- The logger instance to use.</li>
-<li><strong>boolean</strong> (<em>checkout</em>) -- If true use checkout cvs.</li>
-<li><strong>src.environment.Environ</strong> (<a class="reference internal" href="#module-src.environment" title="src.environment"><em>environment</em></a>) -- The environment to source when
-extracting.</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">True if the extraction is successful</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">boolean</p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.system.git_extract">
-<code class="descclassname">src.system.</code><code class="descname">git_extract</code><span class="sig-paren">(</span><em>from_what</em>, <em>tag</em>, <em>where</em>, <em>logger</em>, <em>environment=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/system.html#git_extract"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.system.git_extract" title="Permalink to this definition">¶</a></dt>
-<dd><p>Extracts sources from a git repository.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>str</strong> (<em>where</em>) -- The remote git repository.</li>
-<li><strong>str</strong> -- The tag.</li>
-<li><strong>str</strong> -- The path where to extract.</li>
-<li><strong>Logger</strong> (<em>logger</em>) -- The logger instance to use.</li>
-<li><strong>src.environment.Environ</strong> (<a class="reference internal" href="#module-src.environment" title="src.environment"><em>environment</em></a>) -- The environment to source when
-extracting.</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">True if the extraction is successful</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">boolean</p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.system.show_in_editor">
-<code class="descclassname">src.system.</code><code class="descname">show_in_editor</code><span class="sig-paren">(</span><em>editor</em>, <em>filePath</em>, <em>logger</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/system.html#show_in_editor"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.system.show_in_editor" title="Permalink to this definition">¶</a></dt>
-<dd><p>open filePath using editor.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>filePath</em>) -- The editor to use.</li>
-<li><strong>str</strong> -- The path to the file to open.</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.system.svn_extract">
-<code class="descclassname">src.system.</code><code class="descname">svn_extract</code><span class="sig-paren">(</span><em>user</em>, <em>from_what</em>, <em>tag</em>, <em>where</em>, <em>logger</em>, <em>checkout=False</em>, <em>environment=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/system.html#svn_extract"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.system.svn_extract" title="Permalink to this definition">¶</a></dt>
-<dd><p>Extracts sources from a svn repository.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>str</strong> (<em>where</em>) -- The user to be used.</li>
-<li><strong>str</strong> -- The remote git repository.</li>
-<li><strong>str</strong> -- The tag.</li>
-<li><strong>str</strong> -- The path where to extract.</li>
-<li><strong>Logger</strong> (<em>logger</em>) -- The logger instance to use.</li>
-<li><strong>boolean</strong> (<em>checkout</em>) -- If true use checkout svn.</li>
-<li><strong>src.environment.Environ</strong> (<a class="reference internal" href="#module-src.environment" title="src.environment"><em>environment</em></a>) -- The environment to source when
-extracting.</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">True if the extraction is successful</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">boolean</p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-</div>
-<div class="section" id="module-src.template">
-<span id="src-template-module"></span><h2>src.template module<a class="headerlink" href="#module-src.template" title="Permalink to this headline">¶</a></h2>
-<dl class="class">
-<dt id="src.template.MyTemplate">
-<em class="property">class </em><code class="descclassname">src.template.</code><code class="descname">MyTemplate</code><span class="sig-paren">(</span><em>template</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/template.html#MyTemplate"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.template.MyTemplate" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">string.Template</span></code></p>
-<dl class="attribute">
-<dt id="src.template.MyTemplate.delimiter">
-<code class="descname">delimiter</code><em class="property"> = '\xc2\xa4'</em><a class="headerlink" href="#src.template.MyTemplate.delimiter" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="attribute">
-<dt id="src.template.MyTemplate.pattern">
-<code class="descname">pattern</code><em class="property"> = &lt;_sre.SRE_Pattern object&gt;</em><a class="headerlink" href="#src.template.MyTemplate.pattern" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="function">
-<dt id="src.template.substitute">
-<code class="descclassname">src.template.</code><code class="descname">substitute</code><span class="sig-paren">(</span><em>template_file</em>, <em>subst_dic</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/template.html#substitute"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.template.substitute" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</div>
-<div class="section" id="module-src.test_module">
-<span id="src-test-module-module"></span><h2>src.test_module module<a class="headerlink" href="#module-src.test_module" title="Permalink to this headline">¶</a></h2>
-<dl class="class">
-<dt id="src.test_module.Test">
-<em class="property">class </em><code class="descclassname">src.test_module.</code><code class="descname">Test</code><span class="sig-paren">(</span><em>config</em>, <em>logger</em>, <em>tmp_working_dir</em>, <em>testbase=''</em>, <em>grids=None</em>, <em>sessions=None</em>, <em>launcher=''</em>, <em>show_desktop=True</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/test_module.html#Test"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="method">
-<dt id="src.test_module.Test.generate_launching_commands">
-<code class="descname">generate_launching_commands</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/test_module.html#Test.generate_launching_commands"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.generate_launching_commands" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.test_module.Test.generate_script">
-<code class="descname">generate_script</code><span class="sig-paren">(</span><em>listTest</em>, <em>script_path</em>, <em>ignoreList</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/test_module.html#Test.generate_script"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.generate_script" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.test_module.Test.get_test_timeout">
-<code class="descname">get_test_timeout</code><span class="sig-paren">(</span><em>test_name</em>, <em>default_value</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/test_module.html#Test.get_test_timeout"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.get_test_timeout" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.test_module.Test.get_tmp_dir">
-<code class="descname">get_tmp_dir</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/test_module.html#Test.get_tmp_dir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.get_tmp_dir" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.test_module.Test.prepare_testbase">
-<code class="descname">prepare_testbase</code><span class="sig-paren">(</span><em>test_base_name</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/test_module.html#Test.prepare_testbase"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.prepare_testbase" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.test_module.Test.prepare_testbase_from_dir">
-<code class="descname">prepare_testbase_from_dir</code><span class="sig-paren">(</span><em>testbase_name</em>, <em>testbase_dir</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/test_module.html#Test.prepare_testbase_from_dir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.prepare_testbase_from_dir" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.test_module.Test.prepare_testbase_from_git">
-<code class="descname">prepare_testbase_from_git</code><span class="sig-paren">(</span><em>testbase_name</em>, <em>testbase_base</em>, <em>testbase_tag</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/test_module.html#Test.prepare_testbase_from_git"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.prepare_testbase_from_git" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.test_module.Test.prepare_testbase_from_svn">
-<code class="descname">prepare_testbase_from_svn</code><span class="sig-paren">(</span><em>user</em>, <em>testbase_name</em>, <em>testbase_base</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/test_module.html#Test.prepare_testbase_from_svn"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.prepare_testbase_from_svn" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.test_module.Test.read_results">
-<code class="descname">read_results</code><span class="sig-paren">(</span><em>listTest</em>, <em>has_timed_out</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/test_module.html#Test.read_results"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.read_results" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.test_module.Test.run_all_tests">
-<code class="descname">run_all_tests</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/test_module.html#Test.run_all_tests"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.run_all_tests" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.test_module.Test.run_grid_tests">
-<code class="descname">run_grid_tests</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/test_module.html#Test.run_grid_tests"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.run_grid_tests" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.test_module.Test.run_script">
-<code class="descname">run_script</code><span class="sig-paren">(</span><em>script_name</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/test_module.html#Test.run_script"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.run_script" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.test_module.Test.run_session_tests">
-<code class="descname">run_session_tests</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/test_module.html#Test.run_session_tests"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.run_session_tests" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.test_module.Test.run_testbase_tests">
-<code class="descname">run_testbase_tests</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/test_module.html#Test.run_testbase_tests"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.run_testbase_tests" title="Permalink to this definition">¶</a></dt>
-<dd><p>Runs test testbase</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.test_module.Test.run_tests">
-<code class="descname">run_tests</code><span class="sig-paren">(</span><em>listTest</em>, <em>ignoreList</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/test_module.html#Test.run_tests"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.run_tests" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.test_module.Test.search_known_errors">
-<code class="descname">search_known_errors</code><span class="sig-paren">(</span><em>status</em>, <em>test_grid</em>, <em>test_session</em>, <em>test</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/test_module.html#Test.search_known_errors"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.search_known_errors" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.test_module.Test.write_test_margin">
-<code class="descname">write_test_margin</code><span class="sig-paren">(</span><em>tab</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/test_module.html#Test.write_test_margin"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.Test.write_test_margin" title="Permalink to this definition">¶</a></dt>
-<dd><p>indent with '| ... +' to show test results.</p>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="function">
-<dt id="src.test_module.getTmpDirDEFAULT">
-<code class="descclassname">src.test_module.</code><code class="descname">getTmpDirDEFAULT</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/test_module.html#getTmpDirDEFAULT"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.test_module.getTmpDirDEFAULT" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</div>
-<div class="section" id="module-src.utilsSat">
-<span id="src-utilssat-module"></span><h2>src.utilsSat module<a class="headerlink" href="#module-src.utilsSat" title="Permalink to this headline">¶</a></h2>
-<p>utilities for sat
-general useful simple methods
-all-in-one import srs.utilsSat as UTS</p>
-<p>usage:
-&gt;&gt; import srsc.utilsSat as UTS
-&gt;&gt; UTS.ensure_path_exists(path)</p>
-<dl class="class">
-<dt id="src.utilsSat.Path">
-<em class="property">class </em><code class="descclassname">src.utilsSat.</code><code class="descname">Path</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#Path"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="method">
-<dt id="src.utilsSat.Path.base">
-<code class="descname">base</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#Path.base"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.base" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.utilsSat.Path.chmod">
-<code class="descname">chmod</code><span class="sig-paren">(</span><em>mode</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#Path.chmod"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.chmod" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.utilsSat.Path.copy">
-<code class="descname">copy</code><span class="sig-paren">(</span><em>path</em>, <em>smart=False</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#Path.copy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.copy" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.utilsSat.Path.copydir">
-<code class="descname">copydir</code><span class="sig-paren">(</span><em>dst</em>, <em>smart=False</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#Path.copydir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.copydir" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.utilsSat.Path.copyfile">
-<code class="descname">copyfile</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#Path.copyfile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.copyfile" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.utilsSat.Path.copylink">
-<code class="descname">copylink</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#Path.copylink"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.copylink" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.utilsSat.Path.dir">
-<code class="descname">dir</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#Path.dir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.dir" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.utilsSat.Path.exists">
-<code class="descname">exists</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#Path.exists"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.exists" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.utilsSat.Path.isdir">
-<code class="descname">isdir</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#Path.isdir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.isdir" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.utilsSat.Path.isfile">
-<code class="descname">isfile</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#Path.isfile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.isfile" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.utilsSat.Path.islink">
-<code class="descname">islink</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#Path.islink"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.islink" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.utilsSat.Path.list">
-<code class="descname">list</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#Path.list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.list" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.utilsSat.Path.make">
-<code class="descname">make</code><span class="sig-paren">(</span><em>mode=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#Path.make"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.make" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.utilsSat.Path.readlink">
-<code class="descname">readlink</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#Path.readlink"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.readlink" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.utilsSat.Path.rm">
-<code class="descname">rm</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#Path.rm"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.rm" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.utilsSat.Path.smartcopy">
-<code class="descname">smartcopy</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#Path.smartcopy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.smartcopy" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="method">
-<dt id="src.utilsSat.Path.symlink">
-<code class="descname">symlink</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#Path.symlink"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.Path.symlink" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.black">
-<code class="descclassname">src.utilsSat.</code><code class="descname">black</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#black"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.black" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.blue">
-<code class="descclassname">src.utilsSat.</code><code class="descname">blue</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#blue"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.blue" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.check_config_has_application">
-<code class="descclassname">src.utilsSat.</code><code class="descname">check_config_has_application</code><span class="sig-paren">(</span><em>config</em>, <em>details=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#check_config_has_application"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.check_config_has_application" title="Permalink to this definition">¶</a></dt>
-<dd><p>check that the config has the key APPLICATION. Else raise an exception.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>class 'common.pyconf.Config'</strong> (<em>config</em>) -- The config.</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.check_config_has_profile">
-<code class="descclassname">src.utilsSat.</code><code class="descname">check_config_has_profile</code><span class="sig-paren">(</span><em>config</em>, <em>details=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#check_config_has_profile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.check_config_has_profile" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>check that the config has the key APPLICATION.profile.</dt>
-<dd>Else, raise an exception.</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>class 'common.pyconf.Config'</strong> (<em>config</em>) -- The config.</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.config_has_application">
-<code class="descclassname">src.utilsSat.</code><code class="descname">config_has_application</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#config_has_application"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.config_has_application" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.critical">
-<code class="descclassname">src.utilsSat.</code><code class="descname">critical</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#critical"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.critical" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.cyan">
-<code class="descclassname">src.utilsSat.</code><code class="descname">cyan</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#cyan"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.cyan" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.date_to_datetime">
-<code class="descclassname">src.utilsSat.</code><code class="descname">date_to_datetime</code><span class="sig-paren">(</span><em>date</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#date_to_datetime"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.date_to_datetime" title="Permalink to this definition">¶</a></dt>
-<dd><p>From a string date in format YYYYMMDD_HHMMSS
-returns list year, mon, day, hour, minutes, seconds</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>date</em>) -- The date in format YYYYMMDD_HHMMSS</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">the same date and time in separate variables.</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">(str,str,str,str,str,str)</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.deepcopy_list">
-<code class="descclassname">src.utilsSat.</code><code class="descname">deepcopy_list</code><span class="sig-paren">(</span><em>input_list</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#deepcopy_list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.deepcopy_list" title="Permalink to this definition">¶</a></dt>
-<dd><p>Do a deep copy of a list</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>List</strong> (<em>input_list</em>) -- The list to copy</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The copy of the list</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">List</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.ensure_path_exists">
-<code class="descclassname">src.utilsSat.</code><code class="descname">ensure_path_exists</code><span class="sig-paren">(</span><em>p</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#ensure_path_exists"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.ensure_path_exists" title="Permalink to this definition">¶</a></dt>
-<dd><p>Create a path if not existing</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>p</em>) -- The path.</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.error">
-<code class="descclassname">src.utilsSat.</code><code class="descname">error</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#error"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.error" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.find_file_in_lpath">
-<code class="descclassname">src.utilsSat.</code><code class="descname">find_file_in_lpath</code><span class="sig-paren">(</span><em>file_name</em>, <em>lpath</em>, <em>additional_dir=''</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#find_file_in_lpath"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.find_file_in_lpath" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Find in all the directories in lpath list the file that has the same name</dt>
-<dd>as file_name. If it is found, return the full path of the file, else,
-return False. 
-The additional_dir (optional) is the name of the directory to add to all 
-paths in lpath.</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>str</strong> (<em>additional_dir</em>) -- The file name to search</li>
-<li><strong>List</strong> (<em>lpath</em>) -- The list of directories where to search</li>
-<li><strong>str</strong> -- The name of the additional directory</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">the full path of the file or False if not found</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">str</p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.formatTuples">
-<code class="descclassname">src.utilsSat.</code><code class="descname">formatTuples</code><span class="sig-paren">(</span><em>tuples</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#formatTuples"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.formatTuples" title="Permalink to this definition">¶</a></dt>
-<dd><p>format 'label = value' the tuples in a tabulated way.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>list</strong> (<em>tuples</em>) -- The list of tuples to format</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The tabulated text. (mutiples lines)</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.formatValue">
-<code class="descclassname">src.utilsSat.</code><code class="descname">formatValue</code><span class="sig-paren">(</span><em>label</em>, <em>value</em>, <em>suffix=''</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#formatValue"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.formatValue" title="Permalink to this definition">¶</a></dt>
-<dd><p>format 'label = value' with the info color</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>int</strong> (<a class="reference internal" href="#src.utilsSat.label" title="src.utilsSat.label"><em>label</em></a>) -- the label to print.</li>
-<li><strong>str</strong> (<em>suffix</em>) -- the value to print.</li>
-<li><strong>str</strong> -- the optionnal suffix to add at the end.</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.get_base_path">
-<code class="descclassname">src.utilsSat.</code><code class="descname">get_base_path</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#get_base_path"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.get_base_path" title="Permalink to this definition">¶</a></dt>
-<dd><p>Returns the path of the products base.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>config</em>) -- The global Config instance.</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The path of the products base.</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">str</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.get_cfg_param">
-<code class="descclassname">src.utilsSat.</code><code class="descname">get_cfg_param</code><span class="sig-paren">(</span><em>config</em>, <em>param_name</em>, <em>default</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#get_cfg_param"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.get_cfg_param" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Search for param_name value in config.</dt>
-<dd>If param_name is not in config, then return default,
-else, return the found value</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>class 'common.pyconf.Config'</strong> (<em>config</em>) -- The config.</li>
-<li><strong>str</strong> (<em>default</em>) -- the name of the parameter to get the value</li>
-<li><strong>str</strong> -- The value to return if param_name is not in config</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">see initial description of the function</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">str</p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.get_launcher_name">
-<code class="descclassname">src.utilsSat.</code><code class="descname">get_launcher_name</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#get_launcher_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.get_launcher_name" title="Permalink to this definition">¶</a></dt>
-<dd><p>Returns the name of salome launcher.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>config</em>) -- The global Config instance.</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The name of salome launcher.</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">str</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.get_log_path">
-<code class="descclassname">src.utilsSat.</code><code class="descname">get_log_path</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#get_log_path"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.get_log_path" title="Permalink to this definition">¶</a></dt>
-<dd><p>Returns the path of the logs.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>Config</strong> (<em>config</em>) -- The global Config instance.</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The path of the logs.</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">str</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.get_property_in_product_cfg">
-<code class="descclassname">src.utilsSat.</code><code class="descname">get_property_in_product_cfg</code><span class="sig-paren">(</span><em>product_cfg</em>, <em>pprty</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#get_property_in_product_cfg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.get_property_in_product_cfg" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.get_salome_version">
-<code class="descclassname">src.utilsSat.</code><code class="descname">get_salome_version</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#get_salome_version"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.get_salome_version" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.get_tmp_filename">
-<code class="descclassname">src.utilsSat.</code><code class="descname">get_tmp_filename</code><span class="sig-paren">(</span><em>config</em>, <em>name</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#get_tmp_filename"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.get_tmp_filename" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.green">
-<code class="descclassname">src.utilsSat.</code><code class="descname">green</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#green"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.green" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.handleRemoveReadonly">
-<code class="descclassname">src.utilsSat.</code><code class="descname">handleRemoveReadonly</code><span class="sig-paren">(</span><em>func</em>, <em>path</em>, <em>exc</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#handleRemoveReadonly"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.handleRemoveReadonly" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.header">
-<code class="descclassname">src.utilsSat.</code><code class="descname">header</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#header"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.header" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.info">
-<code class="descclassname">src.utilsSat.</code><code class="descname">info</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#info"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.info" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.label">
-<code class="descclassname">src.utilsSat.</code><code class="descname">label</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#label"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.label" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.list_log_file">
-<code class="descclassname">src.utilsSat.</code><code class="descname">list_log_file</code><span class="sig-paren">(</span><em>dirPath</em>, <em>expression</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#list_log_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.list_log_file" title="Permalink to this definition">¶</a></dt>
-<dd><p>Find all files corresponding to expression in dirPath</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>str</strong> (<em>expression</em>) -- the directory where to search the files</li>
-<li><strong>str</strong> -- the regular expression of files to find</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">the list of files path and informations about it</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#src.utilsSat.Path.list" title="src.utilsSat.Path.list">list</a></p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.logger_info_tuples">
-<code class="descclassname">src.utilsSat.</code><code class="descname">logger_info_tuples</code><span class="sig-paren">(</span><em>logger</em>, <em>tuples</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#logger_info_tuples"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.logger_info_tuples" title="Permalink to this definition">¶</a></dt>
-<dd><p>for convenience
-format as formatTuples() and call logger.info()</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.magenta">
-<code class="descclassname">src.utilsSat.</code><code class="descname">magenta</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#magenta"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.magenta" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.merge_dicts">
-<code class="descclassname">src.utilsSat.</code><code class="descname">merge_dicts</code><span class="sig-paren">(</span><em>*dict_args</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#merge_dicts"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.merge_dicts" title="Permalink to this definition">¶</a></dt>
-<dd><p>Given any number of dicts, shallow copy and merge into a new dict,
-precedence goes to key value pairs in latter dicts.</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.normal">
-<code class="descclassname">src.utilsSat.</code><code class="descname">normal</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#normal"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.normal" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.only_numbers">
-<code class="descclassname">src.utilsSat.</code><code class="descname">only_numbers</code><span class="sig-paren">(</span><em>str_num</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#only_numbers"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.only_numbers" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.parse_date">
-<code class="descclassname">src.utilsSat.</code><code class="descname">parse_date</code><span class="sig-paren">(</span><em>date</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#parse_date"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.parse_date" title="Permalink to this definition">¶</a></dt>
-<dd><p>Transform YYYYMMDD_hhmmss into YYYY-MM-DD hh:mm:ss.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>date</em>) -- The date to transform</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The date in the new format</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">str</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.read_config_from_a_file">
-<code class="descclassname">src.utilsSat.</code><code class="descname">read_config_from_a_file</code><span class="sig-paren">(</span><em>filePath</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#read_config_from_a_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.read_config_from_a_file" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.red">
-<code class="descclassname">src.utilsSat.</code><code class="descname">red</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#red"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.red" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.remove_item_from_list">
-<code class="descclassname">src.utilsSat.</code><code class="descname">remove_item_from_list</code><span class="sig-paren">(</span><em>input_list</em>, <em>item</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#remove_item_from_list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.remove_item_from_list" title="Permalink to this definition">¶</a></dt>
-<dd><p>Remove all occurences of item from input_list</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>List</strong> (<em>input_list</em>) -- The list to modify</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The without any item</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">List</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.replace_in_file">
-<code class="descclassname">src.utilsSat.</code><code class="descname">replace_in_file</code><span class="sig-paren">(</span><em>filein</em>, <em>strin</em>, <em>strout</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#replace_in_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.replace_in_file" title="Permalink to this definition">¶</a></dt>
-<dd><p>Replace &lt;strin&gt; by &lt;strout&gt; in file &lt;filein&gt;</p>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.reset">
-<code class="descclassname">src.utilsSat.</code><code class="descname">reset</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#reset"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.reset" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.show_command_log">
-<code class="descclassname">src.utilsSat.</code><code class="descname">show_command_log</code><span class="sig-paren">(</span><em>logFilePath</em>, <em>cmd</em>, <em>application</em>, <em>notShownCommands</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#show_command_log"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.show_command_log" title="Permalink to this definition">¶</a></dt>
-<dd><p>Used in updateHatXml. 
-Determine if the log xml file logFilePath 
-has to be shown or not in the hat log.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>str</strong> (<em>application</em>) -- the path to the command xml log file</li>
-<li><strong>str</strong> -- the command of the log file</li>
-<li><strong>str</strong> -- the application passed as parameter 
-to the salomeTools command</li>
-<li><strong>list</strong> (<em>notShownCommands</em>) -- the list of commands 
-that are not shown by default</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">RCO.ReturnCode(&quot;OK&quot;) if cmd is not in notShownCommands and the application 
-in the log file corresponds to application
-ReturnCode value is tuple (appliLog, launched_cmd)</p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.success">
-<code class="descclassname">src.utilsSat.</code><code class="descname">success</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#success"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.success" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.timedelta_total_seconds">
-<code class="descclassname">src.utilsSat.</code><code class="descname">timedelta_total_seconds</code><span class="sig-paren">(</span><em>timedelta</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#timedelta_total_seconds"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.timedelta_total_seconds" title="Permalink to this definition">¶</a></dt>
-<dd><p>Replace total_seconds from datetime module 
-in order to be compatible with old python versions</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>datetime.timedelta</strong> (<em>timedelta</em>) -- The delta between two dates</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The number of seconds corresponding to timedelta.</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">float</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.update_hat_xml">
-<code class="descclassname">src.utilsSat.</code><code class="descname">update_hat_xml</code><span class="sig-paren">(</span><em>logDir</em>, <em>application=None</em>, <em>notShownCommands=[]</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#update_hat_xml"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.update_hat_xml" title="Permalink to this definition">¶</a></dt>
-<dd><p>Create the xml file in logDir that contain all the xml file 
-and have a name like YYYYMMDD_HHMMSS_namecmd.xml</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>application</em>) -- the directory to parse</li>
-<li><strong>str</strong> -- the name of the application if there is any</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.warning">
-<code class="descclassname">src.utilsSat.</code><code class="descname">warning</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#warning"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.warning" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.white">
-<code class="descclassname">src.utilsSat.</code><code class="descname">white</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#white"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.white" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="function">
-<dt id="src.utilsSat.yellow">
-<code class="descclassname">src.utilsSat.</code><code class="descname">yellow</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/utilsSat.html#yellow"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.utilsSat.yellow" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</div>
-<div class="section" id="module-src.xmlManager">
-<span id="src-xmlmanager-module"></span><h2>src.xmlManager module<a class="headerlink" href="#module-src.xmlManager" title="Permalink to this headline">¶</a></h2>
-<p>Utilities to read xml logging files</p>
-<dl class="docutils">
-<dt>usage:</dt>
-<dd>&gt;&gt; import src.xmlManager as XMLMGR</dd>
-</dl>
-<dl class="class">
-<dt id="src.xmlManager.ReadXmlFile">
-<em class="property">class </em><code class="descclassname">src.xmlManager.</code><code class="descname">ReadXmlFile</code><span class="sig-paren">(</span><em>filePath</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/xmlManager.html#ReadXmlFile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.ReadXmlFile" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<p>Class to manage reading of an xml log file</p>
-<dl class="method">
-<dt id="src.xmlManager.ReadXmlFile.getRootAttrib">
-<code class="descname">getRootAttrib</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/xmlManager.html#ReadXmlFile.getRootAttrib"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.ReadXmlFile.getRootAttrib" title="Permalink to this definition">¶</a></dt>
-<dd><p>Get the attibutes of the self.xmlroot</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The attributes of the root node</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body">dict</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.xmlManager.ReadXmlFile.get_attrib">
-<code class="descname">get_attrib</code><span class="sig-paren">(</span><em>node_name</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/xmlManager.html#ReadXmlFile.get_attrib"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.ReadXmlFile.get_attrib" title="Permalink to this definition">¶</a></dt>
-<dd><p>Get the attibutes of the node node_name in self.xmlroot</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>node_name</em>) -- the name of the node</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">the attibutes of the node node_name in self.xmlroot</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">dict</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.xmlManager.ReadXmlFile.get_node_text">
-<code class="descname">get_node_text</code><span class="sig-paren">(</span><em>node</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/xmlManager.html#ReadXmlFile.get_node_text"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.ReadXmlFile.get_node_text" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Get the text of the first node that has name </dt>
-<dd>that corresponds to the parameter node</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>node</em>) -- the name of the node from which get the text</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">the text of the first node that has name 
-that corresponds to the parameter node</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">str</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="class">
-<dt id="src.xmlManager.XmlLogFile">
-<em class="property">class </em><code class="descclassname">src.xmlManager.</code><code class="descname">XmlLogFile</code><span class="sig-paren">(</span><em>filePath</em>, <em>rootname</em>, <em>attrib={}</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/xmlManager.html#XmlLogFile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.XmlLogFile" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
-<p>Class to manage writing in salomeTools xml log file</p>
-<dl class="method">
-<dt id="src.xmlManager.XmlLogFile.add_simple_node">
-<code class="descname">add_simple_node</code><span class="sig-paren">(</span><em>node_name</em>, <em>text=None</em>, <em>attrib={}</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/xmlManager.html#XmlLogFile.add_simple_node"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.XmlLogFile.add_simple_node" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add a node with some attibutes and text to the root node.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>text</em>) -- the name of the node to add</li>
-<li><strong>str</strong> -- the text of the node</li>
-<li><strong>dict</strong> (<em>attrib</em>) -- the dictionary containing the 
-attribute of the new node</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.xmlManager.XmlLogFile.append_node_attrib">
-<code class="descname">append_node_attrib</code><span class="sig-paren">(</span><em>node_name</em>, <em>attrib</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/xmlManager.html#XmlLogFile.append_node_attrib"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.XmlLogFile.append_node_attrib" title="Permalink to this definition">¶</a></dt>
-<dd><p>Append a new attributes to the node that has node_name as name</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>node_name</em>) -- The name of the node on which append text</li>
-<li><strong>dixt</strong> (<em>attrib</em>) -- The attrib to append</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.xmlManager.XmlLogFile.append_node_text">
-<code class="descname">append_node_text</code><span class="sig-paren">(</span><em>node_name</em>, <em>text</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/xmlManager.html#XmlLogFile.append_node_text"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.XmlLogFile.append_node_text" title="Permalink to this definition">¶</a></dt>
-<dd><p>Append a new text to the node that has node_name as name</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>text</em>) -- The name of the node on which append text</li>
-<li><strong>str</strong> -- The text to append</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="method">
-<dt id="src.xmlManager.XmlLogFile.write_tree">
-<code class="descname">write_tree</code><span class="sig-paren">(</span><em>stylesheet=None</em>, <em>file_path=None</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/xmlManager.html#XmlLogFile.write_tree"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.XmlLogFile.write_tree" title="Permalink to this definition">¶</a></dt>
-<dd><p>Write the xml tree in the log file path. Add the stylesheet if asked.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>str</strong> (<em>stylesheet</em>) -- The stylesheet to apply to the xml file</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="function">
-<dt id="src.xmlManager.add_simple_node">
-<code class="descclassname">src.xmlManager.</code><code class="descname">add_simple_node</code><span class="sig-paren">(</span><em>root_node</em>, <em>node_name</em>, <em>text=None</em>, <em>attrib={}</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/xmlManager.html#add_simple_node"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.add_simple_node" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add a node with some attibutes and text to the root node.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>etree.Element</strong> (<em>root_node</em>) -- the Etree element where to add the new node</li>
-<li><strong>str</strong> (<em>text</em>) -- the name of the node to add</li>
-<li><strong>str</strong> -- the text of the node</li>
-<li><strong>dict</strong> (<em>attrib</em>) -- the dictionary containing the 
-attribute of the new node</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.xmlManager.append_node_attrib">
-<code class="descclassname">src.xmlManager.</code><code class="descname">append_node_attrib</code><span class="sig-paren">(</span><em>root_node</em>, <em>attrib</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/xmlManager.html#append_node_attrib"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.append_node_attrib" title="Permalink to this definition">¶</a></dt>
-<dd><p>Append a new attributes to the node that has node_name as name</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>etree.Element</strong> (<em>root_node</em>) -- the Etree element 
-where to append the new attibutes</li>
-<li><strong>dixt</strong> (<em>attrib</em>) -- The attrib to append</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.xmlManager.find_node_by_attrib">
-<code class="descclassname">src.xmlManager.</code><code class="descname">find_node_by_attrib</code><span class="sig-paren">(</span><em>xmlroot</em>, <em>name_node</em>, <em>key</em>, <em>value</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/xmlManager.html#find_node_by_attrib"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.find_node_by_attrib" title="Permalink to this definition">¶</a></dt>
-<dd><dl class="docutils">
-<dt>Find the nfirst ode from xmlroot that has name name_node and that has in </dt>
-<dd>its attributes {key : value}. Return the node</dd>
-</dl>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
-<li><strong>etree.Element</strong> (<em>xmlroot</em>) -- the Etree element where to search</li>
-<li><strong>str</strong> (<em>value</em>) -- the name of node to search</li>
-<li><strong>str</strong> -- the key to search</li>
-<li><strong>str</strong> -- the value to search</li>
-</ul>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">the found node</p>
-</td>
-</tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">xmlroot etree.Element</p>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-<dl class="function">
-<dt id="src.xmlManager.write_report">
-<code class="descclassname">src.xmlManager.</code><code class="descname">write_report</code><span class="sig-paren">(</span><em>filename</em>, <em>xmlroot</em>, <em>stylesheet</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/src/xmlManager.html#write_report"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#src.xmlManager.write_report" title="Permalink to this definition">¶</a></dt>
-<dd><p>Writes a report file from a XML tree.</p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
-<li><strong>str</strong> (<em>stylesheet</em>) -- The path to the file to create</li>
-<li><strong>etree.Element</strong> (<em>xmlroot</em>) -- the Etree element to write to the file</li>
-<li><strong>str</strong> -- The stylesheet to add to the begin of the file</li>
-</ul>
-</td>
-</tr>
-</tbody>
-</table>
-</dd></dl>
-
-</div>
-<div class="section" id="module-src">
-<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-src" title="Permalink to this headline">¶</a></h2>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
-        <div class="sphinxsidebarwrapper">
-            <p class="logo"><a href="../../index.html">
-              <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
-            </a></p>
-  <h3><a href="../../index.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">src package</a><ul>
-<li><a class="reference internal" href="#subpackages">Subpackages</a></li>
-<li><a class="reference internal" href="#submodules">Submodules</a></li>
-<li><a class="reference internal" href="#module-src.ElementTree">src.ElementTree module</a></li>
-<li><a class="reference internal" href="#module-src.architecture">src.architecture module</a></li>
-<li><a class="reference internal" href="#module-src.catchAll">src.catchAll module</a></li>
-<li><a class="reference internal" href="#module-src.coloringSat">src.coloringSat module</a></li>
-<li><a class="reference internal" href="#module-src.compilation">src.compilation module</a></li>
-<li><a class="reference internal" href="#module-src.configManager">src.configManager module</a></li>
-<li><a class="reference internal" href="#module-src.debug">src.debug module</a></li>
-<li><a class="reference internal" href="#module-src.environment">src.environment module</a></li>
-<li><a class="reference internal" href="#module-src.environs">src.environs module</a></li>
-<li><a class="reference internal" href="#module-src.exceptionSat">src.exceptionSat module</a></li>
-<li><a class="reference internal" href="#module-src.fileEnviron">src.fileEnviron module</a></li>
-<li><a class="reference internal" href="#module-src.fork">src.fork module</a></li>
-<li><a class="reference internal" href="#module-src.loggingSat">src.loggingSat module</a></li>
-<li><a class="reference internal" href="#module-src.options">src.options module</a></li>
-<li><a class="reference internal" href="#module-src.product">src.product module</a></li>
-<li><a class="reference internal" href="#module-src.pyconf">src.pyconf module</a></li>
-<li><a class="reference internal" href="#module-src.returnCode">src.returnCode module</a></li>
-<li><a class="reference internal" href="#module-src.salomeTools">src.salomeTools module</a></li>
-<li><a class="reference internal" href="#module-src.system">src.system module</a></li>
-<li><a class="reference internal" href="#module-src.template">src.template module</a></li>
-<li><a class="reference internal" href="#module-src.test_module">src.test_module module</a></li>
-<li><a class="reference internal" href="#module-src.utilsSat">src.utilsSat module</a></li>
-<li><a class="reference internal" href="#module-src.xmlManager">src.xmlManager module</a></li>
-<li><a class="reference internal" href="#module-src">Module contents</a></li>
-</ul>
-</li>
-</ul>
-<div class="relations">
-<h3>Related Topics</h3>
-<ul>
-  <li><a href="../../index.html">Documentation overview</a><ul>
-  <li><a href="modules.html">src</a><ul>
-      <li>Previous: <a href="modules.html" title="previous chapter">src</a></li>
-      <li>Next: <a href="src.colorama.html" title="next chapter">src.colorama package</a></li>
-  </ul></li>
-  </ul></li>
-</ul>
-</div>
-  <div role="note" aria-label="source link">
-    <h3>This Page</h3>
-    <ul class="this-page-menu">
-      <li><a href="../../_sources/commands/apidoc/src.txt"
-            rel="nofollow">Show Source</a></li>
-    </ul>
-   </div>
-<div id="searchbox" style="display: none" role="search">
-  <h3>Quick search</h3>
-    <form class="search" action="../../search.html" method="get">
-      <div><input type="text" name="q" /></div>
-      <div><input type="submit" value="Go" /></div>
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="footer">
-      &copy;2018, CEA.
-      
-      |
-      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.4.9</a>
-      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
-      
-      |
-      <a href="../../_sources/commands/apidoc/src.txt"
-          rel="nofollow">Page source</a>
-    </div>
-
-    
-
-    
-  </body>
-</html>
\ No newline at end of file
index 7d2c7d61e9e6b7650044a1c0b475c66d01227b42..1961aa92b6f9f86d883339b117d0b2b23d3aea46 100644 (file)
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.add">add() (src.fileEnviron.LauncherFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.add">add() (src.fileEnviron.LauncherFileEnviron method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.add_comment">add_comment() (src.environment.SalomeEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.add_comment">add_comment() (src.environment.SalomeEnviron method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.BatFileEnviron.add_comment">(src.fileEnviron.BatFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.BatFileEnviron.add_comment">(src.fileEnviron.BatFileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.FileEnviron.add_comment">(src.fileEnviron.FileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.FileEnviron.add_comment">(src.fileEnviron.FileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.add_comment">(src.fileEnviron.LauncherFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.add_comment">(src.fileEnviron.LauncherFileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.add_comment">(src.fileEnviron.ScreenEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ScreenEnviron.add_comment">(src.fileEnviron.ScreenEnviron method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.add_echo">add_echo() (src.fileEnviron.ContextFileEnviron method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.compile.add_compile_config_file">add_compile_config_file() (in module commands.compile)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ContextFileEnviron.add_echo">add_echo() (src.fileEnviron.ContextFileEnviron method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.FileEnviron.add_echo">(src.fileEnviron.FileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.FileEnviron.add_echo">(src.fileEnviron.FileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.add_echo">(src.fileEnviron.LauncherFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.add_echo">(src.fileEnviron.LauncherFileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.add_echo">(src.fileEnviron.ScreenEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ScreenEnviron.add_echo">(src.fileEnviron.ScreenEnviron method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.add_line">add_line() (src.environment.SalomeEnviron method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.package.add_files">add_files() (in module commands.package)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.add_line">add_line() (src.environment.SalomeEnviron method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.FileEnviron.add_line">(src.fileEnviron.FileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.FileEnviron.add_line">(src.fileEnviron.FileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.add_line">(src.fileEnviron.LauncherFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.add_line">(src.fileEnviron.LauncherFileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.add_line">(src.fileEnviron.ScreenEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ScreenEnviron.add_line">(src.fileEnviron.ScreenEnviron method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.options.Options.add_option">add_option() (src.options.Options method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.application.add_module_to_appli">add_module_to_appli() (in module commands.application)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.options.Options.add_option">add_option() (src.options.Options method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.package.add_readme">add_readme() (in module commands.package)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.xmlManager.add_simple_node">add_simple_node() (in module src.xmlManager)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.package.add_salomeTools">add_salomeTools() (in module commands.package)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.xmlManager.add_simple_node">add_simple_node() (in module src.xmlManager)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.xmlManager.XmlLogFile.add_simple_node">(src.xmlManager.XmlLogFile method)</a>
+  <dt><a href="apidoc_src/src.html#src.xmlManager.XmlLogFile.add_simple_node">(src.xmlManager.XmlLogFile method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.add_warning">add_warning() (src.environment.SalomeEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.add_warning">add_warning() (src.environment.SalomeEnviron method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.add_warning">(src.fileEnviron.ContextFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ContextFileEnviron.add_warning">(src.fileEnviron.ContextFileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.FileEnviron.add_warning">(src.fileEnviron.FileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.FileEnviron.add_warning">(src.fileEnviron.FileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.add_warning">(src.fileEnviron.LauncherFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.add_warning">(src.fileEnviron.LauncherFileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.add_warning">(src.fileEnviron.ScreenEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ScreenEnviron.add_warning">(src.fileEnviron.ScreenEnviron method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Reference.addElement">addElement() (src.pyconf.Reference method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Gui.add_xml_board">add_xml_board() (commands.jobs.Gui method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Mapping.addMapping">addMapping() (src.pyconf.Mapping method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Reference.addElement">addElement() (src.pyconf.Reference method)</a>
   </dt>
 
   </dl></td>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Config.addNamespace">addNamespace() (src.pyconf.Config method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Mapping.addMapping">addMapping() (src.pyconf.Mapping method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.pyconf.Config.addNamespace">addNamespace() (src.pyconf.Config method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.ANSI_CSI_RE">ANSI_CSI_RE (src.colorama.ansitowin32.AnsiToWin32 attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.ANSI_CSI_RE">ANSI_CSI_RE (src.colorama.ansitowin32.AnsiToWin32 attribute)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.ANSI_OSC_RE">ANSI_OSC_RE (src.colorama.ansitowin32.AnsiToWin32 attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.ANSI_OSC_RE">ANSI_OSC_RE (src.colorama.ansitowin32.AnsiToWin32 attribute)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiBack">AnsiBack (class in src.colorama.ansi)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiBack">AnsiBack (class in src.colorama.ansi)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiCodes">AnsiCodes (class in src.colorama.ansi)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiCodes">AnsiCodes (class in src.colorama.ansi)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiCursor">AnsiCursor (class in src.colorama.ansi)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiCursor">AnsiCursor (class in src.colorama.ansi)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiFore">AnsiFore (class in src.colorama.ansi)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiFore">AnsiFore (class in src.colorama.ansi)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiStyle">AnsiStyle (class in src.colorama.ansi)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiStyle">AnsiStyle (class in src.colorama.ansi)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32">AnsiToWin32 (class in src.colorama.ansitowin32)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32">AnsiToWin32 (class in src.colorama.ansitowin32)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.Environ.append">append() (src.environment.Environ method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.Environ.append">append() (src.environment.Environ method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.append">(src.environment.SalomeEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.append">(src.environment.SalomeEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.FileEnviron.append">(src.fileEnviron.FileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.FileEnviron.append">(src.fileEnviron.FileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.append">(src.fileEnviron.LauncherFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.append">(src.fileEnviron.LauncherFileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.append">(src.fileEnviron.ScreenEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ScreenEnviron.append">(src.fileEnviron.ScreenEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Sequence.append">(src.pyconf.Sequence method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Sequence.append">(src.pyconf.Sequence method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.xmlManager.append_node_attrib">append_node_attrib() (in module src.xmlManager)</a>
+  <dt><a href="apidoc_src/src.html#src.xmlManager.append_node_attrib">append_node_attrib() (in module src.xmlManager)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.xmlManager.XmlLogFile.append_node_attrib">(src.xmlManager.XmlLogFile method)</a>
+  <dt><a href="apidoc_src/src.html#src.xmlManager.XmlLogFile.append_node_attrib">(src.xmlManager.XmlLogFile method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.xmlManager.XmlLogFile.append_node_text">append_node_text() (src.xmlManager.XmlLogFile method)</a>
+  <dt><a href="apidoc_src/src.html#src.xmlManager.XmlLogFile.append_node_text">append_node_text() (src.xmlManager.XmlLogFile method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.Environ.append_value">append_value() (src.environment.Environ method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.Environ.append_value">append_value() (src.environment.Environ method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.append_value">(src.fileEnviron.ContextFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ContextFileEnviron.append_value">(src.fileEnviron.ContextFileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.FileEnviron.append_value">(src.fileEnviron.FileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.FileEnviron.append_value">(src.fileEnviron.FileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.append_value">(src.fileEnviron.LauncherFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.append_value">(src.fileEnviron.LauncherFileEnviron method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.system.archive_extract">archive_extract() (in module src.system)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.patch.apply_patch">apply_patch() (in module commands.patch)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.system.archive_extract">archive_extract() (in module src.system)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.test.ask_a_path">ask_a_path() (in module commands.test)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.salomeTools.assumeAsList">assumeAsList() (in module src.salomeTools)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.log.ask_value">ask_value() (in module commands.log)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.salomeTools.assumeAsList">assumeAsList() (in module src.salomeTools)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.salomeTools.Sat.assumeAsList">(src.salomeTools.Sat method)</a>
+  <dt><a href="apidoc_src/src.html#src.salomeTools.Sat.assumeAsList">(src.salomeTools.Sat method)</a>
   </dt>
 
       </dl></dd>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiCursor.BACK">BACK() (src.colorama.ansi.AnsiCursor method)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiCursor.BACK">BACK() (src.colorama.ansi.AnsiCursor method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.back">back() (src.colorama.winterm.WinTerm method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.back">back() (src.colorama.winterm.WinTerm method)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.Path.base">base() (src.utilsSat.Path method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.Path.base">base() (src.utilsSat.Path method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.BashFileEnviron">BashFileEnviron (class in src.fileEnviron)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.BashFileEnviron">BashFileEnviron (class in src.fileEnviron)</a>
+  <dt><a href="apidoc_src/src.html#src.fork.batch">batch() (in module src.fork)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.fork.batch">batch() (in module src.fork)</a>
+  <dt><a href="apidoc_src/src.html#src.fork.batch_salome">batch_salome() (in module src.fork)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.fork.batch_salome">batch_salome() (in module src.fork)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.BatFileEnviron">BatFileEnviron (class in src.fileEnviron)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.BatFileEnviron">BatFileEnviron (class in src.fileEnviron)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.package.binary_package">binary_package() (in module commands.package)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiBack.BLACK">BLACK (src.colorama.ansi.AnsiBack attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiBack.BLACK">BLACK (src.colorama.ansi.AnsiBack attribute)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiFore.BLACK">(src.colorama.ansi.AnsiFore attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiFore.BLACK">(src.colorama.ansi.AnsiFore attribute)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinColor.BLACK">(src.colorama.winterm.WinColor attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinColor.BLACK">(src.colorama.winterm.WinColor attribute)</a>
   </dt>
 
       </dl></dd>
   </dl></td>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.black">black() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.black">black() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiBack.BLUE">BLUE (src.colorama.ansi.AnsiBack attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiBack.BLUE">BLUE (src.colorama.ansi.AnsiBack attribute)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiFore.BLUE">(src.colorama.ansi.AnsiFore attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiFore.BLUE">(src.colorama.ansi.AnsiFore attribute)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinColor.BLUE">(src.colorama.winterm.WinColor attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinColor.BLUE">(src.colorama.winterm.WinColor attribute)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.blue">blue() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.blue">blue() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiStyle.BRIGHT">BRIGHT (src.colorama.ansi.AnsiStyle attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiStyle.BRIGHT">BRIGHT (src.colorama.ansi.AnsiStyle attribute)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinStyle.BRIGHT">(src.colorama.winterm.WinStyle attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinStyle.BRIGHT">(src.colorama.winterm.WinStyle attribute)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinStyle.BRIGHT_BACKGROUND">BRIGHT_BACKGROUND (src.colorama.winterm.WinStyle attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinStyle.BRIGHT_BACKGROUND">BRIGHT_BACKGROUND (src.colorama.winterm.WinStyle attribute)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.compilation.Builder.build_configure">build_configure() (src.compilation.Builder method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.compilation.Builder.build_configure">build_configure() (src.compilation.Builder method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.generate.build_context">build_context() (in module commands.generate)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.compilation.Builder">Builder (class in src.compilation)</a>
+  <dt><a href="apidoc_src/src.html#src.compilation.Builder">Builder (class in src.compilation)</a>
   </dt>
 
   </dl></td>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.call_win32">call_win32() (src.colorama.ansitowin32.AnsiToWin32 method)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.call_win32">call_win32() (src.colorama.ansitowin32.AnsiToWin32 method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Job.cancel">cancel() (commands.jobs.Job method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.catchAll.CatchAll">CatchAll (class in src.catchAll)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Jobs.cancel_dependencies_of_failing_jobs">cancel_dependencies_of_failing_jobs() (commands.jobs.Jobs method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.change_to_launcher">change_to_launcher() (src.fileEnviron.LauncherFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.catchAll.CatchAll">CatchAll (class in src.catchAll)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.compilation.Builder.check">check() (src.compilation.Builder method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.change_to_launcher">change_to_launcher() (src.fileEnviron.LauncherFileEnviron method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.check_config_exists">check_config_exists() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.compilation.Builder.check">check() (src.compilation.Builder method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.check_config_has_application">check_config_has_application() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.check.check_all_products">check_all_products() (in module commands.check)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.check_config_has_profile">check_config_has_profile() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.product.check_config_exists">check_config_exists() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.check_installation">check_installation() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.check_config_has_application">check_config_has_application() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.configManager.check_path">check_path() (in module src.configManager)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.check_config_has_profile">check_config_has_profile() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.Path.chmod">chmod() (src.utilsSat.Path method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.compile.check_dependencies">check_dependencies() (in module commands.compile)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.coloringSat.cleanColors">cleanColors() (in module src.coloringSat)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.template.TemplateSettings.check_file_for_substitution">check_file_for_substitution() (commands.template.TemplateSettings method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.clear_line">clear_line() (in module src.colorama.ansi)</a>
+  <dt><a href="apidoc_src/src.html#src.product.check_installation">check_installation() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.clear_screen">clear_screen() (in module src.colorama.ansi)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.generate.check_module_generator">check_module_generator() (in module commands.generate)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.debug.OutStream.close">close() (src.debug.OutStream method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.test.Command.check_option">check_option() (commands.test.Command method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.init.check_path">check_path() (in module commands.init)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.TreeBuilder.close">(src.ElementTree.TreeBuilder method)</a>
+  <dt><a href="apidoc_src/src.html#src.configManager.check_path">(in module src.configManager)</a>
   </dt>
 
-        
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.XMLTreeBuilder.close">(src.ElementTree.XMLTreeBuilder method)</a>
+      </dl></dd>
+      
+  <dt><a href="apidoc_commands/commands.html#commands.check.check_product">check_product() (in module commands.check)</a>
   </dt>
 
-        
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigInputStream.close">(src.pyconf.ConfigInputStream method)</a>
+      
+  <dt><a href="apidoc_commands/commands.html#commands.test.check_remote_machine">check_remote_machine() (in module commands.test)</a>
   </dt>
 
-        
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigOutputStream.close">(src.pyconf.ConfigOutputStream method)</a>
+      
+  <dt><a href="apidoc_commands/commands.html#commands.source.check_sources">check_sources() (in module commands.source)</a>
   </dt>
 
-      </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.compilation.Builder.cmake">cmake() (src.compilation.Builder method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Job.check_time">check_time() (commands.jobs.Job method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.code_to_chars">code_to_chars() (in module src.colorama.ansi)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.template.TemplateSettings.check_user_values">check_user_values() (commands.template.TemplateSettings method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.initialise.colorama_text">colorama_text() (in module src.colorama.initialise)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.template.TParam.check_value">check_value() (commands.template.TParam method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.coloringSat.ColoringStream">ColoringStream (class in src.coloringSat)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.generate.check_yacsgen">check_yacsgen() (in module commands.generate)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.Environ.command_value">command_value() (src.environment.Environ method)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.Path.chmod">chmod() (src.utilsSat.Path method)</a>
   </dt>
 
-      <dd><dl>
-        
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.BashFileEnviron.command_value">(src.fileEnviron.BashFileEnviron method)</a>
+      
+  <dt><a href="apidoc_src/src.html#src.coloringSat.cleanColors">cleanColors() (in module src.coloringSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.clear_line">clear_line() (in module src.colorama.ansi)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.clear_screen">clear_screen() (in module src.colorama.ansi)</a>
   </dt>
 
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Machine.close">close() (commands.jobs.Machine method)</a>
+  </dt>
+
+      <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.BatFileEnviron.command_value">(src.fileEnviron.BatFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.TreeBuilder.close">(src.ElementTree.TreeBuilder method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.command_value">(src.fileEnviron.ContextFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.XMLTreeBuilder.close">(src.ElementTree.XMLTreeBuilder method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.FileEnviron.command_value">(src.fileEnviron.FileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.debug.OutStream.close">(src.debug.OutStream method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.command_value">(src.fileEnviron.LauncherFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigInputStream.close">(src.pyconf.ConfigInputStream method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.command_value">(src.fileEnviron.ScreenEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigOutputStream.close">(src.pyconf.ConfigOutputStream method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.Comment">Comment() (in module src.ElementTree)</a>
+  <dt><a href="apidoc_src/src.html#src.compilation.Builder.cmake">cmake() (src.compilation.Builder method)</a>
   </dt>
 
-  </dl></td>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.compilation.Builder.complete_environment">complete_environment() (src.compilation.Builder method)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.code_to_chars">code_to_chars() (in module src.colorama.ansi)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Config">Config (class in src.pyconf)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.initialise.colorama_text">colorama_text() (in module src.colorama.initialise)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Config.Namespace">Config.Namespace (class in src.pyconf)</a>
+  <dt><a href="apidoc_src/src.html#src.coloringSat.ColoringStream">ColoringStream (class in src.coloringSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.config_has_application">config_has_application() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.application.Command">Command (class in commands.application)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigError">ConfigError</a>
+      <dd><dl>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.check.Command">(class in commands.check)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigFormatError">ConfigFormatError</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.clean.Command">(class in commands.clean)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigInputStream">ConfigInputStream (class in src.pyconf)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.compile.Command">(class in commands.compile)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigList">ConfigList (class in src.pyconf)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.config.Command">(class in commands.config)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.configManager.ConfigManager">ConfigManager (class in src.configManager)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.configure.Command">(class in commands.configure)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigMerger">ConfigMerger (class in src.pyconf)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.environ.Command">(class in commands.environ)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.configManager.ConfigOpener">ConfigOpener (class in src.configManager)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.find_duplicates.Command">(class in commands.find_duplicates)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigOutputStream">ConfigOutputStream (class in src.pyconf)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.generate.Command">(class in commands.generate)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigReader">ConfigReader (class in src.pyconf)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.init.Command">(class in commands.init)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigResolutionError">ConfigResolutionError</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.job.Command">(class in commands.job)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.compilation.Builder.configure">configure() (src.compilation.Builder method)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Command">(class in commands.jobs)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Container">Container (class in src.pyconf)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.launcher.Command">(class in commands.launcher)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron">ContextFileEnviron (class in src.fileEnviron)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.log.Command">(class in commands.log)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.convert_ansi">convert_ansi() (src.colorama.ansitowin32.AnsiToWin32 method)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.make.Command">(class in commands.make)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.convert_osc">convert_osc() (src.colorama.ansitowin32.AnsiToWin32 method)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.makeinstall.Command">(class in commands.makeinstall)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.Path.copy">copy() (src.utilsSat.Path method)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.package.Command">(class in commands.package)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.Path.copydir">copydir() (src.utilsSat.Path method)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.patch.Command">(class in commands.patch)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.Path.copyfile">copyfile() (src.utilsSat.Path method)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.prepare.Command">(class in commands.prepare)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.Path.copylink">copylink() (src.utilsSat.Path method)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.profile.Command">(class in commands.profile)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.configManager.ConfigManager.create_config_file">create_config_file() (src.configManager.ConfigManager method)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.run.Command">(class in commands.run)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.critical">critical() (in module src.utilsSat)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.script.Command">(class in commands.script)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.cursor_adjust">cursor_adjust() (src.colorama.winterm.WinTerm method)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.shell.Command">(class in commands.shell)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.system.cvs_extract">cvs_extract() (in module src.system)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.source.Command">(class in commands.source)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.template.Command">(class in commands.template)</a>
   </dt>
 
+        
+  <dt><a href="apidoc_commands/commands.html#commands.test.Command">(class in commands.test)</a>
+  </dt>
+
+      </dl></dd>
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiBack.CYAN">CYAN (src.colorama.ansi.AnsiBack attribute)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.Environ.command_value">command_value() (src.environment.Environ method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiFore.CYAN">(src.colorama.ansi.AnsiFore attribute)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.BashFileEnviron.command_value">(src.fileEnviron.BashFileEnviron method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.BatFileEnviron.command_value">(src.fileEnviron.BatFileEnviron method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ContextFileEnviron.command_value">(src.fileEnviron.ContextFileEnviron method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.FileEnviron.command_value">(src.fileEnviron.FileEnviron method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.command_value">(src.fileEnviron.LauncherFileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinColor.CYAN">(src.colorama.winterm.WinColor attribute)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ScreenEnviron.command_value">(src.fileEnviron.ScreenEnviron method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.cyan">cyan() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands">commands (module)</a>
   </dt>
 
   </dl></td>
-</tr></table>
-
-<h2 id="D">D</h2>
-<table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.TreeBuilder.data">data() (src.ElementTree.TreeBuilder method)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.application">commands.application (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.date_to_datetime">date_to_datetime() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.check">commands.check (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.options.Options.debug_write">debug_write() (src.options.Options method)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.clean">commands.clean (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.deepcopy_list">deepcopy_list() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.compile">commands.compile (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.deepCopyMapping">deepCopyMapping() (in module src.pyconf)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.config">commands.config (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.loggingSat.DefaultFormatter">DefaultFormatter (class in src.loggingSat)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.configure">commands.configure (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.defaultMergeResolve">defaultMergeResolve() (in module src.pyconf)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.environ">commands.environ (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.defaultStreamOpener">defaultStreamOpener() (in module src.pyconf)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.find_duplicates">commands.find_duplicates (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.initialise.deinit">deinit() (in module src.colorama.initialise)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.generate">commands.generate (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.template.MyTemplate.delimiter">delimiter (src.template.MyTemplate attribute)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.init">commands.init (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiStyle.DIM">DIM (src.colorama.ansi.AnsiStyle attribute)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.job">commands.job (module)</a>
   </dt>
 
-  </dl></td>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.Path.dir">dir() (src.utilsSat.Path method)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.jobs">commands.jobs (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.loggingSat.dirLogger">dirLogger() (in module src.loggingSat)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.launcher">commands.launcher (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.compilation.Builder.do_batch_script_build">do_batch_script_build() (src.compilation.Builder method)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.log">commands.log (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.compilation.Builder.do_default_build">do_default_build() (src.compilation.Builder method)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.make">commands.make (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.compilation.Builder.do_python_script_build">do_python_script_build() (src.compilation.Builder method)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.makeinstall">commands.makeinstall (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.compilation.Builder.do_script_build">do_script_build() (src.compilation.Builder method)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.package">commands.package (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.XMLTreeBuilder.doctype">doctype() (src.ElementTree.XMLTreeBuilder method)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.patch">commands.patch (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiCursor.DOWN">DOWN() (src.colorama.ansi.AnsiCursor method)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.prepare">commands.prepare (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.dump">dump() (in module src.ElementTree)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.profile">commands.profile (module)</a>
   </dt>
 
-      <dd><dl>
-        
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.dump">(src.environment.SalomeEnviron method)</a>
+      
+  <dt><a href="apidoc_commands/commands.html#module-commands.run">commands.run (module)</a>
   </dt>
 
-      </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.catchAll.dumper">dumper() (in module src.catchAll)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.script">commands.script (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.catchAll.dumperType">dumperType() (in module src.catchAll)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.shell">commands.shell (module)</a>
   </dt>
 
-  </dl></td>
-</tr></table>
-
-<h2 id="E">E</h2>
-<table style="width: 100%" class="indextable genindextable"><tr>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.Element">Element() (in module src.ElementTree)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.source">commands.source (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.ElementTree">ElementTree (class in src.ElementTree)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.template">commands.template (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.TreeBuilder.end">end() (src.ElementTree.TreeBuilder method)</a>
+  <dt><a href="apidoc_commands/commands.html#module-commands.test">commands.test (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.ensure_path_exists">ensure_path_exists() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.Comment">Comment() (in module src.ElementTree)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.Environ">Environ (class in src.environment)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.compile.compile_all_products">compile_all_products() (in module commands.compile)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.erase_line">erase_line() (src.colorama.winterm.WinTerm method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.compile.compile_product">compile_product() (in module commands.compile)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.erase_screen">erase_screen() (src.colorama.winterm.WinTerm method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.compile.compile_product_cmake_autotools">compile_product_cmake_autotools() (in module commands.compile)</a>
   </dt>
 
-  </dl></td>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.error">error() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.compile.compile_product_script">compile_product_script() (in module commands.compile)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Container.evaluate">evaluate() (src.pyconf.Container method)</a>
+  <dt><a href="apidoc_src/src.html#src.compilation.Builder.complete_environment">complete_environment() (src.compilation.Builder method)</a>
   </dt>
 
-      <dd><dl>
-        
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Expression.evaluate">(src.pyconf.Expression method)</a>
+      
+  <dt><a href="apidoc_src/src.html#src.pyconf.Config">Config (class in src.pyconf)</a>
   </dt>
 
-      </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.exceptionSat.ExceptionSat">ExceptionSat</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Config.Namespace">Config.Namespace (class in src.pyconf)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.salomeTools.Sat.execute_cli">execute_cli() (src.salomeTools.Sat method)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.config_has_application">config_has_application() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.Path.exists">exists() (src.utilsSat.Path method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigError">ConfigError</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Expression">Expression (class in src.pyconf)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigFormatError">ConfigFormatError</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.extract_params">extract_params() (src.colorama.ansitowin32.AnsiToWin32 method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigInputStream">ConfigInputStream (class in src.pyconf)</a>
   </dt>
 
-  </dl></td>
-</tr></table>
+      
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigList">ConfigList (class in src.pyconf)</a>
+  </dt>
 
-<h2 id="F">F</h2>
-<table style="width: 100%" class="indextable genindextable"><tr>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.XMLTreeBuilder.feed">feed() (src.ElementTree.XMLTreeBuilder method)</a>
+  <dt><a href="apidoc_src/src.html#src.configManager.ConfigManager">ConfigManager (class in src.configManager)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.FileEnviron">FileEnviron (class in src.fileEnviron)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigMerger">ConfigMerger (class in src.pyconf)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.FileEnvWriter">FileEnvWriter (class in src.environment)</a>
+  <dt><a href="apidoc_src/src.html#src.configManager.ConfigOpener">ConfigOpener (class in src.configManager)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.ElementTree.find">find() (src.ElementTree.ElementTree method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigOutputStream">ConfigOutputStream (class in src.pyconf)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.salomeTools.find_command_list">find_command_list() (in module src.salomeTools)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigReader">ConfigReader (class in src.pyconf)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.find_file_in_lpath">find_file_in_lpath() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigResolutionError">ConfigResolutionError</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.xmlManager.find_node_by_attrib">find_node_by_attrib() (in module src.xmlManager)</a>
+  <dt><a href="apidoc_src/src.html#src.compilation.Builder.configure">configure() (src.compilation.Builder method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.ElementTree.findall">findall() (src.ElementTree.ElementTree method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.configure.configure_all_products">configure_all_products() (in module commands.configure)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Reference.findConfig">findConfig() (src.pyconf.Reference method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.configure.configure_product">configure_product() (in module commands.configure)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.ElementTree.findtext">findtext() (src.ElementTree.ElementTree method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Machine.connect">connect() (commands.jobs.Machine method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.finish">finish() (src.environment.SalomeEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Container">Container (class in src.pyconf)</a>
   </dt>
 
-      <dd><dl>
-        
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.BashFileEnviron.finish">(src.fileEnviron.BashFileEnviron method)</a>
+      
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ContextFileEnviron">ContextFileEnviron (class in src.fileEnviron)</a>
   </dt>
 
-        
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.BatFileEnviron.finish">(src.fileEnviron.BatFileEnviron method)</a>
+      
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.convert_ansi">convert_ansi() (src.colorama.ansitowin32.AnsiToWin32 method)</a>
   </dt>
 
-        
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.finish">(src.fileEnviron.ContextFileEnviron method)</a>
+      
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.convert_osc">convert_osc() (src.colorama.ansitowin32.AnsiToWin32 method)</a>
   </dt>
 
-        
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.FileEnviron.finish">(src.fileEnviron.FileEnviron method)</a>
+      
+  <dt><a href="apidoc_src/src.html#src.utilsSat.Path.copy">copy() (src.utilsSat.Path method)</a>
   </dt>
 
-        
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.finish">(src.fileEnviron.LauncherFileEnviron method)</a>
+      
+  <dt><a href="apidoc_commands/commands.html#commands.launcher.copy_catalog">copy_catalog() (in module commands.launcher)</a>
   </dt>
 
-      </dl></dd>
-  </dl></td>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.coloringSat.ColoringStream.flush">flush() (src.coloringSat.ColoringStream method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Machine.copy_sat">copy_sat() (commands.jobs.Machine method)</a>
   </dt>
 
-      <dd><dl>
-        
-  <dt><a href="commands/apidoc/src.html#src.loggingSat.UnittestStream.flush">(src.loggingSat.UnittestStream method)</a>
+      
+  <dt><a href="apidoc_src/src.html#src.utilsSat.Path.copydir">copydir() (src.utilsSat.Path method)</a>
   </dt>
 
-        
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigOutputStream.flush">(src.pyconf.ConfigOutputStream method)</a>
+      
+  <dt><a href="apidoc_src/src.html#src.utilsSat.Path.copyfile">copyfile() (src.utilsSat.Path method)</a>
   </dt>
 
-      </dl></dd>
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.fore">fore() (src.colorama.winterm.WinTerm method)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.Path.copylink">copylink() (src.utilsSat.Path method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.example.html#src.example.essai_logging_2.MyFormatter.format">format() (src.example.essai_logging_2.MyFormatter method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.application.create_application">create_application() (in module commands.application)</a>
   </dt>
 
-      <dd><dl>
-        
-  <dt><a href="commands/apidoc/src.html#src.loggingSat.DefaultFormatter.format">(src.loggingSat.DefaultFormatter method)</a>
+      
+  <dt><a href="apidoc_commands/commands.html#commands.application.create_config_file">create_config_file() (in module commands.application)</a>
   </dt>
 
+      <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.loggingSat.UnittestFormatter.format">(src.loggingSat.UnittestFormatter method)</a>
+  <dt><a href="apidoc_src/src.html#src.configManager.ConfigManager.create_config_file">(src.configManager.ConfigManager method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.formatTuples">formatTuples() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.package.create_project_for_src_package">create_project_for_src_package() (in module commands.package)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.formatValue">formatValue() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.test.create_test_report">create_test_report() (in module commands.test)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiCursor.FORWARD">FORWARD() (src.colorama.ansi.AnsiCursor method)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.critical">critical() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.fromstring">fromstring() (in module src.ElementTree)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.cursor_adjust">cursor_adjust() (src.colorama.winterm.WinTerm method)</a>
   </dt>
 
-  </dl></td>
-</tr></table>
-
-<h2 id="G">G</h2>
-<table style="width: 100%" class="indextable genindextable"><tr>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.test_module.Test.generate_launching_commands">generate_launching_commands() (src.test_module.Test method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.application.customize_app">customize_app() (in module commands.application)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.test_module.Test.generate_script">generate_script() (src.test_module.Test method)</a>
+  <dt><a href="apidoc_src/src.html#src.system.cvs_extract">cvs_extract() (in module src.system)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.Environ.get">get() (src.environment.Environ method)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiBack.CYAN">CYAN (src.colorama.ansi.AnsiBack attribute)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.get">(src.environment.SalomeEnviron method)</a>
-  </dt>
-
-        
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.BatFileEnviron.get">(src.fileEnviron.BatFileEnviron method)</a>
-  </dt>
-
-        
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.get">(src.fileEnviron.ContextFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiFore.CYAN">(src.colorama.ansi.AnsiFore attribute)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.FileEnviron.get">(src.fileEnviron.FileEnviron method)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinColor.CYAN">(src.colorama.winterm.WinColor attribute)</a>
   </dt>
 
-        
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.get">(src.fileEnviron.LauncherFileEnviron method)</a>
+      </dl></dd>
+      
+  <dt><a href="apidoc_src/src.html#src.utilsSat.cyan">cyan() (in module src.utilsSat)</a>
   </dt>
 
-        
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.get">(src.fileEnviron.ScreenEnviron method)</a>
-  </dt>
+  </dl></td>
+</tr></table>
 
-        
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Mapping.get">(src.pyconf.Mapping method)</a>
+<h2 id="D">D</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="apidoc_src/src.html#src.ElementTree.TreeBuilder.data">data() (src.ElementTree.TreeBuilder method)</a>
   </dt>
 
-      </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.xmlManager.ReadXmlFile.get_attrib">get_attrib() (src.xmlManager.ReadXmlFile method)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.date_to_datetime">date_to_datetime() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.get_attrs">get_attrs() (src.colorama.winterm.WinTerm method)</a>
+  <dt><a href="apidoc_src/src.html#src.options.Options.debug_write">debug_write() (src.options.Options method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.get_base_install_dir">get_base_install_dir() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.deepcopy_list">deepcopy_list() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.get_base_path">get_base_path() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.deepCopyMapping">deepCopyMapping() (in module src.pyconf)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.get_cfg_param">get_cfg_param() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.loggingSat.DefaultFormatter">DefaultFormatter (class in src.loggingSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.configManager.ConfigManager.get_command_line_overrides">get_command_line_overrides() (src.configManager.ConfigManager method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.defaultMergeResolve">defaultMergeResolve() (in module src.pyconf)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.configManager.ConfigManager.get_config">get_config() (src.configManager.ConfigManager method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.defaultStreamOpener">defaultStreamOpener() (in module src.pyconf)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.configManager.get_config_children">get_config_children() (in module src.configManager)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Jobs.define_job">define_job() (commands.jobs.Jobs method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.architecture.get_distrib_version">get_distrib_version() (in module src.architecture)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.initialise.deinit">deinit() (in module src.colorama.initialise)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.architecture.get_distribution">get_distribution() (in module src.architecture)</a>
+  <dt><a href="apidoc_src/src.html#src.template.MyTemplate.delimiter">delimiter (src.template.MyTemplate attribute)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.get_file_environ">get_file_environ() (in module src.fileEnviron)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Jobs.determine_jobs_and_machines">determine_jobs_and_machines() (commands.jobs.Jobs method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.options.Options.get_help">get_help() (src.options.Options method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.develop_factorized_jobs">develop_factorized_jobs() (in module commands.jobs)</a>
   </dt>
 
-      <dd><dl>
-        
-  <dt><a href="commands/apidoc/src.html#src.salomeTools.Sat.get_help">(src.salomeTools.Sat method)</a>
+      
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiStyle.DIM">DIM (src.colorama.ansi.AnsiStyle attribute)</a>
   </dt>
 
-      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.product.get_install_dir">get_install_dir() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.Path.dir">dir() (src.utilsSat.Path method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.get_launcher_name">get_launcher_name() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.loggingSat.dirLogger">dirLogger() (in module src.loggingSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.get_log_path">get_log_path() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.init.display_local_values">display_local_values() (in module commands.init)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.get_names">get_names() (src.environment.SalomeEnviron method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Jobs.display_status">display_status() (commands.jobs.Jobs method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.architecture.get_nb_proc">get_nb_proc() (in module src.architecture)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.find_duplicates.Progress_bar.display_value_progression">display_value_progression() (commands.find_duplicates.Progress_bar method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.xmlManager.ReadXmlFile.get_node_text">get_node_text() (src.xmlManager.ReadXmlFile method)</a>
+  <dt><a href="apidoc_src/src.html#src.compilation.Builder.do_batch_script_build">do_batch_script_build() (src.compilation.Builder method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.configManager.ConfigOpener.get_path">get_path() (src.configManager.ConfigOpener method)</a>
+  <dt><a href="apidoc_src/src.html#src.compilation.Builder.do_default_build">do_default_build() (src.compilation.Builder method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.get_position">get_position() (src.colorama.winterm.WinTerm method)</a>
+  <dt><a href="apidoc_src/src.html#src.compilation.Builder.do_python_script_build">do_python_script_build() (src.compilation.Builder method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.get_product_components">get_product_components() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.compilation.Builder.do_script_build">do_script_build() (src.compilation.Builder method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.get_product_config">get_product_config() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.XMLTreeBuilder.doctype">doctype() (src.ElementTree.XMLTreeBuilder method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.get_product_dependencies">get_product_dependencies() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiCursor.DOWN">DOWN() (src.colorama.ansi.AnsiCursor method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.get_product_section">get_product_section() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.dump">dump() (in module src.ElementTree)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.product.get_products_infos">get_products_infos() (in module src.product)</a>
+      <dd><dl>
+        
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.dump">(src.environment.SalomeEnviron method)</a>
   </dt>
 
+      </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.configManager.get_products_list">get_products_list() (in module src.configManager)</a>
+  <dt><a href="apidoc_src/src.html#src.catchAll.dumper">dumper() (in module src.catchAll)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.get_property_in_product_cfg">get_property_in_product_cfg() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.catchAll.dumperType">dumperType() (in module src.catchAll)</a>
   </dt>
 
+  </dl></td>
+</tr></table>
+
+<h2 id="E">E</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.architecture.get_python_version">get_python_version() (in module src.architecture)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.Element">Element() (in module src.ElementTree)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.get_salome_version">get_salome_version() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.ElementTree">ElementTree (class in src.ElementTree)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.test_module.Test.get_test_timeout">get_test_timeout() (src.test_module.Test method)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.TreeBuilder.end">end() (src.ElementTree.TreeBuilder method)</a>
   </dt>
 
-  </dl></td>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.test_module.Test.get_tmp_dir">get_tmp_dir() (src.test_module.Test method)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.ensure_path_exists">ensure_path_exists() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.get_tmp_filename">get_tmp_filename() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.Environ">Environ (class in src.environment)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.architecture.get_user">get_user() (in module src.architecture)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.erase_line">erase_line() (src.colorama.winterm.WinTerm method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.configManager.ConfigManager.get_user_config_file">get_user_config_file() (src.configManager.ConfigManager method)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.erase_screen">erase_screen() (src.colorama.winterm.WinTerm method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.get_win32_calls">get_win32_calls() (src.colorama.ansitowin32.AnsiToWin32 method)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.error">error() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Config.getByPath">getByPath() (src.pyconf.Config method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Container.evaluate">evaluate() (src.pyconf.Container method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigList.getByPath">(src.pyconf.ConfigList method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Expression.evaluate">(src.pyconf.Expression method)</a>
   </dt>
 
       </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigReader.getChar">getChar() (src.pyconf.ConfigReader method)</a>
+  <dt><a href="apidoc_src/src.html#src.exceptionSat.ExceptionSat">ExceptionSat</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.salomeTools.Sat.getColoredVersion">getColoredVersion() (src.salomeTools.Sat method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.package.exclude_VCS_and_extensions">exclude_VCS_and_extensions() (in module commands.package)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.salomeTools.Sat.getCommandAndAppli">getCommandAndAppli() (src.salomeTools.Sat method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Machine.exec_command">exec_command() (commands.jobs.Machine method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.salomeTools.Sat.getCommandInstance">getCommandInstance() (src.salomeTools.Sat method)</a>
+  <dt><a href="apidoc_src/src.html#src.salomeTools.Sat.execute_cli">execute_cli() (src.salomeTools.Sat method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.salomeTools.getCommandsList">getCommandsList() (in module src.salomeTools)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.Path.exists">exists() (src.utilsSat.Path method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.salomeTools.Sat.getConfig">getConfig() (src.salomeTools.Sat method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Expression">Expression (class in src.pyconf)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.configManager.getConfigColored">getConfigColored() (in module src.configManager)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.compile.extend_with_children">extend_with_children() (in module commands.compile)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.salomeTools.Sat.getConfigManager">getConfigManager() (src.salomeTools.Sat method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.compile.extend_with_fathers">extend_with_fathers() (in module commands.compile)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.loggingSat.getDefaultLogger">getDefaultLogger() (in module src.loggingSat)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.extract_params">extract_params() (src.colorama.ansitowin32.AnsiToWin32 method)</a>
   </dt>
 
+  </dl></td>
+</tr></table>
+
+<h2 id="F">F</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.options.Options.getDetailOption">getDetailOption() (src.options.Options method)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.XMLTreeBuilder.feed">feed() (src.ElementTree.XMLTreeBuilder method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.ElementTree.getiterator">getiterator() (src.ElementTree.ElementTree method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.FileEnviron">FileEnviron (class in src.fileEnviron)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.debug.getLocalEnv">getLocalEnv() (in module src.debug)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.FileEnvWriter">FileEnvWriter (class in src.environment)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.salomeTools.Sat.getLogger">getLogger() (src.salomeTools.Sat method)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.ElementTree.find">find() (src.ElementTree.ElementTree method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.loggingSat.UnittestStream.getLogs">getLogs() (src.loggingSat.UnittestStream method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.package.find_application_pyconf">find_application_pyconf() (in module commands.package)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.loggingSat.UnittestStream.getLogsAndClear">getLogsAndClear() (src.loggingSat.UnittestStream method)</a>
+  <dt><a href="apidoc_src/src.html#src.salomeTools.find_command_list">find_command_list() (in module src.salomeTools)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.salomeTools.Sat.getModule">getModule() (src.salomeTools.Sat method)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.find_file_in_lpath">find_file_in_lpath() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.example.html#src.example.essai_logging_1.getMyLogger">getMyLogger() (in module src.example.essai_logging_1)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Gui.find_history">find_history() (commands.jobs.Gui method)</a>
   </dt>
 
-      <dd><dl>
-        
-  <dt><a href="commands/apidoc/src.example.html#src.example.essai_logging_2.getMyLogger">(in module src.example.essai_logging_2)</a>
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Jobs.find_job_that_has_name">find_job_that_has_name() (commands.jobs.Jobs method)</a>
   </dt>
 
-      </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.ElementTree.getroot">getroot() (src.ElementTree.ElementTree method)</a>
+  <dt><a href="apidoc_src/src.html#src.xmlManager.find_node_by_attrib">find_node_by_attrib() (in module src.xmlManager)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.xmlManager.ReadXmlFile.getRootAttrib">getRootAttrib() (src.xmlManager.ReadXmlFile method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.package.find_product_scripts_and_pyconf">find_product_scripts_and_pyconf() (in module commands.package)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.debug.getStrConfigDbg">getStrConfigDbg() (in module src.debug)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.prepare.find_products_already_getted">find_products_already_getted() (in module commands.prepare)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.debug.getStrConfigStd">getStrConfigStd() (in module src.debug)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.prepare.find_products_with_patchs">find_products_with_patchs() (in module commands.prepare)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.test_module.getTmpDirDEFAULT">getTmpDirDEFAULT() (in module src.test_module)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Gui.find_test_log">find_test_log() (commands.jobs.Gui method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigReader.getToken">getToken() (src.pyconf.ConfigReader method)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.ElementTree.findall">findall() (src.ElementTree.ElementTree method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.loggingSat.getUnittestLogger">getUnittestLogger() (in module src.loggingSat)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Reference.findConfig">findConfig() (src.pyconf.Reference method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode.getValue">getValue() (src.returnCode.ReturnCode method)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.ElementTree.findtext">findtext() (src.ElementTree.ElementTree method)</a>
   </dt>
 
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.salomeTools.getVersion">getVersion() (in module src.salomeTools)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.finish">finish() (src.environment.SalomeEnviron method)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode.getWhy">getWhy() (src.returnCode.ReturnCode method)</a>
+      <dd><dl>
+        
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.BashFileEnviron.finish">(src.fileEnviron.BashFileEnviron method)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.system.git_extract">git_extract() (in module src.system)</a>
+        
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.BatFileEnviron.finish">(src.fileEnviron.BatFileEnviron method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ContextFileEnviron.finish">(src.fileEnviron.ContextFileEnviron method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.FileEnviron.finish">(src.fileEnviron.FileEnviron method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.finish">(src.fileEnviron.LauncherFileEnviron method)</a>
   </dt>
 
+      </dl></dd>
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiBack.GREEN">GREEN (src.colorama.ansi.AnsiBack attribute)</a>
+  <dt><a href="apidoc_src/src.html#src.coloringSat.ColoringStream.flush">flush() (src.coloringSat.ColoringStream method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiFore.GREEN">(src.colorama.ansi.AnsiFore attribute)</a>
+  <dt><a href="apidoc_src/src.html#src.loggingSat.UnittestStream.flush">(src.loggingSat.UnittestStream method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinColor.GREEN">(src.colorama.winterm.WinColor attribute)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigOutputStream.flush">(src.pyconf.ConfigOutputStream method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.green">green() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.fore">fore() (src.colorama.winterm.WinTerm method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinColor.GREY">GREY (src.colorama.winterm.WinColor attribute)</a>
+  <dt><a href="apidoc_src/src.example.html#src.example.essai_logging_2.MyFormatter.format">format() (src.example.essai_logging_2.MyFormatter method)</a>
   </dt>
 
-  </dl></td>
-</tr></table>
-
+      <dd><dl>
+        
+  <dt><a href="apidoc_src/src.html#src.loggingSat.DefaultFormatter.format">(src.loggingSat.DefaultFormatter method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_src/src.html#src.loggingSat.UnittestFormatter.format">(src.loggingSat.UnittestFormatter method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="apidoc_commands/commands.html#commands.find_duplicates.format_list_of_str">format_list_of_str() (in module commands.find_duplicates)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.utilsSat.formatTuples">formatTuples() (in module src.utilsSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.utilsSat.formatValue">formatValue() (in module src.utilsSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiCursor.FORWARD">FORWARD() (src.colorama.ansi.AnsiCursor method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.ElementTree.fromstring">fromstring() (in module src.ElementTree)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="G">G</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="apidoc_commands/commands.html#commands.application.generate_application">generate_application() (in module commands.application)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.application.generate_catalog">generate_catalog() (in module commands.application)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.launcher.generate_catalog">(in module commands.launcher)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="apidoc_commands/commands.html#commands.generate.generate_component">generate_component() (in module commands.generate)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.generate.generate_component_list">generate_component_list() (in module commands.generate)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.test.generate_history_xml_path">generate_history_xml_path() (in module commands.test)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.application.generate_launch_file">generate_launch_file() (in module commands.application)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.launcher.generate_launch_file">(in module commands.launcher)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="apidoc_src/src.html#src.test_module.Test.generate_launching_commands">generate_launching_commands() (src.test_module.Test method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.profile.generate_profile_sources">generate_profile_sources() (in module commands.profile)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.test_module.Test.generate_script">generate_script() (src.test_module.Test method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.environment.Environ.get">get() (src.environment.Environ method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.get">(src.environment.SalomeEnviron method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.BatFileEnviron.get">(src.fileEnviron.BatFileEnviron method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ContextFileEnviron.get">(src.fileEnviron.ContextFileEnviron method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.FileEnviron.get">(src.fileEnviron.FileEnviron method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.get">(src.fileEnviron.LauncherFileEnviron method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ScreenEnviron.get">(src.fileEnviron.ScreenEnviron method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_src/src.html#src.pyconf.Mapping.get">(src.pyconf.Mapping method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="apidoc_commands/commands.html#commands.source.get_all_product_sources">get_all_product_sources() (in module commands.source)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.package.get_archives">get_archives() (in module commands.package)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.package.get_archives_vcs">get_archives_vcs() (in module commands.package)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.xmlManager.ReadXmlFile.get_attrib">get_attrib() (src.xmlManager.ReadXmlFile method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.get_attrs">get_attrs() (src.colorama.winterm.WinTerm method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.product.get_base_install_dir">get_base_install_dir() (in module src.product)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.utilsSat.get_base_path">get_base_path() (in module src.utilsSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.clean.get_build_directories">get_build_directories() (in module commands.clean)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.utilsSat.get_cfg_param">get_cfg_param() (in module src.utilsSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.compile.get_children">get_children() (in module commands.compile)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.configManager.ConfigManager.get_command_line_overrides">get_command_line_overrides() (src.configManager.ConfigManager method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.configManager.ConfigManager.get_config">get_config() (src.configManager.ConfigManager method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.configManager.get_config_children">get_config_children() (in module src.configManager)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.get_config_file_path">get_config_file_path() (in module commands.jobs)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.template.get_dico_param">get_dico_param() (in module commands.template)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.architecture.get_distrib_version">get_distrib_version() (in module src.architecture)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.architecture.get_distribution">get_distribution() (in module src.architecture)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.get_file_environ">get_file_environ() (in module src.fileEnviron)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.options.Options.get_help">get_help() (src.options.Options method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="apidoc_src/src.html#src.salomeTools.Sat.get_help">(src.salomeTools.Sat method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="apidoc_src/src.html#src.product.get_install_dir">get_install_dir() (in module src.product)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.clean.get_install_directories">get_install_directories() (in module commands.clean)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.log.get_last_log_file">get_last_log_file() (in module commands.log)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.utilsSat.get_launcher_name">get_launcher_name() (in module src.utilsSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Job.get_log_files">get_log_files() (commands.jobs.Job method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.utilsSat.get_log_path">get_log_path() (in module src.utilsSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.get_names">get_names() (src.environment.SalomeEnviron method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.make.get_nb_proc">get_nb_proc() (in module commands.make)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="apidoc_src/src.html#src.architecture.get_nb_proc">(in module src.architecture)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="apidoc_src/src.html#src.xmlManager.ReadXmlFile.get_node_text">get_node_text() (src.xmlManager.ReadXmlFile method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.template.TemplateSettings.get_parameters">get_parameters() (commands.template.TemplateSettings method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.configManager.ConfigOpener.get_path">get_path() (src.configManager.ConfigOpener method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Job.get_pids">get_pids() (commands.jobs.Job method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.get_position">get_position() (src.colorama.winterm.WinTerm method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.product.get_product_components">get_product_components() (in module src.product)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.product.get_product_config">get_product_config() (in module src.product)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.product.get_product_dependencies">get_product_dependencies() (in module src.product)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.product.get_product_section">get_product_section() (in module src.product)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.source.get_product_sources">get_product_sources() (in module commands.source)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.product.get_products_infos">get_products_infos() (in module src.product)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.check.get_products_list">get_products_list() (in module commands.check)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.compile.get_products_list">(in module commands.compile)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.configure.get_products_list">(in module commands.configure)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.make.get_products_list">(in module commands.make)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.makeinstall.get_products_list">(in module commands.makeinstall)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.script.get_products_list">(in module commands.script)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_src/src.html#src.configManager.get_products_list">(in module src.configManager)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="apidoc_commands/commands.html#commands.profile.get_profile_name">get_profile_name() (in module commands.profile)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.utilsSat.get_property_in_product_cfg">get_property_in_product_cfg() (in module src.utilsSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.template.TemplateSettings.get_pyconf_parameters">get_pyconf_parameters() (commands.template.TemplateSettings method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.architecture.get_python_version">get_python_version() (in module src.architecture)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.compile.get_recursive_children">get_recursive_children() (in module commands.compile)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.compile.get_recursive_fathers">get_recursive_fathers() (in module commands.compile)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.application.get_SALOME_modules">get_SALOME_modules() (in module commands.application)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.utilsSat.get_salome_version">get_salome_version() (in module src.utilsSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.clean.get_source_directories">get_source_directories() (in module commands.clean)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.source.get_source_for_dev">get_source_for_dev() (in module commands.source)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.source.get_source_from_archive">get_source_from_archive() (in module commands.source)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="apidoc_commands/commands.html#commands.source.get_source_from_cvs">get_source_from_cvs() (in module commands.source)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.source.get_source_from_dir">get_source_from_dir() (in module commands.source)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.source.get_source_from_git">get_source_from_git() (in module commands.source)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.source.get_source_from_svn">get_source_from_svn() (in module commands.source)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Job.get_status">get_status() (commands.jobs.Job method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.application.get_step">get_step() (in module commands.application)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.template.get_template_info">get_template_info() (in module commands.template)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.test_module.Test.get_test_timeout">get_test_timeout() (src.test_module.Test method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.test_module.Test.get_tmp_dir">get_tmp_dir() (src.test_module.Test method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.utilsSat.get_tmp_filename">get_tmp_filename() (in module src.utilsSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.architecture.get_user">get_user() (in module src.architecture)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.configManager.ConfigManager.get_user_config_file">get_user_config_file() (src.configManager.ConfigManager method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.get_win32_calls">get_win32_calls() (src.colorama.ansitowin32.AnsiToWin32 method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.pyconf.Config.getByPath">getByPath() (src.pyconf.Config method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigList.getByPath">(src.pyconf.ConfigList method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigReader.getChar">getChar() (src.pyconf.ConfigReader method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.salomeTools.Sat.getColoredVersion">getColoredVersion() (src.salomeTools.Sat method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.salomeTools.Sat.getCommandAndAppli">getCommandAndAppli() (src.salomeTools.Sat method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.salomeTools.Sat.getCommandInstance">getCommandInstance() (src.salomeTools.Sat method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.salomeTools.getCommandsList">getCommandsList() (in module src.salomeTools)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.salomeTools.Sat.getConfig">getConfig() (src.salomeTools.Sat method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.configManager.getConfigColored">getConfigColored() (in module src.configManager)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.salomeTools.Sat.getConfigManager">getConfigManager() (src.salomeTools.Sat method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.loggingSat.getDefaultLogger">getDefaultLogger() (in module src.loggingSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.options.Options.getDetailOption">getDetailOption() (src.options.Options method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.ElementTree.ElementTree.getiterator">getiterator() (src.ElementTree.ElementTree method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.debug.getLocalEnv">getLocalEnv() (in module src.debug)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.salomeTools.Sat.getLogger">getLogger() (src.salomeTools.Sat method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.loggingSat.UnittestStream.getLogs">getLogs() (src.loggingSat.UnittestStream method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.loggingSat.UnittestStream.getLogsAndClear">getLogsAndClear() (src.loggingSat.UnittestStream method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.log.getMaxFormat">getMaxFormat() (in module commands.log)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.salomeTools.Sat.getModule">getModule() (src.salomeTools.Sat method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.example.html#src.example.essai_logging_1.getMyLogger">getMyLogger() (in module src.example.essai_logging_1)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="apidoc_src/src.example.html#src.example.essai_logging_2.getMyLogger">(in module src.example.essai_logging_2)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.getParamiko">getParamiko() (in module commands.jobs)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.application.Command.getParser">getParser() (commands.application.Command method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.check.Command.getParser">(commands.check.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.clean.Command.getParser">(commands.clean.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.compile.Command.getParser">(commands.compile.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.config.Command.getParser">(commands.config.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.configure.Command.getParser">(commands.configure.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.environ.Command.getParser">(commands.environ.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.find_duplicates.Command.getParser">(commands.find_duplicates.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.generate.Command.getParser">(commands.generate.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.init.Command.getParser">(commands.init.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.job.Command.getParser">(commands.job.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Command.getParser">(commands.jobs.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.launcher.Command.getParser">(commands.launcher.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.log.Command.getParser">(commands.log.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.make.Command.getParser">(commands.make.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.makeinstall.Command.getParser">(commands.makeinstall.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.package.Command.getParser">(commands.package.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.patch.Command.getParser">(commands.patch.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.prepare.Command.getParser">(commands.prepare.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.profile.Command.getParser">(commands.profile.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.run.Command.getParser">(commands.run.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.script.Command.getParser">(commands.script.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.shell.Command.getParser">(commands.shell.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.source.Command.getParser">(commands.source.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.template.Command.getParser">(commands.template.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.test.Command.getParser">(commands.test.Command method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="apidoc_src/src.html#src.ElementTree.ElementTree.getroot">getroot() (src.ElementTree.ElementTree method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.xmlManager.ReadXmlFile.getRootAttrib">getRootAttrib() (src.xmlManager.ReadXmlFile method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.debug.getStrConfigDbg">getStrConfigDbg() (in module src.debug)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.debug.getStrConfigStd">getStrConfigStd() (in module src.debug)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.test_module.getTmpDirDEFAULT">getTmpDirDEFAULT() (in module src.test_module)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigReader.getToken">getToken() (src.pyconf.ConfigReader method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.loggingSat.getUnittestLogger">getUnittestLogger() (in module src.loggingSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode.getValue">getValue() (src.returnCode.ReturnCode method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.salomeTools.getVersion">getVersion() (in module src.salomeTools)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode.getWhy">getWhy() (src.returnCode.ReturnCode method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.system.git_extract">git_extract() (in module src.system)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiBack.GREEN">GREEN (src.colorama.ansi.AnsiBack attribute)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiFore.GREEN">(src.colorama.ansi.AnsiFore attribute)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinColor.GREEN">(src.colorama.winterm.WinColor attribute)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="apidoc_src/src.html#src.utilsSat.green">green() (in module src.utilsSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinColor.GREY">GREY (src.colorama.winterm.WinColor attribute)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Gui">Gui (class in commands.jobs)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
 <h2 id="H">H</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.compilation.Builder.hack_libtool">hack_libtool() (src.compilation.Builder method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.package.hack_for_distene_licence">hack_for_distene_licence() (in module commands.package)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigMerger.handleMismatch">handleMismatch() (src.pyconf.ConfigMerger method)</a>
+  <dt><a href="apidoc_src/src.html#src.compilation.Builder.hack_libtool">hack_libtool() (src.compilation.Builder method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigMerger.handleMismatch">handleMismatch() (src.pyconf.ConfigMerger method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.utilsSat.handleRemoveReadonly">handleRemoveReadonly() (in module src.utilsSat)</a>
   </dt>
 
   </dl></td>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.handleRemoveReadonly">handleRemoveReadonly() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Job.has_begun">has_begun() (commands.jobs.Job method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Job.has_failed">has_failed() (commands.jobs.Job method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Job.has_finished">has_finished() (commands.jobs.Job method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.header">header() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.template.TemplateSettings.has_pyconf">has_pyconf() (commands.template.TemplateSettings method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.utilsSat.header">header() (in module src.utilsSat)</a>
   </dt>
 
   </dl></td>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.coloringSat.indent">indent() (in module src.coloringSat)</a>
+  <dt><a href="apidoc_src/src.html#src.coloringSat.indent">indent() (in module src.coloringSat)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.debug.indent">(in module src.debug)</a>
+  <dt><a href="apidoc_src/src.html#src.debug.indent">(in module src.debug)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.loggingSat.indent">(in module src.loggingSat)</a>
+  <dt><a href="apidoc_src/src.html#src.loggingSat.indent">(in module src.loggingSat)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.options.Options.indent">(src.options.Options method)</a>
+  <dt><a href="apidoc_src/src.html#src.options.Options.indent">(src.options.Options method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode.indent">(src.returnCode.ReturnCode method)</a>
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode.indent">(src.returnCode.ReturnCode method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.loggingSat.indentUnittest">indentUnittest() (in module src.loggingSat)</a>
+  <dt><a href="apidoc_src/src.html#src.loggingSat.indentUnittest">indentUnittest() (in module src.loggingSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.utilsSat.info">info() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.info">info() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.initialise.init">init() (in module src.colorama.initialise)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.initialise.init">init() (in module src.colorama.initialise)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Gui.initialize_boards">initialize_boards() (commands.jobs.Gui method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.loggingSat.initLoggerAsDefault">initLoggerAsDefault() (in module src.loggingSat)</a>
+  <dt><a href="apidoc_src/src.html#src.loggingSat.initLoggerAsDefault">initLoggerAsDefault() (in module src.loggingSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.loggingSat.initLoggerAsUnittest">initLoggerAsUnittest() (in module src.loggingSat)</a>
+  <dt><a href="apidoc_src/src.html#src.loggingSat.initLoggerAsUnittest">initLoggerAsUnittest() (in module src.loggingSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.example.html#src.example.essai_logging_1.initMyLogger">initMyLogger() (in module src.example.essai_logging_1)</a>
+  <dt><a href="apidoc_src/src.example.html#src.example.essai_logging_1.initMyLogger">initMyLogger() (in module src.example.essai_logging_1)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.example.html#src.example.essai_logging_2.initMyLogger">(in module src.example.essai_logging_2)</a>
+  <dt><a href="apidoc_src/src.example.html#src.example.essai_logging_2.initMyLogger">(in module src.example.essai_logging_2)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.compilation.Builder.install">install() (src.compilation.Builder method)</a>
+  <dt><a href="apidoc_src/src.html#src.compilation.Builder.install">install() (src.compilation.Builder method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.debug.InStream">InStream (class in src.debug)</a>
+  <dt><a href="apidoc_src/src.html#src.debug.InStream">InStream (class in src.debug)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansitowin32.is_a_tty">is_a_tty() (in module src.colorama.ansitowin32)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansitowin32.is_a_tty">is_a_tty() (in module src.colorama.ansitowin32)</a>
   </dt>
 
-  </dl></td>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.environment.Environ.is_defined">is_defined() (src.environment.Environ method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.Environ.is_defined">is_defined() (src.environment.Environ method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.is_defined">(src.environment.SalomeEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.is_defined">(src.environment.SalomeEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.FileEnviron.is_defined">(src.fileEnviron.FileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.FileEnviron.is_defined">(src.fileEnviron.FileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.is_defined">(src.fileEnviron.LauncherFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.is_defined">(src.fileEnviron.LauncherFileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.is_defined">(src.fileEnviron.ScreenEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ScreenEnviron.is_defined">(src.fileEnviron.ScreenEnviron method)</a>
   </dt>
 
       </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Jobs.is_occupied">is_occupied() (commands.jobs.Jobs method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Job.is_running">is_running() (commands.jobs.Job method)</a>
+  </dt>
+
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansitowin32.is_stream_closed">is_stream_closed() (in module src.colorama.ansitowin32)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansitowin32.is_stream_closed">is_stream_closed() (in module src.colorama.ansitowin32)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.architecture.is_windows">is_windows() (in module src.architecture)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Job.is_timeout">is_timeout() (commands.jobs.Job method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.Path.isdir">isdir() (src.utilsSat.Path method)</a>
+  <dt><a href="apidoc_src/src.html#src.architecture.is_windows">is_windows() (in module src.architecture)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.iselement">iselement() (in module src.ElementTree)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.Path.isdir">isdir() (src.utilsSat.Path method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.Path.isfile">isfile() (src.utilsSat.Path method)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.iselement">iselement() (in module src.ElementTree)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.Path.islink">islink() (src.utilsSat.Path method)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.Path.isfile">isfile() (src.utilsSat.Path method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode.isOk">isOk() (src.returnCode.ReturnCode method)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.Path.islink">islink() (src.utilsSat.Path method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.isWord">isWord() (in module src.pyconf)</a>
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode.isOk">isOk() (src.returnCode.ReturnCode method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Mapping.iteritems">iteritems() (src.pyconf.Mapping method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.isWord">isWord() (in module src.pyconf)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Mapping.iterkeys">iterkeys() (src.pyconf.Mapping method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Mapping.iteritems">iteritems() (src.pyconf.Mapping method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.iterparse">iterparse (class in src.ElementTree)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Mapping.iterkeys">iterkeys() (src.pyconf.Mapping method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.ElementTree.iterparse">iterparse (class in src.ElementTree)</a>
   </dt>
 
   </dl></td>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.catchAll.jsonDumps">jsonDumps() (in module src.catchAll)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Job">Job (class in commands.jobs)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Jobs">Jobs (class in commands.jobs)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="apidoc_src/src.html#src.catchAll.jsonDumps">jsonDumps() (in module src.catchAll)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.catchAll.CatchAll.jsonDumps">(src.catchAll.CatchAll method)</a>
+  <dt><a href="apidoc_src/src.html#src.catchAll.CatchAll.jsonDumps">(src.catchAll.CatchAll method)</a>
   </dt>
 
       </dl></dd>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Mapping.keys">keys() (src.pyconf.Mapping method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Mapping.keys">keys() (src.pyconf.Mapping method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode.KFSYS">KFSYS (src.returnCode.ReturnCode attribute)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode.KFSYS">KFSYS (src.returnCode.ReturnCode attribute)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Job.kill_remote_process">kill_remote_process() (commands.jobs.Job method)</a>
   </dt>
 
   </dl></td>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode.KNOWNFAILURE_STATUS">KNOWNFAILURE_STATUS (src.returnCode.ReturnCode attribute)</a>
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode.KNOWNFAILURE_STATUS">KNOWNFAILURE_STATUS (src.returnCode.ReturnCode attribute)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode.KO_STATUS">KO_STATUS (src.returnCode.ReturnCode attribute)</a>
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode.KO_STATUS">KO_STATUS (src.returnCode.ReturnCode attribute)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode.KOSYS">KOSYS (src.returnCode.ReturnCode attribute)</a>
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode.KOSYS">KOSYS (src.returnCode.ReturnCode attribute)</a>
   </dt>
 
   </dl></td>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.label">label() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.label">label() (in module src.utilsSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Gui.last_update">last_update() (commands.jobs.Gui method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.fork.launch_command">launch_command() (in module src.fork)</a>
+  <dt><a href="apidoc_src/src.html#src.fork.launch_command">launch_command() (in module src.fork)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron">LauncherFileEnviron (class in src.fileEnviron)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron">LauncherFileEnviron (class in src.fileEnviron)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.salomeTools.launchSat">launchSat() (in module src.salomeTools)</a>
+  <dt><a href="apidoc_src/src.html#src.salomeTools.launchSat">launchSat() (in module src.salomeTools)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiBack.LIGHTBLACK_EX">LIGHTBLACK_EX (src.colorama.ansi.AnsiBack attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiBack.LIGHTBLACK_EX">LIGHTBLACK_EX (src.colorama.ansi.AnsiBack attribute)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiFore.LIGHTBLACK_EX">(src.colorama.ansi.AnsiFore attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiFore.LIGHTBLACK_EX">(src.colorama.ansi.AnsiFore attribute)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiBack.LIGHTBLUE_EX">LIGHTBLUE_EX (src.colorama.ansi.AnsiBack attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiBack.LIGHTBLUE_EX">LIGHTBLUE_EX (src.colorama.ansi.AnsiBack attribute)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiFore.LIGHTBLUE_EX">(src.colorama.ansi.AnsiFore attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiFore.LIGHTBLUE_EX">(src.colorama.ansi.AnsiFore attribute)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiBack.LIGHTCYAN_EX">LIGHTCYAN_EX (src.colorama.ansi.AnsiBack attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiBack.LIGHTCYAN_EX">LIGHTCYAN_EX (src.colorama.ansi.AnsiBack attribute)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiFore.LIGHTCYAN_EX">(src.colorama.ansi.AnsiFore attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiFore.LIGHTCYAN_EX">(src.colorama.ansi.AnsiFore attribute)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiBack.LIGHTGREEN_EX">LIGHTGREEN_EX (src.colorama.ansi.AnsiBack attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiBack.LIGHTGREEN_EX">LIGHTGREEN_EX (src.colorama.ansi.AnsiBack attribute)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiFore.LIGHTGREEN_EX">(src.colorama.ansi.AnsiFore attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiFore.LIGHTGREEN_EX">(src.colorama.ansi.AnsiFore attribute)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiBack.LIGHTMAGENTA_EX">LIGHTMAGENTA_EX (src.colorama.ansi.AnsiBack attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiBack.LIGHTMAGENTA_EX">LIGHTMAGENTA_EX (src.colorama.ansi.AnsiBack attribute)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiFore.LIGHTMAGENTA_EX">(src.colorama.ansi.AnsiFore attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiFore.LIGHTMAGENTA_EX">(src.colorama.ansi.AnsiFore attribute)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiBack.LIGHTRED_EX">LIGHTRED_EX (src.colorama.ansi.AnsiBack attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiBack.LIGHTRED_EX">LIGHTRED_EX (src.colorama.ansi.AnsiBack attribute)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiFore.LIGHTRED_EX">(src.colorama.ansi.AnsiFore attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiFore.LIGHTRED_EX">(src.colorama.ansi.AnsiFore attribute)</a>
   </dt>
 
       </dl></dd>
-  </dl></td>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiBack.LIGHTWHITE_EX">LIGHTWHITE_EX (src.colorama.ansi.AnsiBack attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiBack.LIGHTWHITE_EX">LIGHTWHITE_EX (src.colorama.ansi.AnsiBack attribute)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiFore.LIGHTWHITE_EX">(src.colorama.ansi.AnsiFore attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiFore.LIGHTWHITE_EX">(src.colorama.ansi.AnsiFore attribute)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiBack.LIGHTYELLOW_EX">LIGHTYELLOW_EX (src.colorama.ansi.AnsiBack attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiBack.LIGHTYELLOW_EX">LIGHTYELLOW_EX (src.colorama.ansi.AnsiBack attribute)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiFore.LIGHTYELLOW_EX">(src.colorama.ansi.AnsiFore attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiFore.LIGHTYELLOW_EX">(src.colorama.ansi.AnsiFore attribute)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.Path.list">list() (src.utilsSat.Path method)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.Path.list">list() (src.utilsSat.Path method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.find_duplicates.list_directory">list_directory() (in module commands.find_duplicates)</a>
   </dt>
 
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.list_log_file">list_log_file() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.list_log_file">list_log_file() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Config.load">load() (src.pyconf.Config method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Config.load">load() (src.pyconf.Config method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigReader.load">(src.pyconf.ConfigReader method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigReader.load">(src.pyconf.ConfigReader method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.load_cfg_environment">load_cfg_environment() (src.environment.SalomeEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.load_cfg_environment">load_cfg_environment() (src.environment.SalomeEnviron method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.environment.load_environment">load_environment() (in module src.environment)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigReader.location">location() (src.pyconf.ConfigReader method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.load_environment">load_environment() (in module src.environment)</a>
+  <dt><a href="apidoc_src/src.html#src.coloringSat.log">log() (in module src.coloringSat)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="apidoc_src/src.html#src.loggingSat.log">(in module src.loggingSat)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_src/src.html#src.compilation.Builder.log">(src.compilation.Builder method)</a>
   </dt>
 
+      </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigReader.location">location() (src.pyconf.ConfigReader method)</a>
+  <dt><a href="apidoc_src/src.html#src.compilation.Builder.log_command">log_command() (src.compilation.Builder method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.coloringSat.log">log() (in module src.coloringSat)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.check.log_res_step">log_res_step() (in module commands.check)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.loggingSat.log">(in module src.loggingSat)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.compile.log_res_step">(in module commands.compile)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.configure.log_res_step">(in module commands.configure)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.make.log_res_step">(in module commands.make)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.compilation.Builder.log">(src.compilation.Builder method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.makeinstall.log_res_step">(in module commands.makeinstall)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.script.log_res_step">(in module commands.script)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.compilation.Builder.log_command">log_command() (src.compilation.Builder method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.check.log_step">log_step() (in module commands.check)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.compile.log_step">(in module commands.compile)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.configure.log_step">(in module commands.configure)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.make.log_step">(in module commands.make)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.makeinstall.log_step">(in module commands.makeinstall)</a>
   </dt>
 
+        
+  <dt><a href="apidoc_commands/commands.html#commands.script.log_step">(in module commands.script)</a>
+  </dt>
+
+      </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.logger_info_tuples">logger_info_tuples() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.logger_info_tuples">logger_info_tuples() (in module src.utilsSat)</a>
   </dt>
 
   </dl></td>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiBack.MAGENTA">MAGENTA (src.colorama.ansi.AnsiBack attribute)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Machine">Machine (class in commands.jobs)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiBack.MAGENTA">MAGENTA (src.colorama.ansi.AnsiBack attribute)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiFore.MAGENTA">(src.colorama.ansi.AnsiFore attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiFore.MAGENTA">(src.colorama.ansi.AnsiFore attribute)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinColor.MAGENTA">(src.colorama.winterm.WinColor attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinColor.MAGENTA">(src.colorama.winterm.WinColor attribute)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.magenta">magenta() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.magenta">magenta() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.compilation.Builder.make">make() (src.compilation.Builder method)</a>
+  <dt><a href="apidoc_src/src.html#src.compilation.Builder.make">make() (src.compilation.Builder method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.Path.make">(src.utilsSat.Path method)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.Path.make">(src.utilsSat.Path method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.makePath">makePath() (in module src.pyconf)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.application.make_alias">make_alias() (in module commands.application)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.make.make_all_products">make_all_products() (in module commands.make)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.package.make_archive">make_archive() (in module commands.package)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.make.make_product">make_product() (in module commands.make)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.makeinstall.makeinstall_all_products">makeinstall_all_products() (in module commands.makeinstall)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="apidoc_commands/commands.html#commands.makeinstall.makeinstall_product">makeinstall_product() (in module commands.makeinstall)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.pyconf.makePath">makePath() (in module src.pyconf)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.pyconf.Mapping">Mapping (class in src.pyconf)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigReader.match">match() (src.pyconf.ConfigReader method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigMerger.merge">merge() (src.pyconf.ConfigMerger method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.utilsSat.merge_dicts">merge_dicts() (in module src.utilsSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigMerger.mergeMapping">mergeMapping() (src.pyconf.ConfigMerger method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigMerger.mergeSequence">mergeSequence() (src.pyconf.ConfigMerger method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Machine.mkdir">mkdir() (commands.jobs.Machine method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.test.move_test_results">move_test_results() (in module commands.test)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.example.html#src.example.essai_logging_2.MyFormatter">MyFormatter (class in src.example.essai_logging_2)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.template.MyTemplate">MyTemplate (class in src.template)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="N">N</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode.NA_STATUS">NA_STATUS (src.returnCode.ReturnCode attribute)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.application.Command.name">name (commands.application.Command attribute)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.check.Command.name">(commands.check.Command attribute)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.clean.Command.name">(commands.clean.Command attribute)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.compile.Command.name">(commands.compile.Command attribute)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.config.Command.name">(commands.config.Command attribute)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.configure.Command.name">(commands.configure.Command attribute)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.environ.Command.name">(commands.environ.Command attribute)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.find_duplicates.Command.name">(commands.find_duplicates.Command attribute)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.generate.Command.name">(commands.generate.Command attribute)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.init.Command.name">(commands.init.Command attribute)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.job.Command.name">(commands.job.Command attribute)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Command.name">(commands.jobs.Command attribute)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.launcher.Command.name">(commands.launcher.Command attribute)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.log.Command.name">(commands.log.Command attribute)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.make.Command.name">(commands.make.Command attribute)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.makeinstall.Command.name">(commands.makeinstall.Command attribute)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.package.Command.name">(commands.package.Command attribute)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.patch.Command.name">(commands.patch.Command attribute)</a>
   </dt>
 
-  </dl></td>
-  <td style="width: 33%" valign="top"><dl>
-      
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Mapping">Mapping (class in src.pyconf)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.prepare.Command.name">(commands.prepare.Command attribute)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigReader.match">match() (src.pyconf.ConfigReader method)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.profile.Command.name">(commands.profile.Command attribute)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigMerger.merge">merge() (src.pyconf.ConfigMerger method)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.run.Command.name">(commands.run.Command attribute)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.merge_dicts">merge_dicts() (in module src.utilsSat)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.script.Command.name">(commands.script.Command attribute)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigMerger.mergeMapping">mergeMapping() (src.pyconf.ConfigMerger method)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.shell.Command.name">(commands.shell.Command attribute)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigMerger.mergeSequence">mergeSequence() (src.pyconf.ConfigMerger method)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.source.Command.name">(commands.source.Command attribute)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.example.html#src.example.essai_logging_2.MyFormatter">MyFormatter (class in src.example.essai_logging_2)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.template.Command.name">(commands.template.Command attribute)</a>
   </dt>
 
-      
-  <dt><a href="commands/apidoc/src.html#src.template.MyTemplate">MyTemplate (class in src.template)</a>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.test.Command.name">(commands.test.Command attribute)</a>
   </dt>
 
+      </dl></dd>
   </dl></td>
-</tr></table>
-
-<h2 id="N">N</h2>
-<table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode.NA_STATUS">NA_STATUS (src.returnCode.ReturnCode attribute)</a>
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode.NASYS">NASYS (src.returnCode.ReturnCode attribute)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode.NASYS">NASYS (src.returnCode.ReturnCode attribute)</a>
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode.NDSYS">NDSYS (src.returnCode.ReturnCode attribute)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode.NDSYS">NDSYS (src.returnCode.ReturnCode attribute)</a>
-  </dt>
-
-      
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.iterparse.next">next() (src.ElementTree.iterparse method)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.iterparse.next">next() (src.ElementTree.iterparse method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Sequence.SeqIter.next">(src.pyconf.Sequence.SeqIter method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Sequence.SeqIter.next">(src.pyconf.Sequence.SeqIter method)</a>
   </dt>
 
       </dl></dd>
-  </dl></td>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiStyle.NORMAL">NORMAL (src.colorama.ansi.AnsiStyle attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiStyle.NORMAL">NORMAL (src.colorama.ansi.AnsiStyle attribute)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinStyle.NORMAL">(src.colorama.winterm.WinStyle attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinStyle.NORMAL">(src.colorama.winterm.WinStyle attribute)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.normal">normal() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.normal">normal() (in module src.utilsSat)</a>
   </dt>
 
   </dl></td>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode.OK_STATUS">OK_STATUS (src.returnCode.ReturnCode attribute)</a>
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode.OK_STATUS">OK_STATUS (src.returnCode.ReturnCode attribute)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode.OKSYS">OKSYS (src.returnCode.ReturnCode attribute)</a>
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode.OKSYS">OKSYS (src.returnCode.ReturnCode attribute)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.only_numbers">only_numbers() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.only_numbers">only_numbers() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.options.Options">Options (class in src.options)</a>
+  <dt><a href="apidoc_src/src.html#src.options.Options">Options (class in src.options)</a>
   </dt>
 
   </dl></td>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.options.OptResult">OptResult (class in src.options)</a>
+  <dt><a href="apidoc_src/src.html#src.options.OptResult">OptResult (class in src.options)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.debug.OutStream">OutStream (class in src.debug)</a>
+  <dt><a href="apidoc_src/src.html#src.debug.OutStream">OutStream (class in src.debug)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigMerger.overwriteKeys">overwriteKeys() (src.pyconf.ConfigMerger method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigMerger.overwriteKeys">overwriteKeys() (src.pyconf.ConfigMerger method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.overwriteMergeResolve">overwriteMergeResolve() (in module src.pyconf)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.overwriteMergeResolve">overwriteMergeResolve() (in module src.pyconf)</a>
   </dt>
 
   </dl></td>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.parse">parse() (in module src.ElementTree)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.parse">parse() (in module src.ElementTree)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.ElementTree.parse">(src.ElementTree.ElementTree method)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.ElementTree.parse">(src.ElementTree.ElementTree method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.options.Options.parse_args">parse_args() (src.options.Options method)</a>
+  <dt><a href="apidoc_src/src.html#src.options.Options.parse_args">parse_args() (src.options.Options method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Gui.parse_csv_boards">parse_csv_boards() (commands.jobs.Gui method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.parse_date">parse_date() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.parse_date">parse_date() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.salomeTools.Sat.parseArguments">parseArguments() (src.salomeTools.Sat method)</a>
+  <dt><a href="apidoc_src/src.html#src.salomeTools.Sat.parseArguments">parseArguments() (src.salomeTools.Sat method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigReader.parseFactor">parseFactor() (src.pyconf.ConfigReader method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigReader.parseFactor">parseFactor() (src.pyconf.ConfigReader method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigReader.parseKeyValuePair">parseKeyValuePair() (src.pyconf.ConfigReader method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigReader.parseKeyValuePair">parseKeyValuePair() (src.pyconf.ConfigReader method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigReader.parseMapping">parseMapping() (src.pyconf.ConfigReader method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.profile.profileConfigReader.parseMapping">parseMapping() (commands.profile.profileConfigReader method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigReader.parseMapping">(src.pyconf.ConfigReader method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigReader.parseMappingBody">parseMappingBody() (src.pyconf.ConfigReader method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigReader.parseMappingBody">parseMappingBody() (src.pyconf.ConfigReader method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigReader.parseReference">parseReference() (src.pyconf.ConfigReader method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigReader.parseReference">parseReference() (src.pyconf.ConfigReader method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigReader.parseScalar">parseScalar() (src.pyconf.ConfigReader method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigReader.parseScalar">parseScalar() (src.pyconf.ConfigReader method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigReader.parseSequence">parseSequence() (src.pyconf.ConfigReader method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigReader.parseSequence">parseSequence() (src.pyconf.ConfigReader method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigReader.parseSuffix">parseSuffix() (src.pyconf.ConfigReader method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigReader.parseSuffix">parseSuffix() (src.pyconf.ConfigReader method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigReader.parseTerm">parseTerm() (src.pyconf.ConfigReader method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigReader.parseTerm">parseTerm() (src.pyconf.ConfigReader method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigReader.parseValue">parseValue() (src.pyconf.ConfigReader method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigReader.parseValue">parseValue() (src.pyconf.ConfigReader method)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.Path">Path (class in src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.Path">Path (class in src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.template.MyTemplate.pattern">pattern (src.template.MyTemplate attribute)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.template.MyTemplate.pattern">pattern (src.template.MyTemplate attribute)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.PI">PI() (in module src.ElementTree)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.PI">PI() (in module src.ElementTree)</a>
+  <dt><a href="apidoc_src/src.html#src.debug.pop_debug">pop_debug() (in module src.debug)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.debug.pop_debug">pop_debug() (in module src.debug)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiCursor.POS">POS() (src.colorama.ansi.AnsiCursor method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiCursor.POS">POS() (src.colorama.ansi.AnsiCursor method)</a>
+  <dt><a href="apidoc_src/src.html#src.compilation.Builder.prepare">prepare() (src.compilation.Builder method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.compilation.Builder.prepare">prepare() (src.compilation.Builder method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.template.prepare_from_template">prepare_from_template() (in module commands.template)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.test_module.Test.prepare_testbase">prepare_testbase() (src.test_module.Test method)</a>
+  <dt><a href="apidoc_src/src.html#src.test_module.Test.prepare_testbase">prepare_testbase() (src.test_module.Test method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.test_module.Test.prepare_testbase_from_dir">prepare_testbase_from_dir() (src.test_module.Test method)</a>
+  <dt><a href="apidoc_src/src.html#src.test_module.Test.prepare_testbase_from_dir">prepare_testbase_from_dir() (src.test_module.Test method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.test_module.Test.prepare_testbase_from_git">prepare_testbase_from_git() (src.test_module.Test method)</a>
+  <dt><a href="apidoc_src/src.html#src.test_module.Test.prepare_testbase_from_git">prepare_testbase_from_git() (src.test_module.Test method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.test_module.Test.prepare_testbase_from_svn">prepare_testbase_from_svn() (src.test_module.Test method)</a>
+  <dt><a href="apidoc_src/src.html#src.test_module.Test.prepare_testbase_from_svn">prepare_testbase_from_svn() (src.test_module.Test method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.Environ.prepend">prepend() (src.environment.Environ method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.Environ.prepend">prepend() (src.environment.Environ method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.prepend">(src.environment.SalomeEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.prepend">(src.environment.SalomeEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.FileEnviron.prepend">(src.fileEnviron.FileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.FileEnviron.prepend">(src.fileEnviron.FileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.prepend">(src.fileEnviron.LauncherFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.prepend">(src.fileEnviron.LauncherFileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.prepend">(src.fileEnviron.ScreenEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ScreenEnviron.prepend">(src.fileEnviron.ScreenEnviron method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.environment.Environ.prepend_value">prepend_value() (src.environment.Environ method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.Environ.prepend_value">prepend_value() (src.environment.Environ method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.prepend_value">(src.fileEnviron.ContextFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ContextFileEnviron.prepend_value">(src.fileEnviron.ContextFileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.FileEnviron.prepend_value">(src.fileEnviron.FileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.FileEnviron.prepend_value">(src.fileEnviron.FileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.prepend_value">(src.fileEnviron.LauncherFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.prepend_value">(src.fileEnviron.LauncherFileEnviron method)</a>
   </dt>
 
       </dl></dd>
+      
+  <dt><a href="apidoc_src/src.html#src.configManager.print_debug">print_debug() (in module src.configManager)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.environs.print_grep_environs">print_grep_environs() (in module src.environs)</a>
+  </dt>
+
   </dl></td>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.configManager.print_debug">print_debug() (in module src.configManager)</a>
+  <dt><a href="apidoc_src/src.html#src.salomeTools.Sat.print_help">print_help() (src.salomeTools.Sat method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.log.print_log_command_in_terminal">print_log_command_in_terminal() (in module commands.log)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.environs.print_split_environs">print_split_environs() (in module src.environs)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.environs.print_split_pattern_environs">print_split_pattern_environs() (in module src.environs)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.configManager.print_value">print_value() (in module src.configManager)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.ElementTree.ProcessingInstruction">ProcessingInstruction() (in module src.ElementTree)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.package.produce_install_bin_file">produce_install_bin_file() (in module commands.package)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environs.print_grep_environs">print_grep_environs() (in module src.environs)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.package.produce_relative_env_files">produce_relative_env_files() (in module commands.package)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.salomeTools.Sat.print_help">print_help() (src.salomeTools.Sat method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.package.produce_relative_launcher">produce_relative_launcher() (in module commands.package)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environs.print_split_environs">print_split_environs() (in module src.environs)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.package.product_appli_creation_script">product_appli_creation_script() (in module commands.package)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environs.print_split_pattern_environs">print_split_pattern_environs() (in module src.environs)</a>
+  <dt><a href="apidoc_src/src.html#src.product.product_compiles">product_compiles() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.configManager.print_value">print_value() (in module src.configManager)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.clean.product_has_dir">product_has_dir() (in module commands.clean)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.ProcessingInstruction">ProcessingInstruction() (in module src.ElementTree)</a>
+  <dt><a href="apidoc_src/src.html#src.product.product_has_env_script">product_has_env_script() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.product_compiles">product_compiles() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.product.product_has_logo">product_has_logo() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.product_has_env_script">product_has_env_script() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.product.product_has_patches">product_has_patches() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.product_has_logo">product_has_logo() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.product.product_has_salome_gui">product_has_salome_gui() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.product_has_patches">product_has_patches() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.product.product_has_script">product_has_script() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.product_has_salome_gui">product_has_salome_gui() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.product.product_is_autotools">product_is_autotools() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.product_has_script">product_has_script() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.product.product_is_cmake">product_is_cmake() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.product_is_autotools">product_is_autotools() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.product.product_is_cpp">product_is_cpp() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.product_is_cmake">product_is_cmake() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.product.product_is_debug">product_is_debug() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.product_is_cpp">product_is_cpp() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.product.product_is_dev">product_is_dev() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.product_is_debug">product_is_debug() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.product.product_is_fixed">product_is_fixed() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.product_is_dev">product_is_dev() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.product.product_is_generated">product_is_generated() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.product_is_fixed">product_is_fixed() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.product.product_is_mpi">product_is_mpi() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.product_is_generated">product_is_generated() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.product.product_is_native">product_is_native() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.product_is_mpi">product_is_mpi() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.product.product_is_SALOME">product_is_SALOME() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.product_is_native">product_is_native() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.product.product_is_salome">product_is_salome() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.product_is_SALOME">product_is_SALOME() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.product.product_is_sample">product_is_sample() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.product_is_salome">product_is_salome() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.product.product_is_smesh_plugin">product_is_smesh_plugin() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.product_is_sample">product_is_sample() (in module src.product)</a>
+  <dt><a href="apidoc_src/src.html#src.product.product_is_vcs">product_is_vcs() (in module src.product)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.product_is_smesh_plugin">product_is_smesh_plugin() (in module src.product)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.profile.profileConfigReader">profileConfigReader (class in commands.profile)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.product.product_is_vcs">product_is_vcs() (in module src.product)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.profile.profileReference">profileReference (class in commands.profile)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.debug.push_debug">push_debug() (in module src.debug)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.find_duplicates.Progress_bar">Progress_bar (class in commands.find_duplicates)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.compilation.Builder.put_txt_log_in_appli_log_dir">put_txt_log_in_appli_log_dir() (src.compilation.Builder method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.package.project_package">project_package() (in module commands.package)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.debug.push_debug">push_debug() (in module src.debug)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Machine.put_dir">put_dir() (commands.jobs.Machine method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Gui.put_jobs_not_today">put_jobs_not_today() (commands.jobs.Gui method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.compilation.Builder.put_txt_log_in_appli_log_dir">put_txt_log_in_appli_log_dir() (src.compilation.Builder method)</a>
   </dt>
 
   </dl></td>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.QName">QName (class in src.ElementTree)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.QName">QName (class in src.ElementTree)</a>
   </dt>
 
   </dl></td>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigInputStream.read">read() (src.pyconf.ConfigInputStream method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigInputStream.read">read() (src.pyconf.ConfigInputStream method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.read_config_from_a_file">read_config_from_a_file() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.read_config_from_a_file">read_config_from_a_file() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.test_module.Test.read_results">read_results() (src.test_module.Test method)</a>
+  <dt><a href="apidoc_src/src.html#src.test_module.Test.read_results">read_results() (src.test_module.Test method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigInputStream.readline">readline() (src.pyconf.ConfigInputStream method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigInputStream.readline">readline() (src.pyconf.ConfigInputStream method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.Path.readlink">readlink() (src.utilsSat.Path method)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.Path.readlink">readlink() (src.utilsSat.Path method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.xmlManager.ReadXmlFile">ReadXmlFile (class in src.xmlManager)</a>
+  <dt><a href="apidoc_src/src.html#src.xmlManager.ReadXmlFile">ReadXmlFile (class in src.xmlManager)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiBack.RED">RED (src.colorama.ansi.AnsiBack attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiBack.RED">RED (src.colorama.ansi.AnsiBack attribute)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiFore.RED">(src.colorama.ansi.AnsiFore attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiFore.RED">(src.colorama.ansi.AnsiFore attribute)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinColor.RED">(src.colorama.winterm.WinColor attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinColor.RED">(src.colorama.winterm.WinColor attribute)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.red">red() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.red">red() (in module src.utilsSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.pyconf.Reference">Reference (class in src.pyconf)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.initialise.reinit">reinit() (in module src.colorama.initialise)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Reference">Reference (class in src.pyconf)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.remove_item_from_list">remove_item_from_list() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.initialise.reinit">reinit() (in module src.colorama.initialise)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.log.remove_log_file">remove_log_file() (in module commands.log)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.remove_item_from_list">remove_item_from_list() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.prepare.remove_products">remove_products() (in module commands.prepare)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Config.removeNamespace">removeNamespace() (src.pyconf.Config method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Config.removeNamespace">removeNamespace() (src.pyconf.Config method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.coloringSat.replace">replace() (in module src.coloringSat)</a>
+  <dt><a href="apidoc_src/src.html#src.coloringSat.replace">replace() (in module src.coloringSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.replace_in_file">replace_in_file() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.replace_in_file">replace_in_file() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiBack.RESET">RESET (src.colorama.ansi.AnsiBack attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiBack.RESET">RESET (src.colorama.ansi.AnsiBack attribute)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiFore.RESET">(src.colorama.ansi.AnsiFore attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiFore.RESET">(src.colorama.ansi.AnsiFore attribute)</a>
   </dt>
 
       </dl></dd>
-  </dl></td>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.reset">reset() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.reset">reset() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiStyle.RESET_ALL">RESET_ALL (src.colorama.ansi.AnsiStyle attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiStyle.RESET_ALL">RESET_ALL (src.colorama.ansi.AnsiStyle attribute)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.initialise.reset_all">reset_all() (in module src.colorama.initialise)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.initialise.reset_all">reset_all() (in module src.colorama.initialise)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.reset_all">(src.colorama.ansitowin32.AnsiToWin32 method)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.reset_all">(src.colorama.ansitowin32.AnsiToWin32 method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.reset_all">(src.colorama.winterm.WinTerm method)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.reset_all">(src.colorama.winterm.WinTerm method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Reference.resolve">resolve() (src.pyconf.Reference method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Reference.resolve">resolve() (src.pyconf.Reference method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode">ReturnCode (class in src.returnCode)</a>
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode">ReturnCode (class in src.returnCode)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.Path.rm">rm() (src.utilsSat.Path method)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.Path.rm">rm() (src.utilsSat.Path method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.application.Command.run">run() (commands.application.Command method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="apidoc_commands/commands.html#commands.check.Command.run">(commands.check.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.clean.Command.run">(commands.clean.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.compile.Command.run">(commands.compile.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.config.Command.run">(commands.config.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.configure.Command.run">(commands.configure.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.environ.Command.run">(commands.environ.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.find_duplicates.Command.run">(commands.find_duplicates.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.generate.Command.run">(commands.generate.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.init.Command.run">(commands.init.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.job.Command.run">(commands.job.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Command.run">(commands.jobs.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Job.run">(commands.jobs.Job method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.launcher.Command.run">(commands.launcher.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.log.Command.run">(commands.log.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.make.Command.run">(commands.make.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.makeinstall.Command.run">(commands.makeinstall.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.package.Command.run">(commands.package.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.patch.Command.run">(commands.patch.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.prepare.Command.run">(commands.prepare.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.profile.Command.run">(commands.profile.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.run.Command.run">(commands.run.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.script.Command.run">(commands.script.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.shell.Command.run">(commands.shell.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.source.Command.run">(commands.source.Command method)</a>
   </dt>
 
+        
+  <dt><a href="apidoc_commands/commands.html#commands.template.Command.run">(commands.template.Command method)</a>
+  </dt>
+
+        
+  <dt><a href="apidoc_commands/commands.html#commands.test.Command.run">(commands.test.Command method)</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.test_module.Test.run_all_tests">run_all_tests() (src.test_module.Test method)</a>
+  <dt><a href="apidoc_src/src.html#src.test_module.Test.run_all_tests">run_all_tests() (src.test_module.Test method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.run_env_script">run_env_script() (src.environment.SalomeEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.run_env_script">run_env_script() (src.environment.SalomeEnviron method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.run_env_script">(src.fileEnviron.ScreenEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ScreenEnviron.run_env_script">(src.fileEnviron.ScreenEnviron method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.test_module.Test.run_grid_tests">run_grid_tests() (src.test_module.Test method)</a>
+  <dt><a href="apidoc_src/src.html#src.test_module.Test.run_grid_tests">run_grid_tests() (src.test_module.Test method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Jobs.run_jobs">run_jobs() (commands.jobs.Jobs method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.test_module.Test.run_script">run_script() (src.test_module.Test method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.script.run_script_all_products">run_script_all_products() (in module commands.script)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.test_module.Test.run_script">run_script() (src.test_module.Test method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.script.run_script_of_product">run_script_of_product() (in module commands.script)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.test_module.Test.run_session_tests">run_session_tests() (src.test_module.Test method)</a>
+  <dt><a href="apidoc_src/src.html#src.test_module.Test.run_session_tests">run_session_tests() (src.test_module.Test method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.run_simple_env_script">run_simple_env_script() (src.environment.SalomeEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.run_simple_env_script">run_simple_env_script() (src.environment.SalomeEnviron method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.test_module.Test.run_testbase_tests">run_testbase_tests() (src.test_module.Test method)</a>
+  <dt><a href="apidoc_src/src.html#src.test_module.Test.run_testbase_tests">run_testbase_tests() (src.test_module.Test method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.test_module.Test.run_tests">run_tests() (src.test_module.Test method)</a>
+  <dt><a href="apidoc_src/src.html#src.test_module.Test.run_tests">run_tests() (src.test_module.Test method)</a>
   </dt>
 
   </dl></td>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron">SalomeEnviron (class in src.environment)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron">SalomeEnviron (class in src.environment)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.salomeTools.Sat">Sat (class in src.salomeTools)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.test.save_file">save_file() (in module commands.test)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.salomeTools.Sat">Sat (class in src.salomeTools)</a>
+  <dt><a href="apidoc_src/src.html#src.debug.saveConfigDbg">saveConfigDbg() (in module src.debug)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.debug.saveConfigDbg">saveConfigDbg() (in module src.debug)</a>
+  <dt><a href="apidoc_src/src.html#src.debug.saveConfigStd">saveConfigStd() (in module src.debug)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.debug.saveConfigStd">saveConfigStd() (in module src.debug)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ScreenEnviron">ScreenEnviron (class in src.fileEnviron)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ScreenEnviron">ScreenEnviron (class in src.fileEnviron)</a>
+  <dt><a href="apidoc_src/src.html#src.test_module.Test.search_known_errors">search_known_errors() (src.test_module.Test method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.test_module.Test.search_known_errors">search_known_errors() (src.test_module.Test method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.template.search_template">search_template() (in module commands.template)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Sequence">Sequence (class in src.pyconf)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Sequence">Sequence (class in src.pyconf)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Sequence.SeqIter">Sequence.SeqIter (class in src.pyconf)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Sequence.SeqIter">Sequence.SeqIter (class in src.pyconf)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.Environ.set">set() (src.environment.Environ method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.Environ.set">set() (src.environment.Environ method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.set">(src.environment.SalomeEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.set">(src.environment.SalomeEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.BashFileEnviron.set">(src.fileEnviron.BashFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.BashFileEnviron.set">(src.fileEnviron.BashFileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.BatFileEnviron.set">(src.fileEnviron.BatFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.BatFileEnviron.set">(src.fileEnviron.BatFileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.set">(src.fileEnviron.ContextFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ContextFileEnviron.set">(src.fileEnviron.ContextFileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.FileEnviron.set">(src.fileEnviron.FileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.FileEnviron.set">(src.fileEnviron.FileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.set">(src.fileEnviron.LauncherFileEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.LauncherFileEnviron.set">(src.fileEnviron.LauncherFileEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.set">(src.fileEnviron.ScreenEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ScreenEnviron.set">(src.fileEnviron.ScreenEnviron method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.set_a_product">set_a_product() (src.environment.SalomeEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.set_a_product">set_a_product() (src.environment.SalomeEnviron method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.set_application_env">set_application_env() (src.environment.SalomeEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.set_application_env">set_application_env() (src.environment.SalomeEnviron method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.set_attrs">set_attrs() (src.colorama.winterm.WinTerm method)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.set_attrs">set_attrs() (src.colorama.winterm.WinTerm method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.set_console">set_console() (src.colorama.winterm.WinTerm method)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.set_console">set_console() (src.colorama.winterm.WinTerm method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.set_cpp_env">set_cpp_env() (src.environment.SalomeEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.set_cpp_env">set_cpp_env() (src.environment.SalomeEnviron method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.set_cursor_position">set_cursor_position() (src.colorama.winterm.WinTerm method)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.set_cursor_position">set_cursor_position() (src.colorama.winterm.WinTerm method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.set_full_environ">set_full_environ() (src.environment.SalomeEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.set_full_environ">set_full_environ() (src.environment.SalomeEnviron method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.set_products">set_products() (src.environment.SalomeEnviron method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.init.set_local_value">set_local_value() (in module commands.init)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.set_python_libdirs">set_python_libdirs() (src.environment.SalomeEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.set_products">set_products() (src.environment.SalomeEnviron method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.set_salome_generic_product_env">set_salome_generic_product_env() (src.environment.SalomeEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.set_python_libdirs">set_python_libdirs() (src.environment.SalomeEnviron method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.SalomeEnviron.set_salome_minimal_product_env">set_salome_minimal_product_env() (src.environment.SalomeEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.set_salome_generic_product_env">set_salome_generic_product_env() (src.environment.SalomeEnviron method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.set_title">set_title() (in module src.colorama.ansi)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.SalomeEnviron.set_salome_minimal_product_env">set_salome_minimal_product_env() (src.environment.SalomeEnviron method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.set_title">set_title() (in module src.colorama.ansi)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.set_title">(src.colorama.winterm.WinTerm method)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.set_title">(src.colorama.winterm.WinTerm method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.configManager.ConfigManager.set_user_config_file">set_user_config_file() (src.configManager.ConfigManager method)</a>
+  <dt><a href="apidoc_src/src.html#src.configManager.ConfigManager.set_user_config_file">set_user_config_file() (src.configManager.ConfigManager method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.loggingSat.DefaultFormatter.setColorLevelname">setColorLevelname() (src.loggingSat.DefaultFormatter method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.win32.SetConsoleTextAttribute">SetConsoleTextAttribute() (in module src.colorama.win32)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.salomeTools.setLocale">setLocale() (in module src.salomeTools)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.loggingSat.DefaultFormatter.setColorLevelname">setColorLevelname() (src.loggingSat.DefaultFormatter method)</a>
+  <dt><a href="apidoc_src/src.html#src.salomeTools.setNotLocale">setNotLocale() (in module src.salomeTools)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.win32.SetConsoleTextAttribute">SetConsoleTextAttribute() (in module src.colorama.win32)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Container.setPath">setPath() (src.pyconf.Container method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.salomeTools.setLocale">setLocale() (in module src.salomeTools)</a>
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode.setStatus">setStatus() (src.returnCode.ReturnCode method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.salomeTools.setNotLocale">setNotLocale() (in module src.salomeTools)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigReader.setStream">setStream() (src.pyconf.ConfigReader method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Container.setPath">setPath() (src.pyconf.Container method)</a>
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode.setValue">setValue() (src.returnCode.ReturnCode method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode.setStatus">setStatus() (src.returnCode.ReturnCode method)</a>
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode.setWhy">setWhy() (src.returnCode.ReturnCode method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigReader.setStream">setStream() (src.pyconf.ConfigReader method)</a>
+  <dt><a href="apidoc_src/src.html#src.environment.Shell">Shell (class in src.environment)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode.setValue">setValue() (src.returnCode.ReturnCode method)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.should_wrap">should_wrap() (src.colorama.ansitowin32.AnsiToWin32 method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode.setWhy">setWhy() (src.returnCode.ReturnCode method)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.show_command_log">show_command_log() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.Shell">Shell (class in src.environment)</a>
+  <dt><a href="apidoc_src/src.html#src.system.show_in_editor">show_in_editor() (in module src.system)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.should_wrap">should_wrap() (src.colorama.ansitowin32.AnsiToWin32 method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.log.show_last_logs">show_last_logs() (in module commands.log)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.show_command_log">show_command_log() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.configManager.show_patchs">show_patchs() (in module src.configManager)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.system.show_in_editor">show_in_editor() (in module src.system)</a>
+  <dt><a href="apidoc_src/src.html#src.configManager.show_product_info">show_product_info() (in module src.configManager)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.configManager.show_patchs">show_patchs() (in module src.configManager)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.log.show_product_last_logs">show_product_last_logs() (in module commands.log)</a>
   </dt>
 
   </dl></td>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.configManager.show_product_info">show_product_info() (in module src.configManager)</a>
+  <dt><a href="apidoc_src/src.html#src.fork.show_progress">show_progress() (in module src.fork)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.utilsSat.Path.smartcopy">smartcopy() (src.utilsSat.Path method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.compile.sort_products">sort_products() (in module commands.compile)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.package.source_package">source_package() (in module commands.package)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.special_path_separator">special_path_separator() (in module src.fileEnviron)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.fork.show_progress">show_progress() (in module src.fork)</a>
+  <dt><a href="apidoc_src/src.html#module-src">src (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.Path.smartcopy">smartcopy() (src.utilsSat.Path method)</a>
+  <dt><a href="apidoc_src/src.html#module-src.architecture">src.architecture (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.special_path_separator">special_path_separator() (in module src.fileEnviron)</a>
+  <dt><a href="apidoc_src/src.html#module-src.catchAll">src.catchAll (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src">src (module)</a>
+  <dt><a href="apidoc_src/src.colorama.html#module-src.colorama">src.colorama (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.architecture">src.architecture (module)</a>
+  <dt><a href="apidoc_src/src.colorama.html#module-src.colorama.ansi">src.colorama.ansi (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.catchAll">src.catchAll (module)</a>
+  <dt><a href="apidoc_src/src.colorama.html#module-src.colorama.ansitowin32">src.colorama.ansitowin32 (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#module-src.colorama">src.colorama (module)</a>
+  <dt><a href="apidoc_src/src.colorama.html#module-src.colorama.initialise">src.colorama.initialise (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#module-src.colorama.ansi">src.colorama.ansi (module)</a>
+  <dt><a href="apidoc_src/src.colorama.html#module-src.colorama.win32">src.colorama.win32 (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#module-src.colorama.ansitowin32">src.colorama.ansitowin32 (module)</a>
+  <dt><a href="apidoc_src/src.colorama.html#module-src.colorama.winterm">src.colorama.winterm (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#module-src.colorama.initialise">src.colorama.initialise (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.coloringSat">src.coloringSat (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#module-src.colorama.win32">src.colorama.win32 (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.compilation">src.compilation (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#module-src.colorama.winterm">src.colorama.winterm (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.configManager">src.configManager (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.coloringSat">src.coloringSat (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.debug">src.debug (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.compilation">src.compilation (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.ElementTree">src.ElementTree (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.configManager">src.configManager (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.environment">src.environment (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.debug">src.debug (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.environs">src.environs (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.ElementTree">src.ElementTree (module)</a>
+  <dt><a href="apidoc_src/src.example.html#module-src.example">src.example (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.environment">src.environment (module)</a>
+  <dt><a href="apidoc_src/src.example.html#module-src.example.essai_logging_1">src.example.essai_logging_1 (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.environs">src.environs (module)</a>
+  <dt><a href="apidoc_src/src.example.html#module-src.example.essai_logging_2">src.example.essai_logging_2 (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.example.html#module-src.example">src.example (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.exceptionSat">src.exceptionSat (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.example.html#module-src.example.essai_logging_1">src.example.essai_logging_1 (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.fileEnviron">src.fileEnviron (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.example.html#module-src.example.essai_logging_2">src.example.essai_logging_2 (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.fork">src.fork (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.exceptionSat">src.exceptionSat (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.loggingSat">src.loggingSat (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.fileEnviron">src.fileEnviron (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.options">src.options (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.fork">src.fork (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.product">src.product (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.loggingSat">src.loggingSat (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.pyconf">src.pyconf (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.options">src.options (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.returnCode">src.returnCode (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.product">src.product (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.salomeTools">src.salomeTools (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.pyconf">src.pyconf (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.system">src.system (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.returnCode">src.returnCode (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.template">src.template (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.salomeTools">src.salomeTools (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.test_module">src.test_module (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.system">src.system (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.utilsSat">src.utilsSat (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.template">src.template (module)</a>
+  <dt><a href="apidoc_src/src.html#module-src.xmlManager">src.xmlManager (module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.test_module">src.test_module (module)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Jobs.ssh_connection_all_machines">ssh_connection_all_machines() (commands.jobs.Jobs method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.utilsSat">src.utilsSat (module)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.TreeBuilder.start">start() (src.ElementTree.TreeBuilder method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#module-src.xmlManager">src.xmlManager (module)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Jobs.str_of_length">str_of_length() (commands.jobs.Jobs method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.TreeBuilder.start">start() (src.ElementTree.TreeBuilder method)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansitowin32.StreamWrapper">StreamWrapper (class in src.colorama.ansitowin32)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansitowin32.StreamWrapper">StreamWrapper (class in src.colorama.ansitowin32)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm.style">style() (src.colorama.winterm.WinTerm method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm.style">style() (src.colorama.winterm.WinTerm method)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.SubElement">SubElement() (in module src.ElementTree)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.SubElement">SubElement() (in module src.ElementTree)</a>
+  <dt><a href="apidoc_src/src.html#src.template.substitute">substitute() (in module src.template)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.template.substitute">substitute() (in module src.template)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.success">success() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.success">success() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Machine.successfully_connected">successfully_connected() (commands.jobs.Machine method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.system.svn_extract">svn_extract() (in module src.system)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.clean.suppress_directories">suppress_directories() (in module commands.clean)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.Path.symlink">symlink() (src.utilsSat.Path method)</a>
+  <dt><a href="apidoc_src/src.html#src.system.svn_extract">svn_extract() (in module src.system)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.utilsSat.Path.symlink">symlink() (src.utilsSat.Path method)</a>
   </dt>
 
   </dl></td>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.test_module.Test">Test (class in src.test_module)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.template.TemplateSettings">TemplateSettings (class in commands.template)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.test_module.Test">Test (class in src.test_module)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.example.html#src.example.essai_logging_1.testLogger1">testLogger1() (in module src.example.essai_logging_1)</a>
+  <dt><a href="apidoc_src/src.example.html#src.example.essai_logging_1.testLogger1">testLogger1() (in module src.example.essai_logging_1)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.example.html#src.example.essai_logging_2.testLogger1">(in module src.example.essai_logging_2)</a>
+  <dt><a href="apidoc_src/src.example.html#src.example.essai_logging_2.testLogger1">(in module src.example.essai_logging_2)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.loggingSat.testLogger_1">testLogger_1() (in module src.loggingSat)</a>
+  <dt><a href="apidoc_src/src.html#src.loggingSat.testLogger_1">testLogger_1() (in module src.loggingSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Job.time_elapsed">time_elapsed() (commands.jobs.Job method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.timedelta_total_seconds">timedelta_total_seconds() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.timedelta_total_seconds">timedelta_total_seconds() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode.TIMEOUT_STATUS">TIMEOUT_STATUS (src.returnCode.ReturnCode attribute)</a>
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode.TIMEOUT_STATUS">TIMEOUT_STATUS (src.returnCode.ReturnCode attribute)</a>
   </dt>
 
   </dl></td>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.coloringSat.toColor">toColor() (in module src.coloringSat)</a>
+  <dt><a href="apidoc_src/src.html#src.coloringSat.toColor">toColor() (in module src.coloringSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.coloringSat.toColor_AnsiToWin32">toColor_AnsiToWin32() (in module src.coloringSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.coloringSat.toColor_AnsiToWin32">toColor_AnsiToWin32() (in module src.coloringSat)</a>
+  <dt><a href="apidoc_src/src.html#src.debug.tofix">tofix() (in module src.debug)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.debug.tofix">tofix() (in module src.debug)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.tostring">tostring() (in module src.ElementTree)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.tostring">tostring() (in module src.ElementTree)</a>
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode.TOSYS">TOSYS (src.returnCode.ReturnCode attribute)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode.TOSYS">TOSYS (src.returnCode.ReturnCode attribute)</a>
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode.toSys">toSys() (src.returnCode.ReturnCode method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode.toSys">toSys() (src.returnCode.ReturnCode method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Job.total_duration">total_duration() (commands.jobs.Job method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.TreeBuilder">TreeBuilder (class in src.ElementTree)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.template.TParam">TParam (class in commands.template)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.ElementTree.TreeBuilder">TreeBuilder (class in src.ElementTree)</a>
   </dt>
 
   </dl></td>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.loggingSat.UnittestFormatter">UnittestFormatter (class in src.loggingSat)</a>
+  <dt><a href="apidoc_src/src.html#src.loggingSat.UnittestFormatter">UnittestFormatter (class in src.loggingSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.loggingSat.UnittestStream">UnittestStream (class in src.loggingSat)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.returnCode.ReturnCode.UNKNOWN_STATUS">UNKNOWN_STATUS (src.returnCode.ReturnCode attribute)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiCursor.UP">UP() (src.colorama.ansi.AnsiCursor method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.loggingSat.UnittestStream">UnittestStream (class in src.loggingSat)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.package.update_config">update_config() (in module commands.package)</a>
   </dt>
 
   </dl></td>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.returnCode.ReturnCode.UNKNOWN_STATUS">UNKNOWN_STATUS (src.returnCode.ReturnCode attribute)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.update_hat_xml">update_hat_xml() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiCursor.UP">UP() (src.colorama.ansi.AnsiCursor method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Jobs.update_jobs_states_list">update_jobs_states_list() (commands.jobs.Jobs method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.update_hat_xml">update_hat_xml() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.profile.update_pyconf">update_pyconf() (in module commands.profile)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Gui.update_xml_file">update_xml_file() (commands.jobs.Gui method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Gui.update_xml_files">update_xml_files() (commands.jobs.Gui method)</a>
   </dt>
 
   </dl></td>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.warning">warning() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.warning">warning() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiBack.WHITE">WHITE (src.colorama.ansi.AnsiBack attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiBack.WHITE">WHITE (src.colorama.ansi.AnsiBack attribute)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiFore.WHITE">(src.colorama.ansi.AnsiFore attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiFore.WHITE">(src.colorama.ansi.AnsiFore attribute)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.white">white() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.white">white() (in module src.utilsSat)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.win32.winapi_test">winapi_test() (in module src.colorama.win32)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.win32.winapi_test">winapi_test() (in module src.colorama.win32)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinColor">WinColor (class in src.colorama.winterm)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinColor">WinColor (class in src.colorama.winterm)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinStyle">WinStyle (class in src.colorama.winterm)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinStyle">WinStyle (class in src.colorama.winterm)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinTerm">WinTerm (class in src.colorama.winterm)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinTerm">WinTerm (class in src.colorama.winterm)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.compilation.Builder.wmake">wmake() (src.compilation.Builder method)</a>
+  <dt><a href="apidoc_src/src.html#src.compilation.Builder.wmake">wmake() (src.compilation.Builder method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.initialise.wrap_stream">wrap_stream() (in module src.colorama.initialise)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.initialise.wrap_stream">wrap_stream() (in module src.colorama.initialise)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.debug.write">write() (in module src.debug)</a>
+  <dt><a href="apidoc_src/src.html#src.debug.write">write() (in module src.debug)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.ElementTree.write">(src.ElementTree.ElementTree method)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.ElementTree.write">(src.ElementTree.ElementTree method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.write">(src.colorama.ansitowin32.AnsiToWin32 method)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.write">(src.colorama.ansitowin32.AnsiToWin32 method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansitowin32.StreamWrapper.write">(src.colorama.ansitowin32.StreamWrapper method)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansitowin32.StreamWrapper.write">(src.colorama.ansitowin32.StreamWrapper method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.coloringSat.ColoringStream.write">(src.coloringSat.ColoringStream method)</a>
+  <dt><a href="apidoc_src/src.html#src.coloringSat.ColoringStream.write">(src.coloringSat.ColoringStream method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.write">(src.fileEnviron.ScreenEnviron method)</a>
+  <dt><a href="apidoc_src/src.html#src.fileEnviron.ScreenEnviron.write">(src.fileEnviron.ScreenEnviron method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.loggingSat.UnittestStream.write">(src.loggingSat.UnittestStream method)</a>
+  <dt><a href="apidoc_src/src.html#src.loggingSat.UnittestStream.write">(src.loggingSat.UnittestStream method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.pyconf.ConfigOutputStream.write">(src.pyconf.ConfigOutputStream method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.ConfigOutputStream.write">(src.pyconf.ConfigOutputStream method)</a>
   </dt>
 
       </dl></dd>
   </dl></td>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.write_and_convert">write_and_convert() (src.colorama.ansitowin32.AnsiToWin32 method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Jobs.write_all_results">write_all_results() (commands.jobs.Jobs method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.environ.write_all_source_files">write_all_source_files() (in module commands.environ)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.write_and_convert">write_and_convert() (src.colorama.ansitowin32.AnsiToWin32 method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.fork.write_back">write_back() (in module src.fork)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.environment.FileEnvWriter.write_cfgForPy_file">write_cfgForPy_file() (src.environment.FileEnvWriter method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_src/src.html#src.environment.FileEnvWriter.write_env_file">write_env_file() (src.environment.FileEnvWriter method)</a>
+  </dt>
+
+      
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Machine.write_info">write_info() (commands.jobs.Machine method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.fork.write_back">write_back() (in module src.fork)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.write_plain_text">write_plain_text() (src.colorama.ansitowin32.AnsiToWin32 method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.FileEnvWriter.write_cfgForPy_file">write_cfgForPy_file() (src.environment.FileEnvWriter method)</a>
+  <dt><a href="apidoc_src/src.html#src.xmlManager.write_report">write_report() (in module src.xmlManager)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.environment.FileEnvWriter.write_env_file">write_env_file() (src.environment.FileEnvWriter method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Job.write_results">write_results() (commands.jobs.Job method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansitowin32.AnsiToWin32.write_plain_text">write_plain_text() (src.colorama.ansitowin32.AnsiToWin32 method)</a>
+  <dt><a href="apidoc_src/src.html#src.test_module.Test.write_test_margin">write_test_margin() (src.test_module.Test method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.xmlManager.write_report">write_report() (in module src.xmlManager)</a>
+  <dt><a href="apidoc_src/src.html#src.xmlManager.XmlLogFile.write_tree">write_tree() (src.xmlManager.XmlLogFile method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.test_module.Test.write_test_margin">write_test_margin() (src.test_module.Test method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Gui.write_xml_file">write_xml_file() (commands.jobs.Gui method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.xmlManager.XmlLogFile.write_tree">write_tree() (src.xmlManager.XmlLogFile method)</a>
+  <dt><a href="apidoc_commands/commands.html#commands.jobs.Gui.write_xml_files">write_xml_files() (commands.jobs.Gui method)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Container.writeToStream">writeToStream() (src.pyconf.Container method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Container.writeToStream">writeToStream() (src.pyconf.Container method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Mapping.writeToStream">(src.pyconf.Mapping method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Mapping.writeToStream">(src.pyconf.Mapping method)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Sequence.writeToStream">(src.pyconf.Sequence method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Sequence.writeToStream">(src.pyconf.Sequence method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="commands/apidoc/src.html#src.pyconf.Container.writeValue">writeValue() (src.pyconf.Container method)</a>
+  <dt><a href="apidoc_src/src.html#src.pyconf.Container.writeValue">writeValue() (src.pyconf.Container method)</a>
   </dt>
 
   </dl></td>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.XML">XML() (in module src.ElementTree)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.XML">XML() (in module src.ElementTree)</a>
   </dt>
 
   </dl></td>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.xmlManager.XmlLogFile">XmlLogFile (class in src.xmlManager)</a>
+  <dt><a href="apidoc_src/src.html#src.xmlManager.XmlLogFile">XmlLogFile (class in src.xmlManager)</a>
   </dt>
 
       
-  <dt><a href="commands/apidoc/src.html#src.ElementTree.XMLTreeBuilder">XMLTreeBuilder (class in src.ElementTree)</a>
+  <dt><a href="apidoc_src/src.html#src.ElementTree.XMLTreeBuilder">XMLTreeBuilder (class in src.ElementTree)</a>
   </dt>
 
   </dl></td>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiBack.YELLOW">YELLOW (src.colorama.ansi.AnsiBack attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiBack.YELLOW">YELLOW (src.colorama.ansi.AnsiBack attribute)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.ansi.AnsiFore.YELLOW">(src.colorama.ansi.AnsiFore attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.ansi.AnsiFore.YELLOW">(src.colorama.ansi.AnsiFore attribute)</a>
   </dt>
 
         
-  <dt><a href="commands/apidoc/src.colorama.html#src.colorama.winterm.WinColor.YELLOW">(src.colorama.winterm.WinColor attribute)</a>
+  <dt><a href="apidoc_src/src.colorama.html#src.colorama.winterm.WinColor.YELLOW">(src.colorama.winterm.WinColor attribute)</a>
   </dt>
 
       </dl></dd>
   </dl></td>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="commands/apidoc/src.html#src.utilsSat.yellow">yellow() (in module src.utilsSat)</a>
+  <dt><a href="apidoc_src/src.html#src.utilsSat.yellow">yellow() (in module src.utilsSat)</a>
   </dt>
 
   </dl></td>
index c7201659eeb3ce7c53d226243dfcf9cf1293795b..5c702b232797d18aad3fe032c34e0977f64d6976 100644 (file)
@@ -98,7 +98,8 @@ create application, run tests, create package, etc.</p>
 <h2>Code documentation<a class="headerlink" href="#code-documentation" title="Permalink to this headline">¶</a></h2>
 <div class="toctree-wrapper compound">
 <ul>
-<li class="toctree-l1"><a class="reference internal" href="commands/apidoc/modules.html">SAT modules</a></li>
+<li class="toctree-l1"><a class="reference internal" href="apidoc_src/modules.html">SAT src modules</a></li>
+<li class="toctree-l1"><a class="reference internal" href="apidoc_commands/modules.html">SAT commands modules</a></li>
 </ul>
 </div>
 </div>
index bbdfd46514b2906b7c6ace282c7310b473693b35..14523261cab2a20bed61313d093f0ff000c4572e 100644 (file)
Binary files a/doc/build/html/objects.inv and b/doc/build/html/objects.inv differ
index 537d0138f52cf43f56160c90cd23656363d12971..3dfa4ba44ee79e39af6d8a75459061ad4d4f76bc 100644 (file)
    <h1>Python Module Index</h1>
 
    <div class="modindex-jumpbox">
+   <a href="#cap-c"><strong>c</strong></a> | 
    <a href="#cap-s"><strong>s</strong></a>
    </div>
 
    <table class="indextable modindextable" cellspacing="0" cellpadding="2">
      <tr class="pcap"><td></td><td>&#160;</td><td></td></tr>
-     <tr class="cap" id="cap-s"><td></td><td>
-       <strong>s</strong></td><td></td></tr>
+     <tr class="cap" id="cap-c"><td></td><td>
+       <strong>c</strong></td><td></td></tr>
      <tr>
        <td><img src="_static/minus.png" class="toggler"
               id="toggle-1" style="display: none" alt="-" /></td>
        <td>
-       <a href="commands/apidoc/src.html#module-src"><code class="xref">src</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands"><code class="xref">commands</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.architecture"><code class="xref">src.architecture</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.application"><code class="xref">commands.application</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.catchAll"><code class="xref">src.catchAll</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.check"><code class="xref">commands.check</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.colorama.html#module-src.colorama"><code class="xref">src.colorama</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.clean"><code class="xref">commands.clean</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.colorama.html#module-src.colorama.ansi"><code class="xref">src.colorama.ansi</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.compile"><code class="xref">commands.compile</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.colorama.html#module-src.colorama.ansitowin32"><code class="xref">src.colorama.ansitowin32</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.config"><code class="xref">commands.config</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.colorama.html#module-src.colorama.initialise"><code class="xref">src.colorama.initialise</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.configure"><code class="xref">commands.configure</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.colorama.html#module-src.colorama.win32"><code class="xref">src.colorama.win32</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.environ"><code class="xref">commands.environ</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.colorama.html#module-src.colorama.winterm"><code class="xref">src.colorama.winterm</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.find_duplicates"><code class="xref">commands.find_duplicates</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.coloringSat"><code class="xref">src.coloringSat</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.generate"><code class="xref">commands.generate</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.compilation"><code class="xref">src.compilation</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.init"><code class="xref">commands.init</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.configManager"><code class="xref">src.configManager</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.job"><code class="xref">commands.job</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.debug"><code class="xref">src.debug</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.jobs"><code class="xref">commands.jobs</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.ElementTree"><code class="xref">src.ElementTree</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.launcher"><code class="xref">commands.launcher</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.environment"><code class="xref">src.environment</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.log"><code class="xref">commands.log</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.environs"><code class="xref">src.environs</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.make"><code class="xref">commands.make</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.example.html#module-src.example"><code class="xref">src.example</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.makeinstall"><code class="xref">commands.makeinstall</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.example.html#module-src.example.essai_logging_1"><code class="xref">src.example.essai_logging_1</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.package"><code class="xref">commands.package</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.example.html#module-src.example.essai_logging_2"><code class="xref">src.example.essai_logging_2</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.patch"><code class="xref">commands.patch</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.exceptionSat"><code class="xref">src.exceptionSat</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.prepare"><code class="xref">commands.prepare</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.fileEnviron"><code class="xref">src.fileEnviron</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.profile"><code class="xref">commands.profile</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.fork"><code class="xref">src.fork</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.run"><code class="xref">commands.run</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.loggingSat"><code class="xref">src.loggingSat</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.script"><code class="xref">commands.script</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.options"><code class="xref">src.options</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.shell"><code class="xref">commands.shell</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.product"><code class="xref">src.product</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.source"><code class="xref">commands.source</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.pyconf"><code class="xref">src.pyconf</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.template"><code class="xref">commands.template</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.returnCode"><code class="xref">src.returnCode</code></a></td><td>
+       <a href="apidoc_commands/commands.html#module-commands.test"><code class="xref">commands.test</code></a></td><td>
        <em></em></td></tr>
-     <tr class="cg-1">
+     <tr class="pcap"><td></td><td>&#160;</td><td></td></tr>
+     <tr class="cap" id="cap-s"><td></td><td>
+       <strong>s</strong></td><td></td></tr>
+     <tr>
+       <td><img src="_static/minus.png" class="toggler"
+              id="toggle-2" style="display: none" alt="-" /></td>
+       <td>
+       <a href="apidoc_src/src.html#module-src"><code class="xref">src</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.salomeTools"><code class="xref">src.salomeTools</code></a></td><td>
+       <a href="apidoc_src/src.html#module-src.architecture"><code class="xref">src.architecture</code></a></td><td>
        <em></em></td></tr>
-     <tr class="cg-1">
+     <tr class="cg-2">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.system"><code class="xref">src.system</code></a></td><td>
+       <a href="apidoc_src/src.html#module-src.catchAll"><code class="xref">src.catchAll</code></a></td><td>
        <em></em></td></tr>
-     <tr class="cg-1">
+     <tr class="cg-2">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.template"><code class="xref">src.template</code></a></td><td>
+       <a href="apidoc_src/src.colorama.html#module-src.colorama"><code class="xref">src.colorama</code></a></td><td>
        <em></em></td></tr>
-     <tr class="cg-1">
+     <tr class="cg-2">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.test_module"><code class="xref">src.test_module</code></a></td><td>
+       <a href="apidoc_src/src.colorama.html#module-src.colorama.ansi"><code class="xref">src.colorama.ansi</code></a></td><td>
        <em></em></td></tr>
-     <tr class="cg-1">
+     <tr class="cg-2">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.utilsSat"><code class="xref">src.utilsSat</code></a></td><td>
+       <a href="apidoc_src/src.colorama.html#module-src.colorama.ansitowin32"><code class="xref">src.colorama.ansitowin32</code></a></td><td>
        <em></em></td></tr>
-     <tr class="cg-1">
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.colorama.html#module-src.colorama.initialise"><code class="xref">src.colorama.initialise</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.colorama.html#module-src.colorama.win32"><code class="xref">src.colorama.win32</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.colorama.html#module-src.colorama.winterm"><code class="xref">src.colorama.winterm</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.html#module-src.coloringSat"><code class="xref">src.coloringSat</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.html#module-src.compilation"><code class="xref">src.compilation</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.html#module-src.configManager"><code class="xref">src.configManager</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.html#module-src.debug"><code class="xref">src.debug</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.html#module-src.ElementTree"><code class="xref">src.ElementTree</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.html#module-src.environment"><code class="xref">src.environment</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.html#module-src.environs"><code class="xref">src.environs</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.example.html#module-src.example"><code class="xref">src.example</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.example.html#module-src.example.essai_logging_1"><code class="xref">src.example.essai_logging_1</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.example.html#module-src.example.essai_logging_2"><code class="xref">src.example.essai_logging_2</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.html#module-src.exceptionSat"><code class="xref">src.exceptionSat</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.html#module-src.fileEnviron"><code class="xref">src.fileEnviron</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.html#module-src.fork"><code class="xref">src.fork</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.html#module-src.loggingSat"><code class="xref">src.loggingSat</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.html#module-src.options"><code class="xref">src.options</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.html#module-src.product"><code class="xref">src.product</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.html#module-src.pyconf"><code class="xref">src.pyconf</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.html#module-src.returnCode"><code class="xref">src.returnCode</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.html#module-src.salomeTools"><code class="xref">src.salomeTools</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.html#module-src.system"><code class="xref">src.system</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.html#module-src.template"><code class="xref">src.template</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.html#module-src.test_module"><code class="xref">src.test_module</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="apidoc_src/src.html#module-src.utilsSat"><code class="xref">src.utilsSat</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="commands/apidoc/src.html#module-src.xmlManager"><code class="xref">src.xmlManager</code></a></td><td>
+       <a href="apidoc_src/src.html#module-src.xmlManager"><code class="xref">src.xmlManager</code></a></td><td>
        <em></em></td></tr>
    </table>
 
index 7bf2b038b3d7ff83a309fdfdb65ae1ed54840f29..6dcb2f4e675354e72190acba19074b40242f5026 100644 (file)
@@ -27,7 +27,7 @@
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="search" title="Search" href="../search.html" />
     <link rel="top" title="salomeTools 5.0.0dev documentation" href="../index.html" />
-    <link rel="prev" title="src.example package" href="../commands/apidoc/src.example.html" />
+    <link rel="prev" title="commands package" href="../apidoc_commands/commands.html" />
    
   <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
   
@@ -60,7 +60,7 @@
 <h3>Related Topics</h3>
 <ul>
   <li><a href="../index.html">Documentation overview</a><ul>
-      <li>Previous: <a href="../commands/apidoc/src.example.html" title="previous chapter">src.example package</a></li>
+      <li>Previous: <a href="../apidoc_commands/commands.html" title="previous chapter">commands package</a></li>
   </ul></li>
 </ul>
 </div>
index ad8038a1d4088eee7e46ee21aadc700bbf07b809..04bafc0a1cf23ea6cdf9f3ec8429a095d4b161fb 100644 (file)
@@ -1 +1 @@
-Search.setIndex({envversion:49,filenames:["commands/apidoc/modules","commands/apidoc/src","commands/apidoc/src.colorama","commands/apidoc/src.example","commands/application","commands/clean","commands/compile","commands/config","commands/environ","commands/generate","commands/launcher","commands/log","commands/package","commands/prepare","configuration","index","installation_of_sat","release_notes/release_notes_5.0.0","usage_of_sat","write_command"],objects:{"":{src:[1,0,0,"-"]},"src.ElementTree":{Comment:[1,1,1,""],Element:[1,1,1,""],ElementTree:[1,2,1,""],PI:[1,1,1,""],ProcessingInstruction:[1,1,1,""],QName:[1,2,1,""],SubElement:[1,1,1,""],TreeBuilder:[1,2,1,""],XML:[1,1,1,""],XMLTreeBuilder:[1,2,1,""],dump:[1,1,1,""],fromstring:[1,1,1,""],iselement:[1,1,1,""],iterparse:[1,2,1,""],parse:[1,1,1,""],tostring:[1,1,1,""]},"src.ElementTree.ElementTree":{find:[1,3,1,""],findall:[1,3,1,""],findtext:[1,3,1,""],getiterator:[1,3,1,""],getroot:[1,3,1,""],parse:[1,3,1,""],write:[1,3,1,""]},"src.ElementTree.TreeBuilder":{close:[1,3,1,""],data:[1,3,1,""],end:[1,3,1,""],start:[1,3,1,""]},"src.ElementTree.XMLTreeBuilder":{close:[1,3,1,""],doctype:[1,3,1,""],feed:[1,3,1,""]},"src.ElementTree.iterparse":{next:[1,3,1,""]},"src.architecture":{get_distrib_version:[1,1,1,""],get_distribution:[1,1,1,""],get_nb_proc:[1,1,1,""],get_python_version:[1,1,1,""],get_user:[1,1,1,""],is_windows:[1,1,1,""]},"src.catchAll":{CatchAll:[1,2,1,""],dumper:[1,1,1,""],dumperType:[1,1,1,""],jsonDumps:[1,1,1,""]},"src.catchAll.CatchAll":{jsonDumps:[1,3,1,""]},"src.colorama":{ansi:[2,0,0,"-"],ansitowin32:[2,0,0,"-"],initialise:[2,0,0,"-"],win32:[2,0,0,"-"],winterm:[2,0,0,"-"]},"src.colorama.ansi":{AnsiBack:[2,2,1,""],AnsiCodes:[2,2,1,""],AnsiCursor:[2,2,1,""],AnsiFore:[2,2,1,""],AnsiStyle:[2,2,1,""],clear_line:[2,1,1,""],clear_screen:[2,1,1,""],code_to_chars:[2,1,1,""],set_title:[2,1,1,""]},"src.colorama.ansi.AnsiBack":{BLACK:[2,4,1,""],BLUE:[2,4,1,""],CYAN:[2,4,1,""],GREEN:[2,4,1,""],LIGHTBLACK_EX:[2,4,1,""],LIGHTBLUE_EX:[2,4,1,""],LIGHTCYAN_EX:[2,4,1,""],LIGHTGREEN_EX:[2,4,1,""],LIGHTMAGENTA_EX:[2,4,1,""],LIGHTRED_EX:[2,4,1,""],LIGHTWHITE_EX:[2,4,1,""],LIGHTYELLOW_EX:[2,4,1,""],MAGENTA:[2,4,1,""],RED:[2,4,1,""],RESET:[2,4,1,""],WHITE:[2,4,1,""],YELLOW:[2,4,1,""]},"src.colorama.ansi.AnsiCursor":{BACK:[2,3,1,""],DOWN:[2,3,1,""],FORWARD:[2,3,1,""],POS:[2,3,1,""],UP:[2,3,1,""]},"src.colorama.ansi.AnsiFore":{BLACK:[2,4,1,""],BLUE:[2,4,1,""],CYAN:[2,4,1,""],GREEN:[2,4,1,""],LIGHTBLACK_EX:[2,4,1,""],LIGHTBLUE_EX:[2,4,1,""],LIGHTCYAN_EX:[2,4,1,""],LIGHTGREEN_EX:[2,4,1,""],LIGHTMAGENTA_EX:[2,4,1,""],LIGHTRED_EX:[2,4,1,""],LIGHTWHITE_EX:[2,4,1,""],LIGHTYELLOW_EX:[2,4,1,""],MAGENTA:[2,4,1,""],RED:[2,4,1,""],RESET:[2,4,1,""],WHITE:[2,4,1,""],YELLOW:[2,4,1,""]},"src.colorama.ansi.AnsiStyle":{BRIGHT:[2,4,1,""],DIM:[2,4,1,""],NORMAL:[2,4,1,""],RESET_ALL:[2,4,1,""]},"src.colorama.ansitowin32":{AnsiToWin32:[2,2,1,""],StreamWrapper:[2,2,1,""],is_a_tty:[2,1,1,""],is_stream_closed:[2,1,1,""]},"src.colorama.ansitowin32.AnsiToWin32":{ANSI_CSI_RE:[2,4,1,""],ANSI_OSC_RE:[2,4,1,""],call_win32:[2,3,1,""],convert_ansi:[2,3,1,""],convert_osc:[2,3,1,""],extract_params:[2,3,1,""],get_win32_calls:[2,3,1,""],reset_all:[2,3,1,""],should_wrap:[2,3,1,""],write:[2,3,1,""],write_and_convert:[2,3,1,""],write_plain_text:[2,3,1,""]},"src.colorama.ansitowin32.StreamWrapper":{write:[2,3,1,""]},"src.colorama.initialise":{colorama_text:[2,1,1,""],deinit:[2,1,1,""],init:[2,1,1,""],reinit:[2,1,1,""],reset_all:[2,1,1,""],wrap_stream:[2,1,1,""]},"src.colorama.win32":{SetConsoleTextAttribute:[2,1,1,""],winapi_test:[2,1,1,""]},"src.colorama.winterm":{WinColor:[2,2,1,""],WinStyle:[2,2,1,""],WinTerm:[2,2,1,""]},"src.colorama.winterm.WinColor":{BLACK:[2,4,1,""],BLUE:[2,4,1,""],CYAN:[2,4,1,""],GREEN:[2,4,1,""],GREY:[2,4,1,""],MAGENTA:[2,4,1,""],RED:[2,4,1,""],YELLOW:[2,4,1,""]},"src.colorama.winterm.WinStyle":{BRIGHT:[2,4,1,""],BRIGHT_BACKGROUND:[2,4,1,""],NORMAL:[2,4,1,""]},"src.colorama.winterm.WinTerm":{back:[2,3,1,""],cursor_adjust:[2,3,1,""],erase_line:[2,3,1,""],erase_screen:[2,3,1,""],fore:[2,3,1,""],get_attrs:[2,3,1,""],get_position:[2,3,1,""],reset_all:[2,3,1,""],set_attrs:[2,3,1,""],set_console:[2,3,1,""],set_cursor_position:[2,3,1,""],set_title:[2,3,1,""],style:[2,3,1,""]},"src.coloringSat":{ColoringStream:[1,2,1,""],cleanColors:[1,1,1,""],indent:[1,1,1,""],log:[1,1,1,""],replace:[1,1,1,""],toColor:[1,1,1,""],toColor_AnsiToWin32:[1,1,1,""]},"src.coloringSat.ColoringStream":{flush:[1,3,1,""],write:[1,3,1,""]},"src.compilation":{Builder:[1,2,1,""]},"src.compilation.Builder":{build_configure:[1,3,1,""],check:[1,3,1,""],cmake:[1,3,1,""],complete_environment:[1,3,1,""],configure:[1,3,1,""],do_batch_script_build:[1,3,1,""],do_default_build:[1,3,1,""],do_python_script_build:[1,3,1,""],do_script_build:[1,3,1,""],hack_libtool:[1,3,1,""],install:[1,3,1,""],log:[1,3,1,""],log_command:[1,3,1,""],make:[1,3,1,""],prepare:[1,3,1,""],put_txt_log_in_appli_log_dir:[1,3,1,""],wmake:[1,3,1,""]},"src.configManager":{ConfigManager:[1,2,1,""],ConfigOpener:[1,2,1,""],check_path:[1,1,1,""],getConfigColored:[1,1,1,""],get_config_children:[1,1,1,""],get_products_list:[1,1,1,""],print_debug:[1,1,1,""],print_value:[1,1,1,""],show_patchs:[1,1,1,""],show_product_info:[1,1,1,""]},"src.configManager.ConfigManager":{create_config_file:[1,3,1,""],get_command_line_overrides:[1,3,1,""],get_config:[1,3,1,""],get_user_config_file:[1,3,1,""],set_user_config_file:[1,3,1,""]},"src.configManager.ConfigOpener":{get_path:[1,3,1,""]},"src.debug":{InStream:[1,2,1,""],OutStream:[1,2,1,""],getLocalEnv:[1,1,1,""],getStrConfigDbg:[1,1,1,""],getStrConfigStd:[1,1,1,""],indent:[1,1,1,""],pop_debug:[1,1,1,""],push_debug:[1,1,1,""],saveConfigDbg:[1,1,1,""],saveConfigStd:[1,1,1,""],tofix:[1,1,1,""],write:[1,1,1,""]},"src.debug.OutStream":{close:[1,3,1,""]},"src.environment":{Environ:[1,2,1,""],FileEnvWriter:[1,2,1,""],SalomeEnviron:[1,2,1,""],Shell:[1,2,1,""],load_environment:[1,1,1,""]},"src.environment.Environ":{append:[1,3,1,""],append_value:[1,3,1,""],command_value:[1,3,1,""],get:[1,3,1,""],is_defined:[1,3,1,""],prepend:[1,3,1,""],prepend_value:[1,3,1,""],set:[1,3,1,""]},"src.environment.FileEnvWriter":{write_cfgForPy_file:[1,3,1,""],write_env_file:[1,3,1,""]},"src.environment.SalomeEnviron":{add_comment:[1,3,1,""],add_line:[1,3,1,""],add_warning:[1,3,1,""],append:[1,3,1,""],dump:[1,3,1,""],finish:[1,3,1,""],get:[1,3,1,""],get_names:[1,3,1,""],is_defined:[1,3,1,""],load_cfg_environment:[1,3,1,""],prepend:[1,3,1,""],run_env_script:[1,3,1,""],run_simple_env_script:[1,3,1,""],set:[1,3,1,""],set_a_product:[1,3,1,""],set_application_env:[1,3,1,""],set_cpp_env:[1,3,1,""],set_full_environ:[1,3,1,""],set_products:[1,3,1,""],set_python_libdirs:[1,3,1,""],set_salome_generic_product_env:[1,3,1,""],set_salome_minimal_product_env:[1,3,1,""]},"src.environs":{print_grep_environs:[1,1,1,""],print_split_environs:[1,1,1,""],print_split_pattern_environs:[1,1,1,""]},"src.example":{essai_logging_1:[3,0,0,"-"],essai_logging_2:[3,0,0,"-"]},"src.example.essai_logging_1":{getMyLogger:[3,1,1,""],initMyLogger:[3,1,1,""],testLogger1:[3,1,1,""]},"src.example.essai_logging_2":{MyFormatter:[3,2,1,""],getMyLogger:[3,1,1,""],initMyLogger:[3,1,1,""],testLogger1:[3,1,1,""]},"src.example.essai_logging_2.MyFormatter":{format:[3,3,1,""]},"src.exceptionSat":{ExceptionSat:[1,5,1,""]},"src.fileEnviron":{BashFileEnviron:[1,2,1,""],BatFileEnviron:[1,2,1,""],ContextFileEnviron:[1,2,1,""],FileEnviron:[1,2,1,""],LauncherFileEnviron:[1,2,1,""],ScreenEnviron:[1,2,1,""],get_file_environ:[1,1,1,""],special_path_separator:[1,1,1,""]},"src.fileEnviron.BashFileEnviron":{command_value:[1,3,1,""],finish:[1,3,1,""],set:[1,3,1,""]},"src.fileEnviron.BatFileEnviron":{add_comment:[1,3,1,""],command_value:[1,3,1,""],finish:[1,3,1,""],get:[1,3,1,""],set:[1,3,1,""]},"src.fileEnviron.ContextFileEnviron":{add_echo:[1,3,1,""],add_warning:[1,3,1,""],append_value:[1,3,1,""],command_value:[1,3,1,""],finish:[1,3,1,""],get:[1,3,1,""],prepend_value:[1,3,1,""],set:[1,3,1,""]},"src.fileEnviron.FileEnviron":{add_comment:[1,3,1,""],add_echo:[1,3,1,""],add_line:[1,3,1,""],add_warning:[1,3,1,""],append:[1,3,1,""],append_value:[1,3,1,""],command_value:[1,3,1,""],finish:[1,3,1,""],get:[1,3,1,""],is_defined:[1,3,1,""],prepend:[1,3,1,""],prepend_value:[1,3,1,""],set:[1,3,1,""]},"src.fileEnviron.LauncherFileEnviron":{add:[1,3,1,""],add_comment:[1,3,1,""],add_echo:[1,3,1,""],add_line:[1,3,1,""],add_warning:[1,3,1,""],append:[1,3,1,""],append_value:[1,3,1,""],change_to_launcher:[1,3,1,""],command_value:[1,3,1,""],finish:[1,3,1,""],get:[1,3,1,""],is_defined:[1,3,1,""],prepend:[1,3,1,""],prepend_value:[1,3,1,""],set:[1,3,1,""]},"src.fileEnviron.ScreenEnviron":{add_comment:[1,3,1,""],add_echo:[1,3,1,""],add_line:[1,3,1,""],add_warning:[1,3,1,""],append:[1,3,1,""],command_value:[1,3,1,""],get:[1,3,1,""],is_defined:[1,3,1,""],prepend:[1,3,1,""],run_env_script:[1,3,1,""],set:[1,3,1,""],write:[1,3,1,""]},"src.fork":{batch:[1,1,1,""],batch_salome:[1,1,1,""],launch_command:[1,1,1,""],show_progress:[1,1,1,""],write_back:[1,1,1,""]},"src.loggingSat":{DefaultFormatter:[1,2,1,""],UnittestFormatter:[1,2,1,""],UnittestStream:[1,2,1,""],dirLogger:[1,1,1,""],getDefaultLogger:[1,1,1,""],getUnittestLogger:[1,1,1,""],indent:[1,1,1,""],indentUnittest:[1,1,1,""],initLoggerAsDefault:[1,1,1,""],initLoggerAsUnittest:[1,1,1,""],log:[1,1,1,""],testLogger_1:[1,1,1,""]},"src.loggingSat.DefaultFormatter":{format:[1,3,1,""],setColorLevelname:[1,3,1,""]},"src.loggingSat.UnittestFormatter":{format:[1,3,1,""]},"src.loggingSat.UnittestStream":{flush:[1,3,1,""],getLogs:[1,3,1,""],getLogsAndClear:[1,3,1,""],write:[1,3,1,""]},"src.options":{OptResult:[1,2,1,""],Options:[1,2,1,""]},"src.options.Options":{add_option:[1,3,1,""],debug_write:[1,3,1,""],getDetailOption:[1,3,1,""],get_help:[1,3,1,""],indent:[1,3,1,""],parse_args:[1,3,1,""]},"src.product":{check_config_exists:[1,1,1,""],check_installation:[1,1,1,""],get_base_install_dir:[1,1,1,""],get_install_dir:[1,1,1,""],get_product_components:[1,1,1,""],get_product_config:[1,1,1,""],get_product_dependencies:[1,1,1,""],get_product_section:[1,1,1,""],get_products_infos:[1,1,1,""],product_compiles:[1,1,1,""],product_has_env_script:[1,1,1,""],product_has_logo:[1,1,1,""],product_has_patches:[1,1,1,""],product_has_salome_gui:[1,1,1,""],product_has_script:[1,1,1,""],product_is_SALOME:[1,1,1,""],product_is_autotools:[1,1,1,""],product_is_cmake:[1,1,1,""],product_is_cpp:[1,1,1,""],product_is_debug:[1,1,1,""],product_is_dev:[1,1,1,""],product_is_fixed:[1,1,1,""],product_is_generated:[1,1,1,""],product_is_mpi:[1,1,1,""],product_is_native:[1,1,1,""],product_is_salome:[1,1,1,""],product_is_sample:[1,1,1,""],product_is_smesh_plugin:[1,1,1,""],product_is_vcs:[1,1,1,""]},"src.pyconf":{Config:[1,2,1,""],ConfigError:[1,5,1,""],ConfigFormatError:[1,5,1,""],ConfigInputStream:[1,2,1,""],ConfigList:[1,2,1,""],ConfigMerger:[1,2,1,""],ConfigOutputStream:[1,2,1,""],ConfigReader:[1,2,1,""],ConfigResolutionError:[1,5,1,""],Container:[1,2,1,""],Expression:[1,2,1,""],Mapping:[1,2,1,""],Reference:[1,2,1,""],Sequence:[1,2,1,""],deepCopyMapping:[1,1,1,""],defaultMergeResolve:[1,1,1,""],defaultStreamOpener:[1,1,1,""],isWord:[1,1,1,""],makePath:[1,1,1,""],overwriteMergeResolve:[1,1,1,""]},"src.pyconf.Config":{Namespace:[1,2,1,""],addNamespace:[1,3,1,""],getByPath:[1,3,1,""],load:[1,3,1,""],removeNamespace:[1,3,1,""]},"src.pyconf.ConfigInputStream":{close:[1,3,1,""],read:[1,3,1,""],readline:[1,3,1,""]},"src.pyconf.ConfigList":{getByPath:[1,3,1,""]},"src.pyconf.ConfigMerger":{handleMismatch:[1,3,1,""],merge:[1,3,1,""],mergeMapping:[1,3,1,""],mergeSequence:[1,3,1,""],overwriteKeys:[1,3,1,""]},"src.pyconf.ConfigOutputStream":{close:[1,3,1,""],flush:[1,3,1,""],write:[1,3,1,""]},"src.pyconf.ConfigReader":{getChar:[1,3,1,""],getToken:[1,3,1,""],load:[1,3,1,""],location:[1,3,1,""],match:[1,3,1,""],parseFactor:[1,3,1,""],parseKeyValuePair:[1,3,1,""],parseMapping:[1,3,1,""],parseMappingBody:[1,3,1,""],parseReference:[1,3,1,""],parseScalar:[1,3,1,""],parseSequence:[1,3,1,""],parseSuffix:[1,3,1,""],parseTerm:[1,3,1,""],parseValue:[1,3,1,""],setStream:[1,3,1,""]},"src.pyconf.Container":{evaluate:[1,3,1,""],setPath:[1,3,1,""],writeToStream:[1,3,1,""],writeValue:[1,3,1,""]},"src.pyconf.Expression":{evaluate:[1,3,1,""]},"src.pyconf.Mapping":{addMapping:[1,3,1,""],get:[1,3,1,""],iteritems:[1,3,1,""],iterkeys:[1,3,1,""],keys:[1,3,1,""],writeToStream:[1,3,1,""]},"src.pyconf.Reference":{addElement:[1,3,1,""],findConfig:[1,3,1,""],resolve:[1,3,1,""]},"src.pyconf.Sequence":{SeqIter:[1,2,1,""],append:[1,3,1,""],writeToStream:[1,3,1,""]},"src.pyconf.Sequence.SeqIter":{next:[1,3,1,""]},"src.returnCode":{ReturnCode:[1,2,1,""]},"src.returnCode.ReturnCode":{KFSYS:[1,4,1,""],KNOWNFAILURE_STATUS:[1,4,1,""],KOSYS:[1,4,1,""],KO_STATUS:[1,4,1,""],NASYS:[1,4,1,""],NA_STATUS:[1,4,1,""],NDSYS:[1,4,1,""],OKSYS:[1,4,1,""],OK_STATUS:[1,4,1,""],TIMEOUT_STATUS:[1,4,1,""],TOSYS:[1,4,1,""],UNKNOWN_STATUS:[1,4,1,""],getValue:[1,3,1,""],getWhy:[1,3,1,""],indent:[1,3,1,""],isOk:[1,3,1,""],setStatus:[1,3,1,""],setValue:[1,3,1,""],setWhy:[1,3,1,""],toSys:[1,3,1,""]},"src.salomeTools":{Sat:[1,2,1,""],assumeAsList:[1,1,1,""],find_command_list:[1,1,1,""],getCommandsList:[1,1,1,""],getVersion:[1,1,1,""],launchSat:[1,1,1,""],setLocale:[1,1,1,""],setNotLocale:[1,1,1,""]},"src.salomeTools.Sat":{assumeAsList:[1,3,1,""],execute_cli:[1,3,1,""],getColoredVersion:[1,3,1,""],getCommandAndAppli:[1,3,1,""],getCommandInstance:[1,3,1,""],getConfig:[1,3,1,""],getConfigManager:[1,3,1,""],getLogger:[1,3,1,""],getModule:[1,3,1,""],get_help:[1,3,1,""],parseArguments:[1,3,1,""],print_help:[1,3,1,""]},"src.system":{archive_extract:[1,1,1,""],cvs_extract:[1,1,1,""],git_extract:[1,1,1,""],show_in_editor:[1,1,1,""],svn_extract:[1,1,1,""]},"src.template":{MyTemplate:[1,2,1,""],substitute:[1,1,1,""]},"src.template.MyTemplate":{delimiter:[1,4,1,""],pattern:[1,4,1,""]},"src.test_module":{Test:[1,2,1,""],getTmpDirDEFAULT:[1,1,1,""]},"src.test_module.Test":{generate_launching_commands:[1,3,1,""],generate_script:[1,3,1,""],get_test_timeout:[1,3,1,""],get_tmp_dir:[1,3,1,""],prepare_testbase:[1,3,1,""],prepare_testbase_from_dir:[1,3,1,""],prepare_testbase_from_git:[1,3,1,""],prepare_testbase_from_svn:[1,3,1,""],read_results:[1,3,1,""],run_all_tests:[1,3,1,""],run_grid_tests:[1,3,1,""],run_script:[1,3,1,""],run_session_tests:[1,3,1,""],run_testbase_tests:[1,3,1,""],run_tests:[1,3,1,""],search_known_errors:[1,3,1,""],write_test_margin:[1,3,1,""]},"src.utilsSat":{Path:[1,2,1,""],black:[1,1,1,""],blue:[1,1,1,""],check_config_has_application:[1,1,1,""],check_config_has_profile:[1,1,1,""],config_has_application:[1,1,1,""],critical:[1,1,1,""],cyan:[1,1,1,""],date_to_datetime:[1,1,1,""],deepcopy_list:[1,1,1,""],ensure_path_exists:[1,1,1,""],error:[1,1,1,""],find_file_in_lpath:[1,1,1,""],formatTuples:[1,1,1,""],formatValue:[1,1,1,""],get_base_path:[1,1,1,""],get_cfg_param:[1,1,1,""],get_launcher_name:[1,1,1,""],get_log_path:[1,1,1,""],get_property_in_product_cfg:[1,1,1,""],get_salome_version:[1,1,1,""],get_tmp_filename:[1,1,1,""],green:[1,1,1,""],handleRemoveReadonly:[1,1,1,""],header:[1,1,1,""],info:[1,1,1,""],label:[1,1,1,""],list_log_file:[1,1,1,""],logger_info_tuples:[1,1,1,""],magenta:[1,1,1,""],merge_dicts:[1,1,1,""],normal:[1,1,1,""],only_numbers:[1,1,1,""],parse_date:[1,1,1,""],read_config_from_a_file:[1,1,1,""],red:[1,1,1,""],remove_item_from_list:[1,1,1,""],replace_in_file:[1,1,1,""],reset:[1,1,1,""],show_command_log:[1,1,1,""],success:[1,1,1,""],timedelta_total_seconds:[1,1,1,""],update_hat_xml:[1,1,1,""],warning:[1,1,1,""],white:[1,1,1,""],yellow:[1,1,1,""]},"src.utilsSat.Path":{base:[1,3,1,""],chmod:[1,3,1,""],copy:[1,3,1,""],copydir:[1,3,1,""],copyfile:[1,3,1,""],copylink:[1,3,1,""],dir:[1,3,1,""],exists:[1,3,1,""],isdir:[1,3,1,""],isfile:[1,3,1,""],islink:[1,3,1,""],list:[1,3,1,""],make:[1,3,1,""],readlink:[1,3,1,""],rm:[1,3,1,""],smartcopy:[1,3,1,""],symlink:[1,3,1,""]},"src.xmlManager":{ReadXmlFile:[1,2,1,""],XmlLogFile:[1,2,1,""],add_simple_node:[1,1,1,""],append_node_attrib:[1,1,1,""],find_node_by_attrib:[1,1,1,""],write_report:[1,1,1,""]},"src.xmlManager.ReadXmlFile":{getRootAttrib:[1,3,1,""],get_attrib:[1,3,1,""],get_node_text:[1,3,1,""]},"src.xmlManager.XmlLogFile":{add_simple_node:[1,3,1,""],append_node_attrib:[1,3,1,""],append_node_text:[1,3,1,""],write_tree:[1,3,1,""]},src:{ElementTree:[1,0,0,"-"],architecture:[1,0,0,"-"],catchAll:[1,0,0,"-"],colorama:[2,0,0,"-"],coloringSat:[1,0,0,"-"],compilation:[1,0,0,"-"],configManager:[1,0,0,"-"],debug:[1,0,0,"-"],environment:[1,0,0,"-"],environs:[1,0,0,"-"],example:[3,0,0,"-"],exceptionSat:[1,0,0,"-"],fileEnviron:[1,0,0,"-"],fork:[1,0,0,"-"],loggingSat:[1,0,0,"-"],options:[1,0,0,"-"],product:[1,0,0,"-"],pyconf:[1,0,0,"-"],returnCode:[1,0,0,"-"],salomeTools:[1,0,0,"-"],system:[1,0,0,"-"],template:[1,0,0,"-"],test_module:[1,0,0,"-"],utilsSat:[1,0,0,"-"],xmlManager:[1,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","method","Python method"],"4":["py","attribute","Python attribute"],"5":["py","exception","Python exception"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:method","4":"py:attribute","5":"py:exception"},terms:{"16be":1,"16le":1,"9abc":1,"boolean":[1,19],"case":1,"char":1,"class":[1,2,3,19],"default":[1,4,6,7,8,10,11,12,13,18],"else":1,"export":13,"final":[1,7,13],"float":1,"function":[1,2,19],"import":[1,8,19],"int":[1,11],"long":[1,5],"new":[1,13,19],"return":[1,8,19],"short":1,"true":[1,2],"try":1,"var":1,__init__:[1,3],__main__:1,__repr__:1,__save__:1,__setattr__:1,__str__:1,_appli:4,_basecmd:1,_blank:1,_build:8,_debug:1,_launch:8,_ld_library_path:8,_sre:[1,2],_type:1,_verbos:1,a_b_c_:1,abool:1,about:[1,14],absolut:12,access:[1,2,11],account:8,act:[1,2],action:1,activ:[1,13],actual:[1,2,16],add:[1,6,15],add_com:1,add_echo:1,add_lin:1,add_opt:[1,19],add_simple_nod:1,add_warn:1,addelement:1,addit:[1,6,14],additional_dir:1,additional_env:1,addmap:1,addnamespac:1,adequ:1,advanc:1,affect:2,afil:1,after:[6,16],again:1,agent:13,aim:1,algorithm:19,alia:1,all:[1,2,5,7,8,9,13,14,18,19],allow:[1,6,7,9,15,18],alphanumer:1,alreadi:[12,19],also:[1,8,13,14,19],alter:13,amount:1,ani:[1,2,7,11,13],anoth:[1,14],ansi:[0,1],ansi_csi_re:2,ansi_escape_cod:2,ansi_osc_re:2,ansiback:2,ansicod:2,ansicursor:2,ansifor:2,ansistyl:2,ansitowin32:[0,1],apart:2,api:1,append:[1,8,12],append_node_attrib:1,append_node_text:1,append_valu:1,appli:[1,7,9,13],applic:1,application:[1,4,7,10],application_nam:4,applilog:1,appropri:1,arch:12,architectur:0,archiv:[1,12,13],archive_extract:1,archive_info:13,arg:[1,2,19],arglist:1,argument:1,argv:1,ascii:1,asctim:3,ask:1,assign:1,assum:1,assumeaslist:1,astr:1,astream:1,atitl:1,attibut:1,attr:[1,2],attrib:1,attribut:[1,2],authent:13,author:1,automat:[1,7,8],autoreset:2,autotool:[1,6],avail:7,avalu:1,avari:1,avoid:13,award:1,back:2,backend:1,backtick:1,base:[1,2,3],basenam:1,bash:[1,8,13],bashfileenviron:1,basic:1,bat:[1,8],batch:1,batch_salom:1,batfileenviron:1,becaus:1,been:[1,2],befor:[1,6],begin:1,behavior:19,belong:1,below:8,between:1,bienvenu:1,big:6,bin:8,binari:12,black:[1,2],blogmatrix:1,blue:[1,2],bom:1,bonjour:19,bool:1,both:[1,8,9],bracket:1,branch:13,bright:2,bright_background:2,bring:[9,13],browser:[1,7,11,14],buf:1,build:[1,5,6,8,14],build_conf_opt:1,build_configur:1,build_sourc:6,builder:1,built:1,caa:1,call:[1,2,8,10,19],call_win32:2,callabl:1,can:[1,4,8,13,14,15,19],cannot:1,car:1,care:5,carri:1,catalog:[4,10],catchall:0,cfg:[1,8,19],cfg_env:1,cfgforpi:1,chang:[1,4,18,19],change_to_launch:1,charact:[1,2],charg:10,check:[1,6,8],check_config_exist:1,check_config_has_appl:1,check_config_has_profil:1,check_instal:1,check_path:1,check_src:1,checkout:[1,13],children:1,chmod:1,choic:7,choosen:1,circumst:1,clash:1,classic:1,clean:1,clean_al:[6,18],clean_build_aft:6,clean_instal:6,cleancolor:1,clear_lin:2,clear_screen:2,clearpag:[4,5,6,7,8,9,10,11,12,13,15,18,19],cli:[1,11,18],cli_:19,cli_argu:1,client:1,clone:13,close:1,closest:1,cmake:[1,6],cmake_opt:6,cmd:1,cmd_list:1,co7:12,code:[1,2,8],code_to_char:2,color:[1,2],colorama:[0,1],colorama_text:2,coloringsat:0,coloringstream:1,column:1,com:[1,3],come:7,command:[1,2],command_opt:18,command_valu:1,comment:[1,14],commentari:1,commit:5,common:1,commonli:1,compat:1,compil:0,compil_script:6,complementari:8,complet:[1,6,7,13,14],complete_environ:1,compon:[1,4,9],componon:9,compress:12,comput:[1,9,12],concaten:1,concern:13,config:1,config_has_appl:1,configerror:1,configformaterror:1,configinputstream:1,configlist:1,configmanag:0,configmerg:1,configopen:1,configoutputstream:1,configread:1,configresolutionerror:1,configur:1,configure_opt:1,configut:4,conflict:1,conform:9,consist:1,consol:1,construct:[1,15,17],contain:[1,14,19],content:0,context:[1,18],contextfileenviron:1,continu:1,control:12,conveni:1,convert:2,convert_ansi:2,convert_osc:2,copi:[1,4,7,10,18],copydir:1,copyfil:1,copylink:1,copyright:1,corba:9,correct:1,correl:1,correspond:[1,8,11,13],could:[1,5,8,16],cpp:[1,9],creat:[1,4,5,8,10,12,13,14,15],create_config_fil:1,creation:12,critic:[1,3,19],critical:3,current:[1,7,14,18,19],cursor_adjust:2,cvs:12,cvs_extract:1,cvs_info:13,cvspass:13,cwd:1,cyan:[1,2],dai:1,data:[1,7,19],datadir:1,date:[1,14],date_to_datetim:1,datefmt:[1,3],datetim:1,david:1,dbg:1,debug:0,debug_writ:1,decid:1,declar:13,deep:1,deepcopy_list:1,deepcopymap:1,def:[8,19],default_valu:1,defaultformatt:1,defaultmergeresolv:1,defaultstreamopen:1,defin:[1,5,6,7,8,9,14,19],definit:1,deinit:2,delai:1,delaiapp:1,deleg:2,delet:12,delimit:1,delta:1,depend:[1,6,12],deriv:1,describ:1,descript:1,design:1,destnam:1,detail:1,detar:16,detect:1,determin:1,dev:1,develop:[1,5,7,8,13],dict:1,dict_arg:1,dictionari:[1,14],differ:[3,8],dim:2,dir:[1,7,13],dir_info:13,direct:1,directli:[8,11,16],directori:[1,4,5,6,7,8,10,11,12,13,14,16,18,19],dirlogg:1,dirpath:1,displai:[1,6,7,11,19],distant:4,distinguish:8,distrib:1,distribut:[1,4,9],divis:1,dixt:1,do_batch_script_build:1,do_default_build:1,do_python_script_build:1,do_script_build:1,doc:[1,3],doctyp:1,document:[9,14],doe:[1,8,13],dog:1,dollar:1,don:9,done:[1,8,18],dosometh:1,dosomethingtoreturn:1,dot:1,dove:1,down:2,download:[1,13],dst:1,due:1,dump:1,dumper:1,dumpertyp:1,duplic:6,dure:13,dynam:[1,14],each:[1,4,10,13,14],earlier:1,earliest:1,echo:1,ecrir:[1,3],edit:[7,13],editor:[1,7,14],either:[1,8],eleg:1,elem:1,element:1,element_factori:1,elementari:1,elementtre:0,els:[1,19],embed:12,empti:1,enable_simple_env_script:1,enclos:1,encod:1,end:[1,2,8],english:1,ensure:1,ensure_path_exist:1,entir:1,entri:1,env:[1,8],env_build:8,env_info:1,env_launch:8,env_script:8,environ:0,equal:6,eras:11,erase_lin:2,erase_screen:2,error:[1,3,19],essai:3,essai_logging_1:[0,1],essai_logging_2:[0,1],etc:[1,14,15],etre:1,etree:1,eval:1,evalu:1,evaluat:1,event:1,everyth:6,exactli:1,exampl:[0,1],exc:1,except:[1,13,18],exception:1,exceptionsat:0,execut:[1,6,13,18],execute_cli:1,exept:1,exhaust:[14,18],exist:[1,12,13,18],exot:1,expect:1,explain:8,explan:1,explicitli:1,explor:1,explore:7,express:[1,7],expression:1,ext:1,extens:[1,19],extern:1,extra:1,extract:1,extract_param:2,fact:19,factor:1,factori:1,fail:[1,6],fals:[1,2],far:1,favorit:7,feed:1,field:1,file:[1,4,6,7,8,10,11,12,13,14,15,19],file_nam:1,file_path:1,fileenviron:0,fileenvwrit:1,filein:1,filenam:1,filepath:1,filter:5,fin:1,find:[1,7,15,16],find_command_list:1,find_file_in_lpath:1,find_node_by_attrib:1,findal:1,findconfig:1,findtext:1,finish:1,firefox:[11,14],first:[1,8,13,19],fix:1,flag:6,flush:1,fmt:[1,3],follow:[1,8,19],for_packag:1,forbuild:1,forc:[1,12,13],force_patch:13,fore:2,fork:0,form:1,format:[1,3,8,14],formatt:[1,3],formattupl:1,formatvalu:1,forward:[2,4,10],found:1,four:8,french:19,from:[1,2,7,8,9,12,13,19],from_what:1,fromstr:1,full:1,fun:7,func:1,futur:1,gdb:8,gencat:[4,10],gener:[1,2,4,8],generate_launching_command:1,generate_script:1,generic_opt:18,geom:6,get:[1,7,13,14],get_attr:2,get_attrib:1,get_base_install_dir:1,get_base_path:1,get_cfg_param:1,get_command_line_overrid:1,get_config:1,get_config_children:1,get_distrib_vers:1,get_distribut:1,get_file_environ:1,get_help:1,get_install_dir:1,get_launcher_nam:1,get_log_path:1,get_method:13,get_nam:1,get_nb_proc:1,get_node_text:1,get_path:1,get_posit:2,get_product_compon:1,get_product_config:1,get_product_depend:1,get_product_sect:1,get_products_info:1,get_products_list:1,get_property_in_product_cfg:1,get_python_vers:1,get_salome_vers:1,get_test_timeout:1,get_tmp_dir:1,get_tmp_filenam:1,get_us:1,get_user_config_fil:1,get_win32_cal:2,getbypath:1,getchar:1,getcoloredvers:1,getcommandandappli:1,getcommandinst:1,getcommandslist:1,getconfig:[1,19],getconfigcolor:1,getconfigmanag:1,getdefaultlogg:1,getdetailopt:1,getiter:1,getlocalenv:1,getlog:1,getlogg:1,getlogsandclear:1,getmodul:1,getmylogg:3,getroot:1,getrootattrib:1,getstrconfigdbg:1,getstrconfigstd:1,gettmpdir:1,gettmpdirdefault:1,gettoken:1,getunittestlogg:1,getvalu:1,getvers:1,getwhi:1,git:[1,12],git_extract:1,git_info:13,gitconfig:13,give:[1,4,14,19],given:[1,2,4,8,10],global:1,goe:1,green:[1,2],grep:[1,7],grey:2,grid:1,gui:1,hack_libtool:1,had:1,handl:[1,2,8],handlemismatch:1,handler:[1,3],handleremovereadonli:1,harri:1,has_salome_hui:1,has_timed_out:1,hat:1,have:[1,4,5,9,10,13],header:1,help:1,helpstr:1,here:[1,8,14,19],hierarchi:1,himself:8,hold:10,home:7,hour:1,how:[1,8,13,14],html:[1,3],http:[1,2,3],human:1,hxx2salom:9,i18n:1,ident:1,identifi:1,ignor:[1,9],ignorelist:1,imag:13,implement:[1,2,8],includ:[1,8,12,14],include:12,indent:1,indentunittest:1,index:1,indic:1,indirect:1,info:[1,3,7,13,19],inform:[1,7,12,13,14],inherit:1,init:[1,2,3],initi:1,initialis:[0,1],initloggerasdefault:1,initloggerasunittest:1,initmylogg:3,inmap:1,input:1,input_list:1,insid:13,instal:[1,5,6,14,16,18],install:[5,18],install_dir:8,installat:15,instanc:[1,2,19],instanti:1,instantiat:1,instead:1,instream:1,instruct:[1,14],intal:12,interact:11,interfac:[1,18],intern:1,internation:1,invalid:1,ioerror:1,iostream:1,is_a_tti:2,is_defin:1,is_salome_modul:[5,8],is_stream_clos:2,is_window:1,isdir:1,isel:1,isfil:1,islink:1,isok:1,issu:2,isword:1,item:1,iter:1,iteritem:1,iterkei:1,iterpars:1,ivar:1,jane:1,job:6,join:8,json:1,jsondump:1,just:6,keep:1,kei:[1,8,13],kernel:[7,18],kfsys:1,killsalom:1,know:[1,13],known:[1,12],knownfailure_status:1,ko_status:1,kosys:1,kwarg:2,kwd:2,label:[1,7],lang:1,lapack:8,lapack_root_dir:8,last:[1,8,11],last_termin:11,later:12,latter:1,launch:[1,8],launch_command:1,launched_cmd:1,launcher:[1,4,8],launcher_nam:10,launcherfileenviron:1,launchsat:1,layer:9,ld_library_path:8,left:8,less:1,level:[1,3,18],levelnam:[1,3],lib:[3,8],librari:[1,3],light:2,lightblack_ex:2,lightblue_ex:2,lightcyan_ex:2,lightgreen_ex:2,lightmagenta_ex:2,lightred_ex:2,lightwhite_ex:2,lightyellow_ex:2,like:[1,2,4,6,7,10,14],line:[1,7,18],link:[1,13],list:[1,4,5,7,10,14],list_log_fil:1,list_of_product:9,listtest:1,llvm:[4,10],load:[1,14],load_cfg_environ:1,load_environ:1,local:[1,7],locat:1,log:[1,3,6],log_command:1,log_dir:11,logdir:1,logfilepath:1,logger:[1,3],logger_info_tupl:1,loggingsat:0,login:13,logo:[1,10],logs:1,lome:15,longnam:1,lost:1,lpath:1,lproduct:1,machin:[1,4,9,10,12],machine1:4,machine2:4,machine3:4,magenta:[1,2],mai:13,main:[1,6],make:[1,6],make_flag:6,make_opt:1,makepath:1,manag:[1,7,13],manipul:[1,7],map1:1,map2:1,map:1,match:1,max:1,mechan:[1,8],med:6,memori:[1,4,10],menu:11,merg:1,merge:1,merge_dict:1,mergemap:1,mergesequ:1,mesa:[4,10],messag:[1,3,19],method:[1,2,6,8,13,19],milou:1,minim:1,minut:1,mismatch:1,miss:[4,6],mistak:13,mode:[1,2,5,7,8,11],model:19,modifi:[1,8,13],modul:0,moment:1,mon:1,mond:19,more:[1,18],most:[1,8],msg:1,multi:1,multilin:1,multipl:1,must:19,mutipl:1,my_application_directori:4,my_application_nam:4,my_tag:13,mycommand:19,myformatt:3,mylogg:3,myoption:19,myspecificnam:12,mytempl:1,na_status:1,name:[1,4,5,7,8,10,12,13,14,18,19],name_nod:1,namespac:1,nasys:1,nativ:[1,8],nb_line:1,nb_proc:[1,6],ndsys:1,necessari:1,need:[1,2,4,9,13],new_nam:7,next:1,nfirst:1,no_label:7,node:1,node_nam:1,non:2,none:[1,2,3],nor:2,normal:[1,2],note:[1,4,8,10,14],noth:[1,12],notimplementederror:1,notion:1,notshowncommand:1,number:[1,4,6,10,11],number_of_proc:1,obj1:1,obj2:1,obj:1,object:[1,2,14],obsolete:19,obtain:1,obvious:1,occur:1,ok_status:1,oksys:1,old:1,older:11,on_stderr:2,onc:13,one:1,onli:[1,4,5,6,7,8,9,10,11,13,18],only_numb:1,ool:15,open:1,openggl:[4,10],openmpi:1,oper:[1,7,15],operand:1,opt_nb_proc:1,option:0,optionali:1,optionn:1,optionnali:1,optiontyp:1,optresult:1,order:[1,13,14,19],org:[1,2,3],other:[1,3,8,12,14],otherwis:[1,13],our:2,out:1,out_dir:1,output:[1,2],outstream:1,overrid:[1,4],overwrit:1,overwritekei:1,overwritemergeresolv:1,overwritten:1,own:1,packag:0,page:8,pair:1,param:[1,2],param_nam:1,paramet:[1,7,14,19],parameter_path:7,paramstr:2,paravi:[4,10],parent:1,pars:[1,19],parse_arg:[1,19],parse_d:1,parseargu:1,parsefactor:1,parsekeyvaluepair:1,parsemap:1,parsemappingbodi:1,parser:[1,19],parserefer:1,parsescalar:1,parsesequ:1,parsesuffix:1,parseterm:1,parsevalu:1,part:[1,4,8,10],particular:1,pass:[1,14,19],passphras:13,password:13,pat:1,patch:[1,7,13],path:1,path_to_catalog:4,path_to_yacsgen:9,pathlist:1,paths:7,pattern:1,pdf:[7,15],pend:5,pendant:1,perform:[1,13,15],person:7,phase:1,platform:[2,8],pleas:[8,9],plugin:[1,6],pluma:14,plusieur:3,point:[1,19],pop_debug:1,popen:1,popul:1,pos:2,posit:2,possibl:[1,8,13,19],post:1,potenti:1,pprty:1,preced:1,predefin:1,prefer:[7,14],prefix:[1,8,14],prepar:1,prepare_testbas:1,prepare_testbase_from_dir:1,prepare_testbase_from_git:1,prepare_testbase_from_svn:1,prepend:[1,8],prepend_valu:1,prereq_dir:8,prerequisit:[8,12,14,15,18],presenc:1,present:1,pretti:1,previou:1,previous:5,print:[1,2,7,11],print_debug:1,print_grep_environ:1,print_help:1,print_split_environ:1,print_split_pattern_environ:1,print_valu:1,problem:[1,4,10],procedur:1,process:[1,13],processinginstruct:1,processor:[1,4,10],prod_dir:1,prod_info:1,produc:1,product1:[6,8,13],product2:[6,8,13],product:0,product_cfg:1,product_compil:1,product_has_env_script:1,product_has_logo:1,product_has_patch:1,product_has_salome_gui:1,product_has_script:1,product_info:1,product_inform:1,product_is_autotool:1,product_is_cmak:1,product_is_cpp:1,product_is_debug:1,product_is_dev:1,product_is_fix:1,product_is_gener:1,product_is_mpi:1,product_is_n:1,product_is_salom:1,product_is_salome:1,product_is_sampl:1,product_is_smesh_plugin:1,product_is_vc:1,product_nam:1,profil:[1,10],program:1,programmat:8,progress:1,project:[1,7,8],project_path:1,projects:1,properti:[1,5,8,9],protocol:[1,4],provid:[1,8,19],proxi:2,pubid:1,push:13,push_debug:1,put:1,put_txt_log_in_appli_log_dir:1,pv_plugin_path:1,pwd:1,pyc:3,pyconf:0,python2:3,python:[1,3,8,10,14,15,16,19],python_config:1,pythonpath:8,pythonpath_:8,qname:1,queri:[4,10],question:1,rais:[1,18],raw:1,rc1:1,rc2:1,rcfinal:1,rco:1,read:1,read_config_from_a_fil:1,read_result:1,readabl:1,reader:1,readi:13,readlin:1,readlink:1,readxmlfil:1,record:[1,3],recurs:[1,7],red:[1,2],redefin:1,redirect:1,ref:1,refer:[1,9,14],reflect:1,regard:1,regular:1,reinit:[1,2],rel:[1,12],remain:[11,16],remark:4,remor:9,remot:[1,12],remov:[1,5,6,13],remove_item_from_list:1,removenamespac:1,renam:1,renint:1,replac:[1,4],replace_in_fil:1,report:1,repositori:[1,13],repr:1,repres:1,represent:1,request:2,requir:[1,2,8,9],reserv:1,reset:[1,2],reset_al:2,reset_all:2,resolut:1,resolv:1,resourc:[4,10],respect:8,restor:[1,5],result:1,retriev:1,returncod:0,right:[1,8],root:[1,19],root_nod:1,rootnam:1,rtype:1,run:[1,8,14,15,19],run_all_test:1,run_env_script:1,run_grid_test:1,run_script:1,run_session_test:1,run_simple_env_script:1,run_test:1,run_testbase_test:1,runappli:4,runner:[1,19],ruud:1,sajip:1,salom:[1,4,8,10],salome:[1,4,5,6,7,8,9,10,12,14,15,16],salome_modules:1,salome_session_serv:1,salome_xx:[5,12,16,18],salome_xx_:12,salomecontext:1,salomeenviron:1,salometool:0,same:1,sametmax:[1,3],sampl:1,samples:18,sat:[1,4,5,6,7,8,9,10,11,12,13,14,15,16],save:8,saveconfigdbg:1,saveconfigstd:1,scalar:1,scratch:1,screenenviron:1,script:[1,6,7,8,10,14,15,16],script_nam:1,script_path:1,search:1,search_known_error:1,second:[1,8],section:[1,4,8,13],secur:13,see:[1,2,14,18],seen:1,select:[1,12],self:1,semant:1,sep:[1,8],separ:1,seq1:1,seq2:1,seq:1,seqiter:1,sequenc:[1,2],server:[1,13],servic:19,session:1,set:[1,4,5,8,10,14,15,19],set_a_product:1,set_application_env:1,set_attr:2,set_consol:2,set_cpp_env:1,set_cursor_posit:2,set_env:[1,8],set_env_build:8,set_env_launch:8,set_full_environ:1,set_native_env:[1,8],set_product:1,set_python_libdir:1,set_salome_generic_product_env:1,set_salome_minimal_product_env:1,set_titl:2,set_user_config_fil:1,setcolorlevelnam:1,setconsoletextattribut:2,setlocal:1,setnotlocal:1,setpath:1,setstatu:1,setstream:1,setvalu:1,setwhi:1,sever:[8,14],shallow:1,shell:[1,8],shortcut:1,shortnam:1,should:[1,8,9],should_wrap:2,show:[1,6,11],show_command_log:1,show_desktop:1,show_full_path:1,show_in_editor:1,show_label:1,show_patch:[1,7],show_product_info:1,show_progress:1,show_warn:1,showinfo:1,shown:[1,6],sign:1,silent:1,similar:1,simpl:[1,18,19],sinc:1,size:1,small:1,smart:1,smartcopi:1,smesh:1,softwar:13,some:1,someon:8,sometim:5,sommeil:1,soon:6,sourc:[1,2,3,5,7,12,13],sources:[5,13,18],sources_without_dev:5,space:1,special_path_separ:1,specif:[1,4,5,8,9,10,12,14,18],specifi:[1,4,8,9,10,13],splashscreen:10,split:1,src_root:1,sre_pattern:[1,2],srsc:1,ssh:[4,10,13],stack:18,stackoverflow:1,start:[1,2,4,6,10],statu:1,stderr:1,stdout:[1,2],step:1,stop:6,stop_first_fail:6,store:[1,6,7,11,13,14],str:1,str_num:1,stream:[1,2],streamopen:1,streamorfil:1,streamwrapp:2,strftime:[1,3],strin:1,string:1,stringio:1,strip:2,strorlist:1,strout:1,structur:14,stuff:[1,10],style:[1,2],stylesheet:1,sub:[1,14],subclass:1,subelement:1,submodul:0,subpackag:0,subprocess:1,subsect:8,subset:12,subst_dic:1,substitut:1,substr:1,subtract:1,success:[1,6],successfulli:1,suffici:8,suffix:1,suit:15,suitabl:1,support:1,suppos:1,supposedli:1,suppress:5,sur:3,svn:[1,12],svn_extract:1,svn_info:13,symlink:1,syntax:[1,5],syss:1,system:0,tab:1,tabl:1,tabul:1,tag:[1,13],take:[1,5],taken:[1,8],tar:[12,16],target:[1,4,8],tcllibpath:1,templat:0,template_fil:1,term:1,termin:[1,2,6,11,19],test:[1,3,6,15],test_base_nam:1,test_config:1,test_grid:1,test_modul:0,test_nam:1,test_sess:1,testbas:1,testbase_bas:1,testbase_dir:1,testbase_nam:1,testbase_tag:1,testlogger1:3,testlogger_1:1,text:[1,2,18],text_or_uri:1,tgz:[12,16],thank:1,thei:[5,7,8,13],them:[2,13],thi:[1,2,4,6,7,8,9,10,12,13,14,15,19],thing:19,those:9,through:[1,4,8,10,11],thrown:1,time:[1,3,5,8,13,14],timedelta:1,timedelta_total_second:1,timeout:1,timeout_status:1,tintin:1,tip:1,titl:[1,2],tklibpath:1,tmp:1,tmp_working_dir:1,tocolor:1,tocolor_ansitowin32:1,todo:1,tofix:1,token:1,token_typ:1,token_valu:1,too:1,top:1,tosi:1,tostr:1,tosys:1,total_second:1,tout:19,trace:[1,18],transform:1,transpar:2,tree:1,treebuild:1,trust_root_dir:8,tty:2,tupl:1,turn:1,tutori:1,two:[1,8],txt:1,type:[1,13],typeerror:1,unabl:1,unchang:1,unconditionali:[1,18],under:[1,15],underscor:[1,8],unicod:1,unit:6,unittest:1,unittestformatt:1,unitteststream:1,unix:1,unknown_status:1,unless:[2,13],update:1,update_hat_xml:1,updatehatxml:1,urllib2:1,urlopen:1,usag:[1,18],use:[4,5,6,7,8,9,10,13],use_mesa:[4,10],used:1,useful:[1,18],user:[1,7,8,11,12],usernam:1,users:7,using:19,usr:[1,3,8],usual:[1,5,9,12,14,18],usualli:[12,16],utf:[1,8],util:[1,12,15],utilis:3,utiliti:1,utilssat:0,uts:1,valid:1,valu:[1,2,4,5,7,13,14],variabl:[1,8,9,19],vars:8,vcs:[5,12],verbos:1,verifi:[1,13],version:[1,8,9,12,14,15],via:1,viewer:7,vinai:1,virtual:[1,4],virtual_app:4,visualis:8,wai:[1,6,19],want:[1,5,8],warn:[1,3,6,19],warning:[1,3],web:[7,11,14],welcom:1,welkom:1,well:1,were:1,what:[1,5],when:[1,4,8,13,14,19],whenev:1,where:[1,4,6,7,12],which:[1,2,8,9,14,19],white:[1,2],who:9,why:1,wiki:2,wikipedia:2,wil:8,win32:[0,1],winapi_test:2,wincolor:2,window:[1,2,8],winstyl:2,winterm:[0,1],with_children:6,with_commerci:1,with_fath:6,with_install_dir:1,with_vc:12,within:8,without:[1,7,13],without_properti:12,wmake:1,word:1,work:[1,7,12,13,14],workdir:[1,4,7,10,12,14,18,19],world:19,would:1,wrap:[1,2],wrap_stream:2,writabl:1,write:[1,2,19],write_and_convert:2,write_back:1,write_cfgforpy_fil:1,write_env_fil:1,write_plain_text:2,write_report:1,write_test_margin:1,write_tre:1,writetostream:1,writevalu:1,written:19,www:1,xa4:1,xc2:1,xml:[1,19],xmllogfil:1,xmlmanag:0,xmlmgr:1,xmlroot:1,xmltreebuild:1,xxx:[1,5,14],xxx_root_dir:1,xxx_src_dir:1,yacsgen:[1,9],yacsgen_root_dir:9,year:1,yellow:[1,2],yet:[1,18],yield:1,you:[1,4,5,8,10,13,15,19],your:[1,8,13,18,19],yourspecificnam:12,yve:1,yyy:14,yyyy:1,yyyymmdd_hhmmss:1,yyyymmdd_hhmmss_namecmd:1,zelaunch:10,zero:1,zerodivideerror:1},titles:["src","src package","src.colorama package","src.example package","Command application","Command clean","Command compile","Command config","Command environ","Command generate","Command launcher","Command log","Command package","Command prepare","Configuration","Salome Tools","Installation","Release notes","Usage of SAlomeTools","Add a user custom command"],titleterms:{access:19,add:19,ansi:2,ansitowin32:2,applic:4,application:14,architectur:1,avail:18,availabl:5,base:13,basic:19,build:18,catchall:1,clean:5,code:15,colorama:2,coloringsat:1,command:[4,5,6,7,8,9,10,11,12,13,15,19],compil:[1,6,18],config:[7,19],configmanag:1,configur:[4,5,6,7,8,10,11,12,13,14],content:[1,2,3],custom:19,debug:[1,18],descript:[4,5,6,7,8,9,10,11,12,13,14],dev:13,develop:15,document:15,elementtre:1,environ:[1,8],essai_logging_1:3,essai_logging_2:3,exampl:[3,19],exceptionsat:1,fileenviron:1,fork:1,gener:9,get:18,git:13,hello:19,help:18,howto:19,initialis:2,installat:16,introduct:19,launcher:10,list:[15,18],log:11,logger:19,loggingsat:1,mode:13,modul:[1,2,3],note:[15,17],option:[1,5,18],other:19,packag:[1,2,3,12],path:[4,5,6,7,11,12,13],prepar:[13,18],product:[1,18],products:14,pyconf:1,quick:15,releas:[15,17],remark:[9,13],requir:19,returncod:1,salom:15,salome:18,salometool:[1,18,19],sat:18,section:14,some:[4,5,6,7,11,12,13],sourc:18,src:[0,1,2,3],start:15,submodul:[1,2,3],subpackag:1,svn:13,syntax:14,system:1,templat:1,test_modul:1,tool:15,usage:[4,5,6,7,8,9,10,11,12,13,18],user:[14,19],utilssat:1,vars:14,vcs:13,verbos:18,win32:2,winterm:2,xmlmanag:1}})
\ No newline at end of file
+Search.setIndex({envversion:49,filenames:["apidoc_commands/commands","apidoc_commands/modules","apidoc_src/modules","apidoc_src/src","apidoc_src/src.colorama","apidoc_src/src.example","commands/application","commands/clean","commands/compile","commands/config","commands/environ","commands/generate","commands/launcher","commands/log","commands/package","commands/prepare","configuration","index","installation_of_sat","release_notes/release_notes_5.0.0","usage_of_sat","write_command"],objects:{"":{commands:[0,0,0,"-"],src:[3,0,0,"-"]},"commands.application":{Command:[0,1,1,""],add_module_to_appli:[0,4,1,""],create_application:[0,4,1,""],create_config_file:[0,4,1,""],customize_app:[0,4,1,""],generate_application:[0,4,1,""],generate_catalog:[0,4,1,""],generate_launch_file:[0,4,1,""],get_SALOME_modules:[0,4,1,""],get_step:[0,4,1,""],make_alias:[0,4,1,""]},"commands.application.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.check":{Command:[0,1,1,""],check_all_products:[0,4,1,""],check_product:[0,4,1,""],get_products_list:[0,4,1,""],log_res_step:[0,4,1,""],log_step:[0,4,1,""]},"commands.check.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.clean":{Command:[0,1,1,""],get_build_directories:[0,4,1,""],get_install_directories:[0,4,1,""],get_source_directories:[0,4,1,""],product_has_dir:[0,4,1,""],suppress_directories:[0,4,1,""]},"commands.clean.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.compile":{Command:[0,1,1,""],add_compile_config_file:[0,4,1,""],check_dependencies:[0,4,1,""],compile_all_products:[0,4,1,""],compile_product:[0,4,1,""],compile_product_cmake_autotools:[0,4,1,""],compile_product_script:[0,4,1,""],extend_with_children:[0,4,1,""],extend_with_fathers:[0,4,1,""],get_children:[0,4,1,""],get_products_list:[0,4,1,""],get_recursive_children:[0,4,1,""],get_recursive_fathers:[0,4,1,""],log_res_step:[0,4,1,""],log_step:[0,4,1,""],sort_products:[0,4,1,""]},"commands.compile.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.config":{Command:[0,1,1,""]},"commands.config.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.configure":{Command:[0,1,1,""],configure_all_products:[0,4,1,""],configure_product:[0,4,1,""],get_products_list:[0,4,1,""],log_res_step:[0,4,1,""],log_step:[0,4,1,""]},"commands.configure.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.environ":{Command:[0,1,1,""],write_all_source_files:[0,4,1,""]},"commands.environ.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.find_duplicates":{Command:[0,1,1,""],Progress_bar:[0,1,1,""],format_list_of_str:[0,4,1,""],list_directory:[0,4,1,""]},"commands.find_duplicates.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.find_duplicates.Progress_bar":{display_value_progression:[0,2,1,""]},"commands.generate":{Command:[0,1,1,""],build_context:[0,4,1,""],check_module_generator:[0,4,1,""],check_yacsgen:[0,4,1,""],generate_component:[0,4,1,""],generate_component_list:[0,4,1,""]},"commands.generate.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.init":{Command:[0,1,1,""],check_path:[0,4,1,""],display_local_values:[0,4,1,""],set_local_value:[0,4,1,""]},"commands.init.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.job":{Command:[0,1,1,""]},"commands.job.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.jobs":{Command:[0,1,1,""],Gui:[0,1,1,""],Job:[0,1,1,""],Jobs:[0,1,1,""],Machine:[0,1,1,""],develop_factorized_jobs:[0,4,1,""],getParamiko:[0,4,1,""],get_config_file_path:[0,4,1,""]},"commands.jobs.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.jobs.Gui":{add_xml_board:[0,2,1,""],find_history:[0,2,1,""],find_test_log:[0,2,1,""],initialize_boards:[0,2,1,""],last_update:[0,2,1,""],parse_csv_boards:[0,2,1,""],put_jobs_not_today:[0,2,1,""],update_xml_file:[0,2,1,""],update_xml_files:[0,2,1,""],write_xml_file:[0,2,1,""],write_xml_files:[0,2,1,""]},"commands.jobs.Job":{cancel:[0,2,1,""],check_time:[0,2,1,""],get_log_files:[0,2,1,""],get_pids:[0,2,1,""],get_status:[0,2,1,""],has_begun:[0,2,1,""],has_failed:[0,2,1,""],has_finished:[0,2,1,""],is_running:[0,2,1,""],is_timeout:[0,2,1,""],kill_remote_process:[0,2,1,""],run:[0,2,1,""],time_elapsed:[0,2,1,""],total_duration:[0,2,1,""],write_results:[0,2,1,""]},"commands.jobs.Jobs":{cancel_dependencies_of_failing_jobs:[0,2,1,""],define_job:[0,2,1,""],determine_jobs_and_machines:[0,2,1,""],display_status:[0,2,1,""],find_job_that_has_name:[0,2,1,""],is_occupied:[0,2,1,""],run_jobs:[0,2,1,""],ssh_connection_all_machines:[0,2,1,""],str_of_length:[0,2,1,""],update_jobs_states_list:[0,2,1,""],write_all_results:[0,2,1,""]},"commands.jobs.Machine":{close:[0,2,1,""],connect:[0,2,1,""],copy_sat:[0,2,1,""],exec_command:[0,2,1,""],mkdir:[0,2,1,""],put_dir:[0,2,1,""],successfully_connected:[0,2,1,""],write_info:[0,2,1,""]},"commands.launcher":{Command:[0,1,1,""],copy_catalog:[0,4,1,""],generate_catalog:[0,4,1,""],generate_launch_file:[0,4,1,""]},"commands.launcher.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.log":{Command:[0,1,1,""],ask_value:[0,4,1,""],getMaxFormat:[0,4,1,""],get_last_log_file:[0,4,1,""],print_log_command_in_terminal:[0,4,1,""],remove_log_file:[0,4,1,""],show_last_logs:[0,4,1,""],show_product_last_logs:[0,4,1,""]},"commands.log.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.make":{Command:[0,1,1,""],get_nb_proc:[0,4,1,""],get_products_list:[0,4,1,""],log_res_step:[0,4,1,""],log_step:[0,4,1,""],make_all_products:[0,4,1,""],make_product:[0,4,1,""]},"commands.make.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.makeinstall":{Command:[0,1,1,""],get_products_list:[0,4,1,""],log_res_step:[0,4,1,""],log_step:[0,4,1,""],makeinstall_all_products:[0,4,1,""],makeinstall_product:[0,4,1,""]},"commands.makeinstall.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.package":{Command:[0,1,1,""],add_files:[0,4,1,""],add_readme:[0,4,1,""],add_salomeTools:[0,4,1,""],binary_package:[0,4,1,""],create_project_for_src_package:[0,4,1,""],exclude_VCS_and_extensions:[0,4,1,""],find_application_pyconf:[0,4,1,""],find_product_scripts_and_pyconf:[0,4,1,""],get_archives:[0,4,1,""],get_archives_vcs:[0,4,1,""],hack_for_distene_licence:[0,4,1,""],make_archive:[0,4,1,""],produce_install_bin_file:[0,4,1,""],produce_relative_env_files:[0,4,1,""],produce_relative_launcher:[0,4,1,""],product_appli_creation_script:[0,4,1,""],project_package:[0,4,1,""],source_package:[0,4,1,""],update_config:[0,4,1,""]},"commands.package.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.patch":{Command:[0,1,1,""],apply_patch:[0,4,1,""]},"commands.patch.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.prepare":{Command:[0,1,1,""],find_products_already_getted:[0,4,1,""],find_products_with_patchs:[0,4,1,""],remove_products:[0,4,1,""]},"commands.prepare.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.profile":{Command:[0,1,1,""],generate_profile_sources:[0,4,1,""],get_profile_name:[0,4,1,""],profileConfigReader:[0,1,1,""],profileReference:[0,1,1,""],update_pyconf:[0,4,1,""]},"commands.profile.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.profile.profileConfigReader":{parseMapping:[0,2,1,""]},"commands.run":{Command:[0,1,1,""]},"commands.run.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.script":{Command:[0,1,1,""],get_products_list:[0,4,1,""],log_res_step:[0,4,1,""],log_step:[0,4,1,""],run_script_all_products:[0,4,1,""],run_script_of_product:[0,4,1,""]},"commands.script.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.shell":{Command:[0,1,1,""]},"commands.shell.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.source":{Command:[0,1,1,""],check_sources:[0,4,1,""],get_all_product_sources:[0,4,1,""],get_product_sources:[0,4,1,""],get_source_for_dev:[0,4,1,""],get_source_from_archive:[0,4,1,""],get_source_from_cvs:[0,4,1,""],get_source_from_dir:[0,4,1,""],get_source_from_git:[0,4,1,""],get_source_from_svn:[0,4,1,""]},"commands.source.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.template":{Command:[0,1,1,""],TParam:[0,1,1,""],TemplateSettings:[0,1,1,""],get_dico_param:[0,4,1,""],get_template_info:[0,4,1,""],prepare_from_template:[0,4,1,""],search_template:[0,4,1,""]},"commands.template.Command":{getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"commands.template.TParam":{check_value:[0,2,1,""]},"commands.template.TemplateSettings":{check_file_for_substitution:[0,2,1,""],check_user_values:[0,2,1,""],get_parameters:[0,2,1,""],get_pyconf_parameters:[0,2,1,""],has_pyconf:[0,2,1,""]},"commands.test":{Command:[0,1,1,""],ask_a_path:[0,4,1,""],check_remote_machine:[0,4,1,""],create_test_report:[0,4,1,""],generate_history_xml_path:[0,4,1,""],move_test_results:[0,4,1,""],save_file:[0,4,1,""]},"commands.test.Command":{check_option:[0,2,1,""],getParser:[0,2,1,""],name:[0,3,1,""],run:[0,2,1,""]},"src.ElementTree":{Comment:[3,4,1,""],Element:[3,4,1,""],ElementTree:[3,1,1,""],PI:[3,4,1,""],ProcessingInstruction:[3,4,1,""],QName:[3,1,1,""],SubElement:[3,4,1,""],TreeBuilder:[3,1,1,""],XML:[3,4,1,""],XMLTreeBuilder:[3,1,1,""],dump:[3,4,1,""],fromstring:[3,4,1,""],iselement:[3,4,1,""],iterparse:[3,1,1,""],parse:[3,4,1,""],tostring:[3,4,1,""]},"src.ElementTree.ElementTree":{find:[3,2,1,""],findall:[3,2,1,""],findtext:[3,2,1,""],getiterator:[3,2,1,""],getroot:[3,2,1,""],parse:[3,2,1,""],write:[3,2,1,""]},"src.ElementTree.TreeBuilder":{close:[3,2,1,""],data:[3,2,1,""],end:[3,2,1,""],start:[3,2,1,""]},"src.ElementTree.XMLTreeBuilder":{close:[3,2,1,""],doctype:[3,2,1,""],feed:[3,2,1,""]},"src.ElementTree.iterparse":{next:[3,2,1,""]},"src.architecture":{get_distrib_version:[3,4,1,""],get_distribution:[3,4,1,""],get_nb_proc:[3,4,1,""],get_python_version:[3,4,1,""],get_user:[3,4,1,""],is_windows:[3,4,1,""]},"src.catchAll":{CatchAll:[3,1,1,""],dumper:[3,4,1,""],dumperType:[3,4,1,""],jsonDumps:[3,4,1,""]},"src.catchAll.CatchAll":{jsonDumps:[3,2,1,""]},"src.colorama":{ansi:[4,0,0,"-"],ansitowin32:[4,0,0,"-"],initialise:[4,0,0,"-"],win32:[4,0,0,"-"],winterm:[4,0,0,"-"]},"src.colorama.ansi":{AnsiBack:[4,1,1,""],AnsiCodes:[4,1,1,""],AnsiCursor:[4,1,1,""],AnsiFore:[4,1,1,""],AnsiStyle:[4,1,1,""],clear_line:[4,4,1,""],clear_screen:[4,4,1,""],code_to_chars:[4,4,1,""],set_title:[4,4,1,""]},"src.colorama.ansi.AnsiBack":{BLACK:[4,3,1,""],BLUE:[4,3,1,""],CYAN:[4,3,1,""],GREEN:[4,3,1,""],LIGHTBLACK_EX:[4,3,1,""],LIGHTBLUE_EX:[4,3,1,""],LIGHTCYAN_EX:[4,3,1,""],LIGHTGREEN_EX:[4,3,1,""],LIGHTMAGENTA_EX:[4,3,1,""],LIGHTRED_EX:[4,3,1,""],LIGHTWHITE_EX:[4,3,1,""],LIGHTYELLOW_EX:[4,3,1,""],MAGENTA:[4,3,1,""],RED:[4,3,1,""],RESET:[4,3,1,""],WHITE:[4,3,1,""],YELLOW:[4,3,1,""]},"src.colorama.ansi.AnsiCursor":{BACK:[4,2,1,""],DOWN:[4,2,1,""],FORWARD:[4,2,1,""],POS:[4,2,1,""],UP:[4,2,1,""]},"src.colorama.ansi.AnsiFore":{BLACK:[4,3,1,""],BLUE:[4,3,1,""],CYAN:[4,3,1,""],GREEN:[4,3,1,""],LIGHTBLACK_EX:[4,3,1,""],LIGHTBLUE_EX:[4,3,1,""],LIGHTCYAN_EX:[4,3,1,""],LIGHTGREEN_EX:[4,3,1,""],LIGHTMAGENTA_EX:[4,3,1,""],LIGHTRED_EX:[4,3,1,""],LIGHTWHITE_EX:[4,3,1,""],LIGHTYELLOW_EX:[4,3,1,""],MAGENTA:[4,3,1,""],RED:[4,3,1,""],RESET:[4,3,1,""],WHITE:[4,3,1,""],YELLOW:[4,3,1,""]},"src.colorama.ansi.AnsiStyle":{BRIGHT:[4,3,1,""],DIM:[4,3,1,""],NORMAL:[4,3,1,""],RESET_ALL:[4,3,1,""]},"src.colorama.ansitowin32":{AnsiToWin32:[4,1,1,""],StreamWrapper:[4,1,1,""],is_a_tty:[4,4,1,""],is_stream_closed:[4,4,1,""]},"src.colorama.ansitowin32.AnsiToWin32":{ANSI_CSI_RE:[4,3,1,""],ANSI_OSC_RE:[4,3,1,""],call_win32:[4,2,1,""],convert_ansi:[4,2,1,""],convert_osc:[4,2,1,""],extract_params:[4,2,1,""],get_win32_calls:[4,2,1,""],reset_all:[4,2,1,""],should_wrap:[4,2,1,""],write:[4,2,1,""],write_and_convert:[4,2,1,""],write_plain_text:[4,2,1,""]},"src.colorama.ansitowin32.StreamWrapper":{write:[4,2,1,""]},"src.colorama.initialise":{colorama_text:[4,4,1,""],deinit:[4,4,1,""],init:[4,4,1,""],reinit:[4,4,1,""],reset_all:[4,4,1,""],wrap_stream:[4,4,1,""]},"src.colorama.win32":{SetConsoleTextAttribute:[4,4,1,""],winapi_test:[4,4,1,""]},"src.colorama.winterm":{WinColor:[4,1,1,""],WinStyle:[4,1,1,""],WinTerm:[4,1,1,""]},"src.colorama.winterm.WinColor":{BLACK:[4,3,1,""],BLUE:[4,3,1,""],CYAN:[4,3,1,""],GREEN:[4,3,1,""],GREY:[4,3,1,""],MAGENTA:[4,3,1,""],RED:[4,3,1,""],YELLOW:[4,3,1,""]},"src.colorama.winterm.WinStyle":{BRIGHT:[4,3,1,""],BRIGHT_BACKGROUND:[4,3,1,""],NORMAL:[4,3,1,""]},"src.colorama.winterm.WinTerm":{back:[4,2,1,""],cursor_adjust:[4,2,1,""],erase_line:[4,2,1,""],erase_screen:[4,2,1,""],fore:[4,2,1,""],get_attrs:[4,2,1,""],get_position:[4,2,1,""],reset_all:[4,2,1,""],set_attrs:[4,2,1,""],set_console:[4,2,1,""],set_cursor_position:[4,2,1,""],set_title:[4,2,1,""],style:[4,2,1,""]},"src.coloringSat":{ColoringStream:[3,1,1,""],cleanColors:[3,4,1,""],indent:[3,4,1,""],log:[3,4,1,""],replace:[3,4,1,""],toColor:[3,4,1,""],toColor_AnsiToWin32:[3,4,1,""]},"src.coloringSat.ColoringStream":{flush:[3,2,1,""],write:[3,2,1,""]},"src.compilation":{Builder:[3,1,1,""]},"src.compilation.Builder":{build_configure:[3,2,1,""],check:[3,2,1,""],cmake:[3,2,1,""],complete_environment:[3,2,1,""],configure:[3,2,1,""],do_batch_script_build:[3,2,1,""],do_default_build:[3,2,1,""],do_python_script_build:[3,2,1,""],do_script_build:[3,2,1,""],hack_libtool:[3,2,1,""],install:[3,2,1,""],log:[3,2,1,""],log_command:[3,2,1,""],make:[3,2,1,""],prepare:[3,2,1,""],put_txt_log_in_appli_log_dir:[3,2,1,""],wmake:[3,2,1,""]},"src.configManager":{ConfigManager:[3,1,1,""],ConfigOpener:[3,1,1,""],check_path:[3,4,1,""],getConfigColored:[3,4,1,""],get_config_children:[3,4,1,""],get_products_list:[3,4,1,""],print_debug:[3,4,1,""],print_value:[3,4,1,""],show_patchs:[3,4,1,""],show_product_info:[3,4,1,""]},"src.configManager.ConfigManager":{create_config_file:[3,2,1,""],get_command_line_overrides:[3,2,1,""],get_config:[3,2,1,""],get_user_config_file:[3,2,1,""],set_user_config_file:[3,2,1,""]},"src.configManager.ConfigOpener":{get_path:[3,2,1,""]},"src.debug":{InStream:[3,1,1,""],OutStream:[3,1,1,""],getLocalEnv:[3,4,1,""],getStrConfigDbg:[3,4,1,""],getStrConfigStd:[3,4,1,""],indent:[3,4,1,""],pop_debug:[3,4,1,""],push_debug:[3,4,1,""],saveConfigDbg:[3,4,1,""],saveConfigStd:[3,4,1,""],tofix:[3,4,1,""],write:[3,4,1,""]},"src.debug.OutStream":{close:[3,2,1,""]},"src.environment":{Environ:[3,1,1,""],FileEnvWriter:[3,1,1,""],SalomeEnviron:[3,1,1,""],Shell:[3,1,1,""],load_environment:[3,4,1,""]},"src.environment.Environ":{append:[3,2,1,""],append_value:[3,2,1,""],command_value:[3,2,1,""],get:[3,2,1,""],is_defined:[3,2,1,""],prepend:[3,2,1,""],prepend_value:[3,2,1,""],set:[3,2,1,""]},"src.environment.FileEnvWriter":{write_cfgForPy_file:[3,2,1,""],write_env_file:[3,2,1,""]},"src.environment.SalomeEnviron":{add_comment:[3,2,1,""],add_line:[3,2,1,""],add_warning:[3,2,1,""],append:[3,2,1,""],dump:[3,2,1,""],finish:[3,2,1,""],get:[3,2,1,""],get_names:[3,2,1,""],is_defined:[3,2,1,""],load_cfg_environment:[3,2,1,""],prepend:[3,2,1,""],run_env_script:[3,2,1,""],run_simple_env_script:[3,2,1,""],set:[3,2,1,""],set_a_product:[3,2,1,""],set_application_env:[3,2,1,""],set_cpp_env:[3,2,1,""],set_full_environ:[3,2,1,""],set_products:[3,2,1,""],set_python_libdirs:[3,2,1,""],set_salome_generic_product_env:[3,2,1,""],set_salome_minimal_product_env:[3,2,1,""]},"src.environs":{print_grep_environs:[3,4,1,""],print_split_environs:[3,4,1,""],print_split_pattern_environs:[3,4,1,""]},"src.example":{essai_logging_1:[5,0,0,"-"],essai_logging_2:[5,0,0,"-"]},"src.example.essai_logging_1":{getMyLogger:[5,4,1,""],initMyLogger:[5,4,1,""],testLogger1:[5,4,1,""]},"src.example.essai_logging_2":{MyFormatter:[5,1,1,""],getMyLogger:[5,4,1,""],initMyLogger:[5,4,1,""],testLogger1:[5,4,1,""]},"src.example.essai_logging_2.MyFormatter":{format:[5,2,1,""]},"src.exceptionSat":{ExceptionSat:[3,5,1,""]},"src.fileEnviron":{BashFileEnviron:[3,1,1,""],BatFileEnviron:[3,1,1,""],ContextFileEnviron:[3,1,1,""],FileEnviron:[3,1,1,""],LauncherFileEnviron:[3,1,1,""],ScreenEnviron:[3,1,1,""],get_file_environ:[3,4,1,""],special_path_separator:[3,4,1,""]},"src.fileEnviron.BashFileEnviron":{command_value:[3,2,1,""],finish:[3,2,1,""],set:[3,2,1,""]},"src.fileEnviron.BatFileEnviron":{add_comment:[3,2,1,""],command_value:[3,2,1,""],finish:[3,2,1,""],get:[3,2,1,""],set:[3,2,1,""]},"src.fileEnviron.ContextFileEnviron":{add_echo:[3,2,1,""],add_warning:[3,2,1,""],append_value:[3,2,1,""],command_value:[3,2,1,""],finish:[3,2,1,""],get:[3,2,1,""],prepend_value:[3,2,1,""],set:[3,2,1,""]},"src.fileEnviron.FileEnviron":{add_comment:[3,2,1,""],add_echo:[3,2,1,""],add_line:[3,2,1,""],add_warning:[3,2,1,""],append:[3,2,1,""],append_value:[3,2,1,""],command_value:[3,2,1,""],finish:[3,2,1,""],get:[3,2,1,""],is_defined:[3,2,1,""],prepend:[3,2,1,""],prepend_value:[3,2,1,""],set:[3,2,1,""]},"src.fileEnviron.LauncherFileEnviron":{add:[3,2,1,""],add_comment:[3,2,1,""],add_echo:[3,2,1,""],add_line:[3,2,1,""],add_warning:[3,2,1,""],append:[3,2,1,""],append_value:[3,2,1,""],change_to_launcher:[3,2,1,""],command_value:[3,2,1,""],finish:[3,2,1,""],get:[3,2,1,""],is_defined:[3,2,1,""],prepend:[3,2,1,""],prepend_value:[3,2,1,""],set:[3,2,1,""]},"src.fileEnviron.ScreenEnviron":{add_comment:[3,2,1,""],add_echo:[3,2,1,""],add_line:[3,2,1,""],add_warning:[3,2,1,""],append:[3,2,1,""],command_value:[3,2,1,""],get:[3,2,1,""],is_defined:[3,2,1,""],prepend:[3,2,1,""],run_env_script:[3,2,1,""],set:[3,2,1,""],write:[3,2,1,""]},"src.fork":{batch:[3,4,1,""],batch_salome:[3,4,1,""],launch_command:[3,4,1,""],show_progress:[3,4,1,""],write_back:[3,4,1,""]},"src.loggingSat":{DefaultFormatter:[3,1,1,""],UnittestFormatter:[3,1,1,""],UnittestStream:[3,1,1,""],dirLogger:[3,4,1,""],getDefaultLogger:[3,4,1,""],getUnittestLogger:[3,4,1,""],indent:[3,4,1,""],indentUnittest:[3,4,1,""],initLoggerAsDefault:[3,4,1,""],initLoggerAsUnittest:[3,4,1,""],log:[3,4,1,""],testLogger_1:[3,4,1,""]},"src.loggingSat.DefaultFormatter":{format:[3,2,1,""],setColorLevelname:[3,2,1,""]},"src.loggingSat.UnittestFormatter":{format:[3,2,1,""]},"src.loggingSat.UnittestStream":{flush:[3,2,1,""],getLogs:[3,2,1,""],getLogsAndClear:[3,2,1,""],write:[3,2,1,""]},"src.options":{OptResult:[3,1,1,""],Options:[3,1,1,""]},"src.options.Options":{add_option:[3,2,1,""],debug_write:[3,2,1,""],getDetailOption:[3,2,1,""],get_help:[3,2,1,""],indent:[3,2,1,""],parse_args:[3,2,1,""]},"src.product":{check_config_exists:[3,4,1,""],check_installation:[3,4,1,""],get_base_install_dir:[3,4,1,""],get_install_dir:[3,4,1,""],get_product_components:[3,4,1,""],get_product_config:[3,4,1,""],get_product_dependencies:[3,4,1,""],get_product_section:[3,4,1,""],get_products_infos:[3,4,1,""],product_compiles:[3,4,1,""],product_has_env_script:[3,4,1,""],product_has_logo:[3,4,1,""],product_has_patches:[3,4,1,""],product_has_salome_gui:[3,4,1,""],product_has_script:[3,4,1,""],product_is_SALOME:[3,4,1,""],product_is_autotools:[3,4,1,""],product_is_cmake:[3,4,1,""],product_is_cpp:[3,4,1,""],product_is_debug:[3,4,1,""],product_is_dev:[3,4,1,""],product_is_fixed:[3,4,1,""],product_is_generated:[3,4,1,""],product_is_mpi:[3,4,1,""],product_is_native:[3,4,1,""],product_is_salome:[3,4,1,""],product_is_sample:[3,4,1,""],product_is_smesh_plugin:[3,4,1,""],product_is_vcs:[3,4,1,""]},"src.pyconf":{Config:[3,1,1,""],ConfigError:[3,5,1,""],ConfigFormatError:[3,5,1,""],ConfigInputStream:[3,1,1,""],ConfigList:[3,1,1,""],ConfigMerger:[3,1,1,""],ConfigOutputStream:[3,1,1,""],ConfigReader:[3,1,1,""],ConfigResolutionError:[3,5,1,""],Container:[3,1,1,""],Expression:[3,1,1,""],Mapping:[3,1,1,""],Reference:[3,1,1,""],Sequence:[3,1,1,""],deepCopyMapping:[3,4,1,""],defaultMergeResolve:[3,4,1,""],defaultStreamOpener:[3,4,1,""],isWord:[3,4,1,""],makePath:[3,4,1,""],overwriteMergeResolve:[3,4,1,""]},"src.pyconf.Config":{Namespace:[3,1,1,""],addNamespace:[3,2,1,""],getByPath:[3,2,1,""],load:[3,2,1,""],removeNamespace:[3,2,1,""]},"src.pyconf.ConfigInputStream":{close:[3,2,1,""],read:[3,2,1,""],readline:[3,2,1,""]},"src.pyconf.ConfigList":{getByPath:[3,2,1,""]},"src.pyconf.ConfigMerger":{handleMismatch:[3,2,1,""],merge:[3,2,1,""],mergeMapping:[3,2,1,""],mergeSequence:[3,2,1,""],overwriteKeys:[3,2,1,""]},"src.pyconf.ConfigOutputStream":{close:[3,2,1,""],flush:[3,2,1,""],write:[3,2,1,""]},"src.pyconf.ConfigReader":{getChar:[3,2,1,""],getToken:[3,2,1,""],load:[3,2,1,""],location:[3,2,1,""],match:[3,2,1,""],parseFactor:[3,2,1,""],parseKeyValuePair:[3,2,1,""],parseMapping:[3,2,1,""],parseMappingBody:[3,2,1,""],parseReference:[3,2,1,""],parseScalar:[3,2,1,""],parseSequence:[3,2,1,""],parseSuffix:[3,2,1,""],parseTerm:[3,2,1,""],parseValue:[3,2,1,""],setStream:[3,2,1,""]},"src.pyconf.Container":{evaluate:[3,2,1,""],setPath:[3,2,1,""],writeToStream:[3,2,1,""],writeValue:[3,2,1,""]},"src.pyconf.Expression":{evaluate:[3,2,1,""]},"src.pyconf.Mapping":{addMapping:[3,2,1,""],get:[3,2,1,""],iteritems:[3,2,1,""],iterkeys:[3,2,1,""],keys:[3,2,1,""],writeToStream:[3,2,1,""]},"src.pyconf.Reference":{addElement:[3,2,1,""],findConfig:[3,2,1,""],resolve:[3,2,1,""]},"src.pyconf.Sequence":{SeqIter:[3,1,1,""],append:[3,2,1,""],writeToStream:[3,2,1,""]},"src.pyconf.Sequence.SeqIter":{next:[3,2,1,""]},"src.returnCode":{ReturnCode:[3,1,1,""]},"src.returnCode.ReturnCode":{KFSYS:[3,3,1,""],KNOWNFAILURE_STATUS:[3,3,1,""],KOSYS:[3,3,1,""],KO_STATUS:[3,3,1,""],NASYS:[3,3,1,""],NA_STATUS:[3,3,1,""],NDSYS:[3,3,1,""],OKSYS:[3,3,1,""],OK_STATUS:[3,3,1,""],TIMEOUT_STATUS:[3,3,1,""],TOSYS:[3,3,1,""],UNKNOWN_STATUS:[3,3,1,""],getValue:[3,2,1,""],getWhy:[3,2,1,""],indent:[3,2,1,""],isOk:[3,2,1,""],setStatus:[3,2,1,""],setValue:[3,2,1,""],setWhy:[3,2,1,""],toSys:[3,2,1,""]},"src.salomeTools":{Sat:[3,1,1,""],assumeAsList:[3,4,1,""],find_command_list:[3,4,1,""],getCommandsList:[3,4,1,""],getVersion:[3,4,1,""],launchSat:[3,4,1,""],setLocale:[3,4,1,""],setNotLocale:[3,4,1,""]},"src.salomeTools.Sat":{assumeAsList:[3,2,1,""],execute_cli:[3,2,1,""],getColoredVersion:[3,2,1,""],getCommandAndAppli:[3,2,1,""],getCommandInstance:[3,2,1,""],getConfig:[3,2,1,""],getConfigManager:[3,2,1,""],getLogger:[3,2,1,""],getModule:[3,2,1,""],get_help:[3,2,1,""],parseArguments:[3,2,1,""],print_help:[3,2,1,""]},"src.system":{archive_extract:[3,4,1,""],cvs_extract:[3,4,1,""],git_extract:[3,4,1,""],show_in_editor:[3,4,1,""],svn_extract:[3,4,1,""]},"src.template":{MyTemplate:[3,1,1,""],substitute:[3,4,1,""]},"src.template.MyTemplate":{delimiter:[3,3,1,""],pattern:[3,3,1,""]},"src.test_module":{Test:[3,1,1,""],getTmpDirDEFAULT:[3,4,1,""]},"src.test_module.Test":{generate_launching_commands:[3,2,1,""],generate_script:[3,2,1,""],get_test_timeout:[3,2,1,""],get_tmp_dir:[3,2,1,""],prepare_testbase:[3,2,1,""],prepare_testbase_from_dir:[3,2,1,""],prepare_testbase_from_git:[3,2,1,""],prepare_testbase_from_svn:[3,2,1,""],read_results:[3,2,1,""],run_all_tests:[3,2,1,""],run_grid_tests:[3,2,1,""],run_script:[3,2,1,""],run_session_tests:[3,2,1,""],run_testbase_tests:[3,2,1,""],run_tests:[3,2,1,""],search_known_errors:[3,2,1,""],write_test_margin:[3,2,1,""]},"src.utilsSat":{Path:[3,1,1,""],black:[3,4,1,""],blue:[3,4,1,""],check_config_has_application:[3,4,1,""],check_config_has_profile:[3,4,1,""],config_has_application:[3,4,1,""],critical:[3,4,1,""],cyan:[3,4,1,""],date_to_datetime:[3,4,1,""],deepcopy_list:[3,4,1,""],ensure_path_exists:[3,4,1,""],error:[3,4,1,""],find_file_in_lpath:[3,4,1,""],formatTuples:[3,4,1,""],formatValue:[3,4,1,""],get_base_path:[3,4,1,""],get_cfg_param:[3,4,1,""],get_launcher_name:[3,4,1,""],get_log_path:[3,4,1,""],get_property_in_product_cfg:[3,4,1,""],get_salome_version:[3,4,1,""],get_tmp_filename:[3,4,1,""],green:[3,4,1,""],handleRemoveReadonly:[3,4,1,""],header:[3,4,1,""],info:[3,4,1,""],label:[3,4,1,""],list_log_file:[3,4,1,""],logger_info_tuples:[3,4,1,""],magenta:[3,4,1,""],merge_dicts:[3,4,1,""],normal:[3,4,1,""],only_numbers:[3,4,1,""],parse_date:[3,4,1,""],read_config_from_a_file:[3,4,1,""],red:[3,4,1,""],remove_item_from_list:[3,4,1,""],replace_in_file:[3,4,1,""],reset:[3,4,1,""],show_command_log:[3,4,1,""],success:[3,4,1,""],timedelta_total_seconds:[3,4,1,""],update_hat_xml:[3,4,1,""],warning:[3,4,1,""],white:[3,4,1,""],yellow:[3,4,1,""]},"src.utilsSat.Path":{base:[3,2,1,""],chmod:[3,2,1,""],copy:[3,2,1,""],copydir:[3,2,1,""],copyfile:[3,2,1,""],copylink:[3,2,1,""],dir:[3,2,1,""],exists:[3,2,1,""],isdir:[3,2,1,""],isfile:[3,2,1,""],islink:[3,2,1,""],list:[3,2,1,""],make:[3,2,1,""],readlink:[3,2,1,""],rm:[3,2,1,""],smartcopy:[3,2,1,""],symlink:[3,2,1,""]},"src.xmlManager":{ReadXmlFile:[3,1,1,""],XmlLogFile:[3,1,1,""],add_simple_node:[3,4,1,""],append_node_attrib:[3,4,1,""],find_node_by_attrib:[3,4,1,""],write_report:[3,4,1,""]},"src.xmlManager.ReadXmlFile":{getRootAttrib:[3,2,1,""],get_attrib:[3,2,1,""],get_node_text:[3,2,1,""]},"src.xmlManager.XmlLogFile":{add_simple_node:[3,2,1,""],append_node_attrib:[3,2,1,""],append_node_text:[3,2,1,""],write_tree:[3,2,1,""]},commands:{"package":[0,0,0,"-"],application:[0,0,0,"-"],check:[0,0,0,"-"],clean:[0,0,0,"-"],compile:[0,0,0,"-"],config:[0,0,0,"-"],configure:[0,0,0,"-"],environ:[0,0,0,"-"],find_duplicates:[0,0,0,"-"],generate:[0,0,0,"-"],init:[0,0,0,"-"],job:[0,0,0,"-"],jobs:[0,0,0,"-"],launcher:[0,0,0,"-"],log:[0,0,0,"-"],make:[0,0,0,"-"],makeinstall:[0,0,0,"-"],patch:[0,0,0,"-"],prepare:[0,0,0,"-"],profile:[0,0,0,"-"],run:[0,0,0,"-"],script:[0,0,0,"-"],shell:[0,0,0,"-"],source:[0,0,0,"-"],template:[0,0,0,"-"],test:[0,0,0,"-"]},src:{ElementTree:[3,0,0,"-"],architecture:[3,0,0,"-"],catchAll:[3,0,0,"-"],colorama:[4,0,0,"-"],coloringSat:[3,0,0,"-"],compilation:[3,0,0,"-"],configManager:[3,0,0,"-"],debug:[3,0,0,"-"],environment:[3,0,0,"-"],environs:[3,0,0,"-"],example:[5,0,0,"-"],exceptionSat:[3,0,0,"-"],fileEnviron:[3,0,0,"-"],fork:[3,0,0,"-"],loggingSat:[3,0,0,"-"],options:[3,0,0,"-"],product:[3,0,0,"-"],pyconf:[3,0,0,"-"],returnCode:[3,0,0,"-"],salomeTools:[3,0,0,"-"],system:[3,0,0,"-"],template:[3,0,0,"-"],test_module:[3,0,0,"-"],utilsSat:[3,0,0,"-"],xmlManager:[3,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","attribute","Python attribute"],"4":["py","function","Python function"],"5":["py","exception","Python exception"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:attribute","4":"py:function","5":"py:exception"},terms:{"16be":3,"16le":3,"9abc":3,"boolean":[0,3,21],"case":[0,3],"char":3,"class":[0,3,4,5,21],"default":[0,3,6,8,9,10,12,13,14,15,20],"else":3,"export":15,"final":[3,9,15],"float":[0,3],"function":[0,3,4,21],"import":[3,10,21],"int":[0,3,13],"long":[3,7],"new":[0,3,15,21],"return":[0,3,10,21],"short":3,"true":[0,3,4],"try":3,"var":3,__init__:[3,5],__main__:3,__repr__:3,__save__:3,__setattr__:3,__str__:3,_appli:6,_basecmd:3,_basecommand:0,_blank:3,_build:10,_debug:3,_launch:10,_ld_library_path:10,_sre:[3,4],_type:3,_verbos:3,a_b_c_:3,abool:3,about:[0,3,16],absolut:14,access:[3,4,13],account:10,act:[3,4],action:3,activ:[3,15],actual:[3,4,18],add:[3,8],add_com:3,add_compile_config_fil:0,add_echo:3,add_fil:0,add_lin:3,add_module_to_appli:0,add_opt:[3,21],add_readm:0,add_salometool:0,add_simple_nod:3,add_warn:3,add_xml_board:0,addelement:3,addit:[0,3,8,16],additional_dir:3,additional_env:[0,3],addmap:3,addnamespac:3,adequ:3,advanc:3,affect:4,afil:3,after:[0,8,18],again:3,agent:15,aim:3,algorithm:21,alia:3,alias_path:0,alistofstr:0,all:[0,3,4,7,9,10,11,15,16,20,21],allow:[0,3,8,9,11,17,20],alphanumer:3,alreadi:[0,14,21],also:[0,3,10,15,16,21],alter:15,amount:3,ani:[0,3,4,9,13,15],anoth:[3,16],ansi:[2,3],ansi_csi_re:4,ansi_escape_cod:4,ansi_osc_re:4,ansiback:4,ansicod:4,ansicursor:4,ansifor:4,ansistyl:4,ansitowin32:[2,3],anyth:0,apart:4,apath:3,api:3,append:[3,10,14],append_node_attrib:3,append_node_text:3,append_valu:3,appli:[0,3,9,11,15],appli_dir:0,appli_gen:0,appli_path:0,application:[3,6,9,12],application_nam:6,application_tmp_dir:0,applilog:3,apply_patch:0,appropri:3,arch:14,architectur:2,archiv:[0,3,14,15],archive_extract:3,archive_info:15,arg:[3,4,21],arglist:3,argument:[0,3],argv:3,arrai:0,ascii:3,asctim:5,ask:[0,3],ask_a_path:0,ask_valu:0,assign:3,assum:3,assumeaslist:3,astr:3,astream:3,atitl:3,attibut:3,attr:[3,4],attrib:3,attribut:[3,4],authent:15,author:3,automat:[3,9,10],autoreset:4,autotool:[0,3,8],avail:9,avalu:3,avari:3,avoid:[0,15],award:3,back:4,backend:3,backtick:3,bar:0,base:[3,4,5],basenam:3,bash:[0,3,10,15],bashfileenviron:3,basic:3,bat:[3,10],batch:3,batch_salom:3,batfileenviron:3,becaus:3,been:[0,3,4],befor:[0,3,8],begin:3,begun:0,behavior:21,belong:3,below:10,between:[0,3],bienvenu:3,big:8,bin:10,binari:[0,14],binaries_dir_nam:0,binary_packag:0,biraries:0,black:[3,4],block:[],blogmatrix:3,blue:[3,4],board:0,bom:3,bonjour:21,bool:[0,3],boost:0,both:[3,10,11],bracket:3,branch:15,bright:4,bright_background:4,bring:[11,15],browser:[0,3,9,13,16],buf:3,build:[3,7,8,10,16],build_conf_opt:3,build_configur:[0,3],build_context:0,build_sourc:[0,8],builder:3,built:3,caa:3,call:[0,3,4,10,12,21],call_win32:4,callabl:3,can:[0,3,6,10,15,16,17,21],cancel:0,cancel_dependencies_of_failing_job:0,cannot:3,car:3,care:7,carri:3,catalog:[0,6,12],catalog_path:0,catchall:2,cfg:[0,3,10,21],cfg_env:3,cfgforpi:3,chang:[0,3,6,20,21],change_to_launch:3,channel:0,channelfil:0,charact:[3,4],charg:12,check_all_product:0,check_config_exist:3,check_config_has_appl:3,check_config_has_profil:3,check_depend:0,check_file_for_substitut:0,check_instal:3,check_module_gener:0,check_opt:0,check_path:[0,3],check_product:0,check_remote_machin:0,check_sourc:0,check_src:3,check_tim:0,check_user_valu:0,check_valu:0,check_yacsgen:0,checkout:[0,3,15],children:3,chmod:3,choic:9,choosen:3,circumst:3,clash:3,classic:3,clean_al:[0,8,20],clean_build_aft:8,clean_instal:8,cleancolor:3,clear_lin:4,clear_screen:4,clearpag:[6,7,8,9,10,11,12,13,14,15,17,20,21],cli:[3,13,20],cli_:21,cli_argu:3,client:3,clone:15,close:[0,3],closest:3,cmake:[0,3,8],cmake_opt:8,cmd:3,cmd_argument:0,cmd_list:3,co7:14,code:[3,4,10],code_to_char:4,color:[0,3,4],colorama:[2,3],colorama_text:4,coloringsat:2,coloringstream:3,column:[0,3],com:[3,5],come:9,command_opt:20,command_valu:3,comment:[3,16],commentari:3,commit:7,commonli:3,compat:3,compil_script:8,compil_scripts_tmp_dir:0,compile_all_product:0,compile_product:0,compile_product_cmake_autotool:0,compile_product_script:0,complementari:10,complet:[3,8,9,15,16],complete_environ:3,compo:0,compo_nam:0,compon:[3,6,11],componon:11,compress:14,comput:[3,11,14],concaten:3,concern:15,conf_opt:0,conf_valu:0,config_fil:0,config_has_appl:3,config_job:0,configerror:3,configformaterror:3,configinputstream:3,configlist:3,configmanag:2,configmerg:3,configopen:3,configoutputstream:3,configread:[0,3],configresolutionerror:3,configure_all_product:0,configure_opt:3,configure_product:0,configut:6,conflict:3,conform:11,connect:0,consid:0,consist:3,consol:3,construct:[0,3,17,19],contain:[0,3,16,21],context:[0,3,20],contextfileenviron:3,continu:3,control:14,conveni:3,convert:4,convert_ansi:4,convert_osc:4,copi:[0,3,6,9,12,20],copy_catalog:0,copy_sat:0,copydir:3,copyfil:3,copylink:3,copyright:3,corba:11,correct:3,correctli:0,correl:3,correspond:[0,3,10,13,15],could:[0,3,7,10,18],cpp:[0,3,11],creat:[0,3,6,7,10,12,14,15,16,17],create_appl:0,create_config_fil:[0,3],create_project_for_src_packag:0,create_test_report:0,creation:14,critic:[3,5,21],critical:5,csv:0,current:[0,3,9,16,20,21],cursor_adjust:4,custom:[],customize_app:0,cvs:14,cvs_extract:3,cvs_info:15,cvspass:15,cwd:3,cyan:[3,4],d_content:0,d_input_board:0,d_sub:0,dai:[0,3],data:[0,3,9,21],datadir:3,date:[0,3,16],date_to_datetim:3,datefmt:[3,5],datetim:3,david:3,dbg:3,debug:2,debug_writ:3,decid:3,declar:15,dedic:0,deep:3,deepcopy_list:3,deepcopymap:3,def:[10,21],default_valu:3,defaultformatt:3,defaultmergeresolv:3,defaultstreamopen:3,defin:[0,3,7,8,9,10,11,16,21],define_job:0,definit:[0,3],deinit:4,delai:3,delaiapp:3,deleg:4,delet:[0,14],delimit:3,delta:3,depend:[0,3,8,14],deriv:3,describ:[0,3],descript:3,design:3,dest_path:0,destnam:3,detail:3,detar:18,detect:3,determin:3,determine_jobs_and_machin:0,dev:3,develop:[3,7,9,10,15],develop_factorized_job:0,dico:0,dict:[0,3],dict_arg:3,dictionari:[0,3,16],dictionnari:0,differ:[5,10],dim:4,dir:[0,3,9,15],dir_info:15,direct:3,directli:[10,13,18],directori:[0,3,6,7,8,9,10,12,13,14,15,16,18,20,21],directories_ignor:0,dirlogg:3,dirpath:3,displai:[0,3,8,9,13,21],display_local_valu:0,display_statu:0,display_value_progress:0,distant:6,disten:0,distinguish:10,distrib:3,distribut:[3,6,11],divis:3,do_batch_script_build:3,do_default_build:3,do_python_script_build:3,do_script_build:3,doc:[3,5],docstr:0,doctyp:3,document:[11,16],doe:[3,10,15],dog:3,dollar:3,don:11,done:[0,3,10,20],dosometh:3,dosomethingtoreturn:3,dot:3,dove:3,down:4,download:[3,15],dst:3,due:3,dump:3,dumper:3,dumpertyp:3,duplic:[0,8],durat:0,dure:15,dynam:[3,16],each:[0,3,6,12,15,16],earlier:3,earliest:3,echo:3,ecrir:[3,5],edf:0,edit:[0,9,15],editor:[3,9,16],either:[3,10],elaps:0,eleg:3,elem:3,element:[0,3],element_factori:3,elementari:3,elementtre:2,els:[0,3,21],embed:14,empti:3,enable_simple_env_script:3,enclos:3,encod:3,end:[0,3,4,10],english:3,ensure:3,ensure_path_exist:3,enter:0,entir:3,entri:3,env:[0,3,10],env_build:10,env_fil:0,env_info:[0,3],env_launch:10,env_script:10,env_scripts_tmp_dir:0,equal:8,eras:13,erase_lin:4,erase_screen:4,err:0,error:[0,3,5,21],essai:5,essai_logging_1:[2,3],essai_logging_2:[2,3],etc:[0,3,16,17],etre:[0,3],etree:3,eval:3,evalu:3,evaluat:3,event:3,everi:0,everyth:8,exactli:3,exampl:[2,3],exc:3,exceed:0,except:[3,15,20],exception:3,exceptionsat:2,exclud:0,exclude_vcs_and_extens:0,exec_command:0,execut:[0,3,8,15,20],execute_cli:3,exept:3,exhaust:[16,20],exist:[0,3,14,15,20],exot:3,expect:[0,3],explain:10,explan:3,explicitli:3,explor:3,explore:9,express:[3,9],expression:3,ext:3,extend_with_children:0,extend_with_fath:0,extens:[0,3,21],extension_ignor:0,extern:3,extra:[0,3],extract:[0,3],extract_param:4,f_exclud:0,fact:21,factor:3,factori:3,fail:[0,3,8],fals:[0,3,4],far:3,favorit:9,feed:3,field:[0,3],file:[0,3,6,8,9,10,12,13,14,15,16,17,21],file_:0,file_board:0,file_dir:0,file_in:3,file_nam:[0,3],file_path:3,fileenviron:2,fileenvwrit:3,filenam:[0,3],filepath:[0,3],files_arb_out:0,files_ignor:0,files_out:0,fill:0,filnam:0,filter:[0,7],fin:3,find:[0,3,9,17,18],find_application_pyconf:0,find_command_list:3,find_file_in_lpath:3,find_histori:0,find_job_that_has_nam:0,find_node_by_attrib:3,find_product_scripts_and_pyconf:0,find_products_already_get:0,find_products_with_patch:0,find_test_log:0,findal:3,findconfig:3,findtext:3,finish:[0,3],finish_statu:0,firefox:[13,16],first:[0,3,10,15,21],fix:[0,3],flag:8,flaglin:0,flicacpp:0,flush:3,fmt:[3,5],folder:0,follow:[3,10,21],for_packag:3,forbuild:3,forc:[0,3,14,15],force_patch:15,fore:4,fork:2,form:3,format:[0,3,5,10,16],format_list_of_str:0,formatt:[3,5],formattupl:3,formatvalu:3,forward:[4,6,12],found:[0,3],four:10,french:21,from:[0,3,4,9,10,11,14,15,21],from_what:3,fromstr:3,full:[0,3],fun:9,func:3,futur:3,gap:0,gdb:10,gencat:[6,12],generate_appl:0,generate_catalog:0,generate_compon:0,generate_component_list:0,generate_history_xml_path:0,generate_launch_fil:0,generate_launching_command:3,generate_profile_sourc:0,generate_script:3,generic_opt:20,geom:[0,8],get:[3,9,15,16],get_all_product_sourc:0,get_arch:0,get_archives_vc:0,get_attr:4,get_attrib:3,get_base_install_dir:3,get_base_path:3,get_build_directori:0,get_cfg_param:3,get_children:0,get_command_line_overrid:3,get_config:3,get_config_children:3,get_config_file_path:0,get_dico_param:0,get_distrib_vers:3,get_distribut:3,get_file_environ:3,get_help:3,get_install_dir:3,get_install_directori:0,get_last_log_fil:0,get_launcher_nam:3,get_log_fil:0,get_log_path:3,get_method:15,get_nam:3,get_nb_proc:[0,3],get_node_text:3,get_paramet:0,get_path:3,get_pid:0,get_posit:4,get_product_compon:3,get_product_config:3,get_product_depend:3,get_product_sect:3,get_product_sourc:0,get_products_info:3,get_products_list:[0,3],get_profile_nam:0,get_property_in_product_cfg:3,get_pyconf_paramet:0,get_python_vers:3,get_recursive_children:0,get_recursive_fath:0,get_salome_modul:0,get_salome_vers:3,get_source_directori:0,get_source_for_dev:0,get_source_from_arch:0,get_source_from_cv:0,get_source_from_dir:0,get_source_from_git:0,get_source_from_svn:0,get_statu:0,get_step:0,get_template_info:0,get_test_timeout:3,get_tmp_dir:3,get_tmp_filenam:3,get_us:3,get_user_config_fil:3,get_win32_cal:4,getbypath:3,getchar:3,getcoloredvers:3,getcommandandappli:3,getcommandinst:3,getcommandslist:3,getconfig:[3,21],getconfigcolor:3,getconfigmanag:3,getdefaultlogg:3,getdetailopt:3,getiter:3,getlocalenv:3,getlog:3,getlogg:3,getlogsandclear:3,getmaxformat:0,getmodul:3,getmylogg:5,getparamiko:0,getpars:0,getroot:3,getrootattrib:3,getstrconfigdbg:3,getstrconfigstd:3,gettmpdir:3,gettmpdirdefault:3,gettoken:3,getunittestlogg:3,getvalu:3,getvers:3,getwhi:3,git:[3,14],git_extract:3,git_info:15,gitconfig:15,give:[0,3,6,16,21],given:[0,3,4,6,10,12],global:[0,3],goe:3,green:[3,4],grep:[3,9],grey:4,grid:[0,3],gui:[0,3],hack_for_distene_lic:0,hack_libtool:3,had:3,handl:[3,4,10],handlemismatch:3,handler:[3,5],handleremovereadonli:3,harri:3,has_begun:0,has_fail:0,has_finish:0,has_gui:0,has_pyconf:0,has_salome_hui:3,has_timed_out:3,hat:3,have:[0,3,6,7,11,12,15],header:[0,3],help:3,helpstr:3,here:[0,3,10,16,21],hierarchi:3,himself:10,histori:0,hold:12,home:9,host:0,hostnam:0,hour:3,how:[3,10,15,16],html:[3,5],http:[3,4,5],human:3,hxx2salom:11,i18n:3,ident:[0,3],identifi:3,ignor:[0,3,11],ignore_exist:0,ignorelist:3,imag:15,implement:[3,4,10],in_dir:0,includ:[0,3,10,14,16],include:14,indent:3,indentunittest:3,index:3,indic:3,indirect:3,info:[0,3,5,9,15,21],inform:[0,3,9,14,15,16],inherit:3,initi:3,initialis:[2,3],initialize_board:0,initiat:0,initloggerasdefault:3,initloggerasunittest:3,initmylogg:5,inmap:3,input:[0,3],input_list:3,insid:15,instal:[0,3,7,8,16,18,20],install:[0,7,20],install_dir:10,installat:[],instanc:[0,3,4,21],instanti:0,instantiat:3,instead:3,instream:3,instruct:[3,16],intal:14,integ:0,interact:[0,13],interfac:[3,20],intern:3,internation:3,invalid:3,ioerror:3,iostream:3,is_a_tti:4,is_defin:3,is_dev:0,is_occupi:0,is_run:0,is_salome_modul:[0,7,10],is_stream_clos:4,is_timeout:0,is_window:3,isdir:3,isel:3,isfil:3,islink:3,isok:3,issu:4,isword:3,item:3,iter:3,iteritem:3,iterkei:3,iterpars:3,ivar:3,jane:3,job_config_nam:0,job_def:0,job_fil:0,job_file_path:0,jobs_config:0,join:10,json:3,jsondump:3,just:8,keep:3,kei:[0,3,10,15],kernel:[0,9,20],kfsys:3,kill:0,kill_remote_process:0,killsalom:3,kind:0,know:[3,15],known:[3,14],knownfailure_status:3,ko_status:3,kosys:3,kwarg:4,kwd:4,l_cfg_dir:0,l_job:0,l_jobs_not_todai:0,l_path:0,l_pinfo_vc:0,l_product:0,l_products_info:0,l_remote_log_fil:0,l_salome_modul:0,l_str:0,label:[0,3,9],lang:3,lapack:10,lapack_root_dir:10,last:[0,3,10,13],last_termin:13,last_upd:0,later:14,latter:3,launch:[0,3,10],launch_command:3,launched_cmd:3,launcher_nam:[0,12],launcherfileenviron:3,launchsat:3,layer:11,ld_library_path:10,left:10,len_col:0,len_end:0,lenght:0,lenght_column:0,length:0,less:3,level:[3,5,20],levelnam:[3,5],lib:[5,10],librari:[3,5],licenc:0,light:[0,4],lightblack_ex:4,lightblue_ex:4,lightcyan_ex:4,lightgreen_ex:4,lightmagenta_ex:4,lightred_ex:4,lightwhite_ex:4,lightyellow_ex:4,like:[0,3,4,6,8,9,12,16],line:[0,3,9,20],link:[0,3,15],list:[3,6,7,9,12,16],list_directori:0,list_log_fil:3,list_of_product:11,listtest:3,llvm:[6,12],load:[3,16],load_cfg_environ:3,load_environ:3,local:[0,3,9],locat:[0,3],log_command:3,log_dir:[0,13],log_res_step:0,log_step:0,logdir:[0,3],logfilepath:3,logger:[3,5],logger_info_tupl:3,loggingsat:2,login:15,logo:[3,12],logs:3,lome:17,longnam:3,lost:3,lpath:[0,3],lproduct:3,machin:[0,3,6,11,12,14],machine1:6,machine2:6,machine3:6,machine_nam:0,magenta:[3,4],mai:15,main:[0,3,8],mainten:0,make_alia:0,make_all_product:0,make_arch:0,make_flag:8,make_opt:[0,3],make_product:0,makeinstall_all_product:0,makeinstall_product:0,makepath:3,manag:[0,3,9,15],manipul:[0,3,9],map1:3,map2:3,map:[0,3],match:3,max:3,max_product_name_len:0,maximum:0,mechan:[3,10],med:8,medcoupling:0,memori:[3,6,12],menu:13,merg:3,merge:3,merge_dict:3,mergemap:3,mergesequ:3,mesa:[6,12],messag:[0,3,5,21],method:[0,3,4,8,10,15,21],milou:3,minim:3,minut:3,mismatch:3,miss:[6,8],mistak:15,mix:0,mkdir:0,mode:[3,4,7,9,10,13],model:21,modifi:[0,3,10,15],module_gener:0,module_path:0,moment:3,mon:3,mond:21,more:[0,3,20],most:[0,3,10],move_test_result:0,msg:3,multi:3,multilin:3,multipl:3,must:[0,21],mutipl:3,my_application_directori:6,my_application_nam:6,my_job:0,my_product_nam:0,my_tag:15,mycommand:21,myformatt:5,mylogg:5,myoption:21,myspecificnam:14,mytempl:3,na_status:3,name:[0,3,6,7,9,10,12,14,15,16,20,21],name_arch:0,name_job:0,name_nod:3,name_product:0,namespac:3,nasys:3,nativ:[0,3,10],nb_line:3,nb_proc:[0,3,8],ndsys:3,necessari:3,need:[0,3,4,6,11,15],needs:0,new_nam:9,newer:0,next:3,no_label:9,node:[0,3],node_nam:3,non:4,none:[0,3,4,5],nor:4,normal:[3,4],note:[3,6,10,12,16],noth:[0,3,14],notimplementederror:3,notion:3,notshowncommand:[0,3],now:0,number:[0,3,6,8,12,13],number_of_proc:3,numpi:0,obj1:3,obj2:3,obj:3,object:[0,3,4,16],obsolesc:0,obsolet:3,obsolete:21,obtain:3,obvious:3,occur:3,offset:0,ok_status:3,oksys:3,old:3,older:13,on_stderr:4,onc:15,one:3,onli:[0,3,6,7,8,9,10,11,12,13,15,20],only_numb:3,ool:17,open:3,openggl:[6,12],openmpi:3,oper:[0,3,9,17],operand:3,opt_nb_proc:3,option:2,optionali:3,optionn:3,optionnali:3,optiontyp:3,optresult:[0,3],order:[0,3,15,16,21],org:[3,4,5],other:[3,5,10,14,16],otherwis:[0,3,15],our:4,out:[0,3],out_dir:[0,3],output:[0,3,4],outstream:3,overrid:[3,6],overwrit:3,overwritekei:3,overwritemergeresolv:3,overwritten:3,own:3,p_info:0,p_name:0,p_name_info:0,p_name_p_info:0,pad:0,page:10,pair:[0,3],param:[3,4],param_def:0,param_nam:3,paramet:[0,3,9,16,21],parameter_path:9,paramiko:0,paramstr:4,paravi:[6,12],paraview:0,paravis:0,parent:[0,3],pars:[0,3,21],parse_arg:[3,21],parse_csv_board:0,parse_d:3,parseargu:3,parsefactor:3,parsekeyvaluepair:3,parsemap:[0,3],parsemappingbodi:3,parser:[3,21],parserefer:3,parsescalar:3,parsesequ:3,parsesuffix:3,parseterm:3,parsevalu:3,part:[3,6,10,12],particular:3,pass:[0,3,16,21],passphras:15,passwd:0,password:15,pat:3,patches_tmp_dir:0,path:3,path_in_arch:0,path_on_local_machin:0,path_to_catalog:6,path_to_check:0,path_to_yacsgen:11,pathlaunch:0,pathlist:3,paths:9,pattern:3,pdf:[9,17],pend:7,pendant:3,perform:[3,15,17],person:9,phase:3,pid:0,platform:[4,10],pleas:[10,11],plugin:[3,8],pluma:16,plusieur:5,point:[3,21],pop_debug:3,popen:3,popul:3,port:0,pos:4,posit:4,possibl:[0,3,10,15,21],post:3,potenti:3,pprty:3,preced:3,predefin:3,prefer:[9,16],prefix:[0,3,10,16],prepare_from_templ:0,prepare_testbas:3,prepare_testbase_from_dir:3,prepare_testbase_from_git:3,prepare_testbase_from_svn:3,prepend:[3,10],prepend_valu:3,prereq_dir:10,prerequisit:[10,14,16,17,20],presenc:3,present:3,pretti:3,previou:[0,3],previous:7,print:[0,3,4,9,13],print_debug:3,print_grep_environ:3,print_help:3,print_log_command_in_termin:0,print_split_environ:3,print_split_pattern_environ:3,print_valu:3,problem:[3,6,12],procedur:[0,3],process:[0,3,15],processinginstruct:3,processor:[0,3,6,12],prod_dir:3,prod_info:[0,3],prod_nam:0,produc:[0,3],produce_install_bin_fil:0,produce_relative_env_fil:0,produce_relative_launch:0,product1:[8,10,15],product2:[8,10,15],product:2,product_appli_creation_script:0,product_cfg:3,product_compil:3,product_has_dir:0,product_has_env_script:3,product_has_logo:3,product_has_patch:3,product_has_salome_gui:3,product_has_script:3,product_info:[0,3],product_inform:[0,3],product_is_autotool:3,product_is_cmak:3,product_is_cpp:3,product_is_debug:3,product_is_dev:3,product_is_fix:3,product_is_gener:3,product_is_mpi:3,product_is_n:3,product_is_salom:3,product_is_salome:3,product_is_sampl:3,product_is_smesh_plugin:3,product_is_vc:3,product_log_dir:0,product_nam:[0,3],products_info:0,products_pyconf_tmp_dir:0,profileconfigread:0,profilerefer:0,program:3,programmat:10,progress:[0,3],progress_bar:0,project:[0,3,9,10],project_file_path:0,project_packag:0,project_path:3,projects:3,prop:0,proper:0,properti:[0,3,7,10,11],protocol:[3,6],provid:[0,3,10,21],proxi:4,pubid:3,publish:0,pure:0,push:15,push_debug:3,put:[0,3],put_dir:0,put_jobs_not_todai:0,put_txt_log_in_appli_log_dir:3,pv_plugin_path:3,pwd:3,pyc:5,pyconf:2,python2:5,python:[0,3,5,10,12,16,17,18,21],python_config:3,pythoncompon:0,pythonpath:10,pythonpath_:10,qname:3,queri:[6,12],question:3,rais:[3,20],raw:3,raw_input:0,rc1:3,rc2:3,rcfinal:3,rco:[0,3],reach:0,read:[0,3],read_config_from_a_fil:3,read_result:3,readabl:3,reader:3,readi:15,readlin:3,readlink:3,readxmlfil:3,record:[3,5],recurs:[0,3,9],red:[3,4],redefin:3,redirect:3,reduc:0,ref:3,refer:[0,3,11,16],reflect:3,regard:[0,3],regular:3,reinit:[3,4],rel:[0,3,14],remain:[13,18],remark:6,remor:11,remot:[0,3,14],remov:[0,3,7,8,15],remove_item_from_list:3,remove_log_fil:0,remove_product:0,removenamespac:3,renam:3,renint:3,replac:[0,3,6],replace_in_fil:3,report:[0,3],repositori:[0,3,15],repr:3,repres:3,represent:3,request:4,requir:[3,4,10,11],reserv:3,reset:[3,4],reset_al:4,reset_all:4,resolut:3,resolv:3,resourc:[6,12],respect:10,restor:[3,7],result:[0,3],retcod:0,retriev:3,returncod:2,right:[0,3,10],root:[3,21],root_nod:3,rootnam:3,rtype:3,run_all_test:3,run_env_script:3,run_grid_test:3,run_job:0,run_script:3,run_script_all_product:0,run_script_of_product:0,run_session_test:3,run_simple_env_script:3,run_test:3,run_testbase_test:3,runappli:6,runner:[0,3,21],ruud:3,sajip:3,salom:[3,6,10,12],salome:[3,6,7,8,9,10,11,12,14,16,18],salome_modules:3,salome_session_serv:3,salome_xx:[7,14,18,20],salome_xx_:14,salomeapp:0,salomecontext:3,salomeenviron:3,salometool:2,same:[0,3],sametmax:[3,5],sampl:3,samples:20,sat:[3,6,7,8,9,10,11,12,13,14,15,16,18],sat_local_path:0,sat_path:0,save:10,save_fil:0,saveconfigdbg:3,saveconfigstd:3,scalar:3,scratch:3,screenenviron:3,script_nam:3,script_path:3,search:[0,3],search_known_error:3,search_templ:0,second:[0,3,10],section:[3,6,10,15],secur:15,see:[0,3,4,16,20],seen:3,select:[3,14],self:[0,3],semant:3,sep:[3,10],separ:3,seq1:3,seq2:3,seq:3,seqiter:3,sequenc:[3,4],server:[3,15],servic:21,session:[0,3],set:[0,3,6,7,10,12,16,17,21],set_a_product:3,set_application_env:3,set_attr:4,set_consol:4,set_cpp_env:3,set_cursor_posit:4,set_env:[3,10],set_env_build:10,set_env_launch:10,set_full_environ:3,set_local_valu:0,set_native_env:[3,10],set_product:3,set_python_libdir:3,set_salome_generic_product_env:3,set_salome_minimal_product_env:3,set_titl:4,set_user_config_fil:3,setcolorlevelnam:3,setconsoletextattribut:4,setlocal:3,setnotlocal:3,setpath:3,setstatu:3,setstream:3,settings_fil:0,setvalu:3,setwhi:3,sever:[0,10,16],shallow:3,shortcut:3,shortnam:3,should:[3,10,11],should_wrap:4,show:[0,3,8,13],show_command_log:3,show_desktop:3,show_full_path:3,show_in_editor:3,show_label:3,show_last_log:0,show_patch:[0,3,9],show_product_info:3,show_product_last_log:0,show_progress:3,show_warn:3,showinfo:3,shown:[3,8],sign:3,silent:[0,3],similar:3,simpl:[3,20,21],sinc:[0,3],site:0,size:[0,3],slogan:0,small:3,smart:3,smartcopi:3,smesh:3,softwar:15,some:3,someon:10,sometim:7,sommeil:3,soon:8,sort:0,sort_product:0,source_dir:0,source_packag:0,sourcepackag:0,sources:[7,15,20],sources_without_dev:7,space:3,special_path_separ:3,specif:[0,3,6,7,10,11,12,14,16,20],specifi:[3,6,10,11,12,15],splashscreen:12,split:3,src:[],src_root:[0,3],sre_pattern:[3,4],srsc:3,ssh:[0,6,12,15],ssh_connection_all_machin:0,stack:20,stackoverflow:3,start:[3,4,6,8,12],state:0,statu:[0,3],stderr:[0,3],stdin:0,stdout:[0,3,4],step:[0,3],stop:[0,8],stop_first_fail:8,store:[0,3,8,9,13,15,16],str:[0,3],str_in:3,str_num:3,str_of_length:0,str_out:3,stream:[0,3,4],streamopen:3,streamorfil:3,streamwrapp:4,strftime:[3,5],string:[0,3],stringio:3,strip:4,strorlist:3,structur:16,stuff:[3,12],style:[0,3,4],stylesheet:[0,3],sub:[0,3,16],subclass:3,subelement:3,subpackag:2,subprocess:3,subsect:10,subset:14,subst_dic:3,substitut:[0,3],substr:3,subtract:3,succe:0,success:[0,3,8],success_fail:0,successfulli:3,successfully_connect:0,suffici:10,suffix:[0,3],suit:17,suitabl:3,support:3,suppos:3,supposedli:3,suppress:[0,7],suppress_directori:0,sur:5,svn:[3,14],svn_extract:3,svn_info:15,symlink:3,syntax:[3,7],syss:3,system:2,tab:3,tabl:3,tabul:3,tag:[3,15],take:[0,3,7],taken:[3,10],tar:[0,14,18],tarfil:0,target:[0,3,6,10],target_dir:0,tcllibpath:3,template_fil:3,template_nam:0,templateset:0,temporari:0,term:3,termin:[0,3,4,8,13,21],test_bas:0,test_base_nam:3,test_config:3,test_grid:3,test_modul:2,test_nam:3,test_sess:3,testbas:3,testbase_bas:3,testbase_dir:3,testbase_nam:3,testbase_tag:3,testlogger1:5,testlogger_1:3,text:[0,3,4,20],text_or_uri:3,tgz:[14,18],thank:3,thei:[0,7,9,10,15],them:[4,15],thi:[0,3,4,6,8,9,10,11,12,14,15,16,17,21],thing:21,those:11,through:[3,6,10,12,13],thrown:3,time:[0,3,5,7,10,15,16],time_elaps:0,timedelta:3,timedelta_total_second:3,timeout:[0,3],timeout_status:3,tintin:3,tip:3,titl:[3,4],tklibpath:3,tmp:[0,3],tmp_working_dir:[0,3],tocolor:3,tocolor_ansitowin32:3,todai:0,todo:3,tofix:3,token:3,token_typ:3,token_valu:3,too:3,top:3,tosi:3,tostr:3,tosys:3,total:0,total_dur:0,total_second:3,tout:21,tparam:0,trace:[0,3,20],transform:[0,3],transpar:4,tree:3,treebuild:3,trust_root_dir:10,tty:4,tupl:[0,3],turn:3,tutori:3,two:[3,10],txt:3,type:[0,3,15],typeerror:3,unabl:3,unchang:3,unconditionali:[3,20],under:[0,3,17],underscor:[3,10],unicod:3,unit:8,unittest:3,unittestformatt:3,unitteststream:3,unix:3,unknown_status:3,unless:[4,15],updat:0,update:[0,3],update_config:0,update_hat_xml:3,update_jobs_states_list:0,update_pyconf:0,update_xml_fil:0,updatehatxml:3,upload:0,urllib2:3,urlopen:3,usag:[3,20],use:[0,6,7,8,9,10,11,12,15],use_mesa:[6,12],used:[0,3],useful:[3,20],user:[3,9,10,13,14],usernam:3,username:3,users:9,using:21,usr:[3,5,10],usual:[3,7,11,14,16,20],usualli:[14,18],utf:[3,10],util:[3,14,17],utilis:5,utiliti:3,utilssat:2,uts:3,val:0,valid:3,valmax:0,valmin:0,valu:[0,3,4,6,7,9,15,16],variabl:[0,3,10,11,21],vars:10,vcs:[7,14],verbos:3,verifi:[0,3,15],version:[0,3,10,11,14,16,17],via:3,viewer:9,vinai:3,virtual:[3,6],virtual_app:6,visualis:10,wai:[0,3,8,21],wait:0,want:[0,3,7,10],warn:[0,3,5,8,21],warning:[0,3,5],web:[9,13,16],week:0,welcom:3,welkom:3,well:3,were:3,what:[0,3,7],when:[0,3,6,10,15,16,21],whenev:3,where:[0,3,6,8,9,14],which:[0,3,4,10,11,16,21],white:[3,4],who:11,why:3,width:0,wiki:4,wikipedia:4,wil:10,win32:[2,3],winapi_test:4,wincolor:4,window:[3,4,10],winstyl:4,winterm:[2,3],with_children:8,with_commerci:[0,3],with_fath:8,with_install_dir:3,with_vc:[0,14],within:10,without:[3,9,15],without_dev:0,without_native_fix:0,without_properti:14,wmake:3,word:3,work:[0,3,9,14,15,16],workdir:[3,6,9,12,14,16,20,21],world:21,would:3,wrap:[3,4],wrap_stream:4,writabl:3,write:[0,3,4,21],write_all_result:0,write_all_source_fil:0,write_and_convert:4,write_back:3,write_cfgforpy_fil:3,write_env_fil:3,write_info:0,write_plain_text:4,write_report:3,write_result:0,write_test_margin:3,write_tre:3,write_xml_fil:0,writetostream:3,writevalu:3,written:21,www:3,xa4:3,xc2:3,xml:[0,3,21],xml_dir_path:0,xml_file:0,xml_history_path:0,xml_node_job:0,xmllogfil:[0,3],xmlmanag:2,xmlmgr:3,xmlname:0,xmlroot:3,xmltreebuild:3,xxx:[3,7,16],xxx_root_dir:3,xxx_src_dir:3,yacsgen:[0,3,11],yacsgen_root_dir:11,year:3,yellow:[3,4],yet:[3,20],yield:3,you:[0,3,6,7,10,12,15,17,21],your:[0,3,10,15,20,21],yourspecificnam:14,yve:3,yyy:16,yyyy:3,yyyymmdd_hhmmss:3,yyyymmdd_hhmmss_namecmd:3,zelaunch:12,zero:3,zerodivideerror:3},titles:["commands package","commands","src","src package","src.colorama package","src.example package","Command application","Command clean","Command compile","Command config","Command environ","Command generate","Command launcher","Command log","Command package","Command prepare","Configuration","Salome Tools","Installation","Release notes","Usage of SAlomeTools","Add a user custom command"],titleterms:{access:21,add:21,ansi:4,ansitowin32:4,applic:[0,6],application:16,architectur:3,avail:20,availabl:7,base:15,basic:21,build:20,catchall:3,check:0,clean:[0,7],code:17,colorama:4,coloringsat:3,command:[0,1,6,7,8,9,10,11,12,13,14,15,17,21],compil:[0,3,8,20],config:[0,9,21],configmanag:3,configur:[0,6,7,8,9,10,12,13,14,15,16],content:[0,3,4,5],custom:21,debug:[3,20],descript:[6,7,8,9,10,11,12,13,14,15,16],dev:15,develop:17,document:17,elementtre:3,environ:[0,3,10],essai_logging_1:5,essai_logging_2:5,exampl:[5,21],exceptionsat:3,fileenviron:3,find_dupl:0,fork:3,gener:[0,11],get:20,git:15,hello:21,help:20,howto:21,init:0,initialis:4,installat:18,introduct:21,job:0,launcher:[0,12],list:[17,20],log:[0,13],logger:21,loggingsat:3,make:0,makeinstal:0,mode:15,modul:[0,3,4,5],note:[17,19],option:[3,7,20],other:21,packag:[0,3,4,5,14],patch:0,path:[6,7,8,9,13,14,15],prepar:[0,15,20],product:[3,20],products:16,profil:0,pyconf:3,quick:17,releas:[17,19],remark:[11,15],requir:21,returncod:3,run:0,salom:17,salome:20,salometool:[3,20,21],sat:20,script:0,section:16,shell:0,some:[6,7,8,9,13,14,15],sourc:[0,20],src:[2,3,4,5],start:17,submodul:[0,3,4,5],subpackag:3,svn:15,syntax:16,system:3,templat:[0,3],test:0,test_modul:3,tool:17,usage:[6,7,8,9,10,11,12,13,14,15,20],user:[16,21],utilssat:3,vars:16,vcs:15,verbos:20,win32:4,winterm:4,xmlmanag:3}})
\ No newline at end of file
index b4f36719277c9e387392b1be33f76fddad854cb1..a7a2b3ebd42c44b4f0a8374ddc2b59e62cf10429 100644 (file)
@@ -27,7 +27,7 @@
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
     <link rel="top" title="salomeTools 5.0.0dev documentation" href="index.html" />
-    <link rel="next" title="src" href="commands/apidoc/modules.html" />
+    <link rel="next" title="src" href="apidoc_src/modules.html" />
     <link rel="prev" title="Command generate" href="commands/generate.html" />
    
   <link rel="stylesheet" href="_static/custom.css" type="text/css" />
@@ -203,7 +203,7 @@ HELLO! WORLD!
 <ul>
   <li><a href="index.html">Documentation overview</a><ul>
       <li>Previous: <a href="commands/generate.html" title="previous chapter">Command generate</a></li>
-      <li>Next: <a href="commands/apidoc/modules.html" title="next chapter">src</a></li>
+      <li>Next: <a href="apidoc_src/modules.html" title="next chapter">src</a></li>
   </ul></li>
 </ul>
 </div>
diff --git a/doc/build/latex/Makefile b/doc/build/latex/Makefile
deleted file mode 100644 (file)
index d748006..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-# Makefile for Sphinx LaTeX output
-
-ALLDOCS = $(basename $(wildcard *.tex))
-ALLPDF = $(addsuffix .pdf,$(ALLDOCS))
-ALLDVI = $(addsuffix .dvi,$(ALLDOCS))
-
-# Prefix for archive names
-ARCHIVEPRREFIX =
-# Additional LaTeX options
-LATEXOPTS =
-# format: pdf or dvi
-FMT = pdf
-
-LATEX = latex
-PDFLATEX = pdflatex
-MAKEINDEX = makeindex
-
-all: $(ALLPDF)
-all-pdf: $(ALLPDF)
-all-dvi: $(ALLDVI)
-all-ps: all-dvi
-       for f in *.dvi; do dvips $$f; done
-
-all-pdf-ja:
-       for f in *.pdf *.png *.gif *.jpg *.jpeg; do extractbb $$f; done
-       for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
-       for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
-       for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
-       -for f in *.idx; do mendex -U -f -d "`basename $$f .idx`.dic" -s python.ist $$f; done
-       for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
-       for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
-       for f in *.dvi; do dvipdfmx $$f; done
-
-zip: all-$(FMT)
-       mkdir $(ARCHIVEPREFIX)docs-$(FMT)
-       cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT)
-       zip -q -r -9 $(ARCHIVEPREFIX)docs-$(FMT).zip $(ARCHIVEPREFIX)docs-$(FMT)
-       rm -r $(ARCHIVEPREFIX)docs-$(FMT)
-
-tar: all-$(FMT)
-       mkdir $(ARCHIVEPREFIX)docs-$(FMT)
-       cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT)
-       tar cf $(ARCHIVEPREFIX)docs-$(FMT).tar $(ARCHIVEPREFIX)docs-$(FMT)
-       rm -r $(ARCHIVEPREFIX)docs-$(FMT)
-
-gz: tar
-       gzip -9 < $(ARCHIVEPREFIX)docs-$(FMT).tar > $(ARCHIVEPREFIX)docs-$(FMT).tar.gz
-
-bz2: tar
-       bzip2 -9 -k $(ARCHIVEPREFIX)docs-$(FMT).tar
-
-xz: tar
-       xz -9 -k $(ARCHIVEPREFIX)docs-$(FMT).tar
-
-# The number of LaTeX runs is quite conservative, but I don't expect it
-# to get run often, so the little extra time won't hurt.
-%.dvi: %.tex
-       $(LATEX) $(LATEXOPTS) '$<'
-       $(LATEX) $(LATEXOPTS) '$<'
-       $(LATEX) $(LATEXOPTS) '$<'
-       -$(MAKEINDEX) -s python.ist '$(basename $<).idx'
-       $(LATEX) $(LATEXOPTS) '$<'
-       $(LATEX) $(LATEXOPTS) '$<'
-
-%.pdf: %.tex
-       $(PDFLATEX) $(LATEXOPTS) '$<'
-       $(PDFLATEX) $(LATEXOPTS) '$<'
-       $(PDFLATEX) $(LATEXOPTS) '$<'
-       -$(MAKEINDEX) -s python.ist '$(basename $<).idx'
-       $(PDFLATEX) $(LATEXOPTS) '$<'
-       $(PDFLATEX) $(LATEXOPTS) '$<'
-
-clean:
-       rm -f *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.pla *.ps *.tar *.tar.gz *.tar.bz2 *.tar.xz $(ALLPDF) $(ALLDVI)
-
-.PHONY: all all-pdf all-dvi all-ps clean zip tar gz bz2 xz
-.PHONY: all-pdf-ja
-
diff --git a/doc/build/latex/python.ist b/doc/build/latex/python.ist
deleted file mode 100644 (file)
index 9ffa0f9..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-line_max 100
-headings_flag 1
-heading_prefix "  \\bigletter "
-
-preamble "\\begin{theindex}
-\\def\\bigletter#1{{\\Large\\sffamily#1}\\nopagebreak\\vspace{1mm}}
-
-"
-
-symhead_positive "{Symbols}"
-numhead_positive "{Numbers}"
diff --git a/doc/build/latex/salomeTools.tex b/doc/build/latex/salomeTools.tex
deleted file mode 100644 (file)
index 0f264cd..0000000
+++ /dev/null
@@ -1,8698 +0,0 @@
-% Generated by Sphinx.
-\def\sphinxdocclass{report}
-\newif\ifsphinxKeepOldNames \sphinxKeepOldNamestrue
-\documentclass[a4paper,10pt,english]{sphinxmanual}
-\usepackage{iftex}
-
-\ifPDFTeX
-  \usepackage[utf8]{inputenc}
-\fi
-\ifdefined\DeclareUnicodeCharacter
-  \DeclareUnicodeCharacter{00A0}{\nobreakspace}
-\fi
-\usepackage{cmap}
-\usepackage[T1]{fontenc}
-\usepackage{amsmath,amssymb,amstext}
-\usepackage{babel}
-\usepackage{times}
-\usepackage[Bjarne]{fncychap}
-\usepackage{longtable}
-\usepackage{sphinx}
-\usepackage{multirow}
-\usepackage{eqparbox}
-
-
-\addto\captionsenglish{\renewcommand{\figurename}{Fig.\@ }}
-\addto\captionsenglish{\renewcommand{\tablename}{Table }}
-\SetupFloatingEnvironment{literal-block}{name=Listing }
-
-\addto\extrasenglish{\def\pageautorefname{page}}
-
-\setcounter{tocdepth}{1}
-
-
-\title{salomeTools Documentation}
-\date{Apr 27, 2018}
-\release{5.0.0dev}
-\author{CEA DEN/DANS/DM2S/STMF/LGLS}
-\newcommand{\sphinxlogo}{}
-\renewcommand{\releasename}{Release}
-\makeindex
-
-\makeatletter
-\def\PYG@reset{\let\PYG@it=\relax \let\PYG@bf=\relax%
-    \let\PYG@ul=\relax \let\PYG@tc=\relax%
-    \let\PYG@bc=\relax \let\PYG@ff=\relax}
-\def\PYG@tok#1{\csname PYG@tok@#1\endcsname}
-\def\PYG@toks#1+{\ifx\relax#1\empty\else%
-    \PYG@tok{#1}\expandafter\PYG@toks\fi}
-\def\PYG@do#1{\PYG@bc{\PYG@tc{\PYG@ul{%
-    \PYG@it{\PYG@bf{\PYG@ff{#1}}}}}}}
-\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+\PYG@do{#2}}
-
-\expandafter\def\csname PYG@tok@gd\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}}
-\expandafter\def\csname PYG@tok@gu\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}}
-\expandafter\def\csname PYG@tok@gt\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}}
-\expandafter\def\csname PYG@tok@gs\endcsname{\let\PYG@bf=\textbf}
-\expandafter\def\csname PYG@tok@gr\endcsname{\def\PYG@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}}
-\expandafter\def\csname PYG@tok@cm\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}}
-\expandafter\def\csname PYG@tok@vg\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}}
-\expandafter\def\csname PYG@tok@vi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}}
-\expandafter\def\csname PYG@tok@vm\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}}
-\expandafter\def\csname PYG@tok@mh\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
-\expandafter\def\csname PYG@tok@cs\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}\def\PYG@bc##1{\setlength{\fboxsep}{0pt}\colorbox[rgb]{1.00,0.94,0.94}{\strut ##1}}}
-\expandafter\def\csname PYG@tok@ge\endcsname{\let\PYG@it=\textit}
-\expandafter\def\csname PYG@tok@vc\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}}
-\expandafter\def\csname PYG@tok@il\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
-\expandafter\def\csname PYG@tok@go\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.20,0.20,0.20}{##1}}}
-\expandafter\def\csname PYG@tok@cp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
-\expandafter\def\csname PYG@tok@gi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}}
-\expandafter\def\csname PYG@tok@gh\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}}
-\expandafter\def\csname PYG@tok@ni\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.84,0.33,0.22}{##1}}}
-\expandafter\def\csname PYG@tok@nl\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.13,0.44}{##1}}}
-\expandafter\def\csname PYG@tok@nn\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}}
-\expandafter\def\csname PYG@tok@no\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.38,0.68,0.84}{##1}}}
-\expandafter\def\csname PYG@tok@na\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
-\expandafter\def\csname PYG@tok@nb\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
-\expandafter\def\csname PYG@tok@nc\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}}
-\expandafter\def\csname PYG@tok@nd\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.33,0.33,0.33}{##1}}}
-\expandafter\def\csname PYG@tok@ne\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
-\expandafter\def\csname PYG@tok@nf\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.49}{##1}}}
-\expandafter\def\csname PYG@tok@si\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.44,0.63,0.82}{##1}}}
-\expandafter\def\csname PYG@tok@s2\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
-\expandafter\def\csname PYG@tok@nt\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.45}{##1}}}
-\expandafter\def\csname PYG@tok@nv\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}}
-\expandafter\def\csname PYG@tok@s1\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
-\expandafter\def\csname PYG@tok@dl\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
-\expandafter\def\csname PYG@tok@ch\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}}
-\expandafter\def\csname PYG@tok@m\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
-\expandafter\def\csname PYG@tok@gp\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}}
-\expandafter\def\csname PYG@tok@sh\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
-\expandafter\def\csname PYG@tok@ow\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
-\expandafter\def\csname PYG@tok@sx\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}}
-\expandafter\def\csname PYG@tok@bp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
-\expandafter\def\csname PYG@tok@c1\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}}
-\expandafter\def\csname PYG@tok@fm\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.49}{##1}}}
-\expandafter\def\csname PYG@tok@o\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
-\expandafter\def\csname PYG@tok@kc\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
-\expandafter\def\csname PYG@tok@c\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}}
-\expandafter\def\csname PYG@tok@mf\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
-\expandafter\def\csname PYG@tok@err\endcsname{\def\PYG@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}}
-\expandafter\def\csname PYG@tok@mb\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
-\expandafter\def\csname PYG@tok@ss\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.32,0.47,0.09}{##1}}}
-\expandafter\def\csname PYG@tok@sr\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.14,0.33,0.53}{##1}}}
-\expandafter\def\csname PYG@tok@mo\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
-\expandafter\def\csname PYG@tok@kd\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
-\expandafter\def\csname PYG@tok@mi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
-\expandafter\def\csname PYG@tok@kn\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
-\expandafter\def\csname PYG@tok@cpf\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}}
-\expandafter\def\csname PYG@tok@kr\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
-\expandafter\def\csname PYG@tok@s\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
-\expandafter\def\csname PYG@tok@kp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
-\expandafter\def\csname PYG@tok@w\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}}
-\expandafter\def\csname PYG@tok@kt\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.56,0.13,0.00}{##1}}}
-\expandafter\def\csname PYG@tok@sc\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
-\expandafter\def\csname PYG@tok@sb\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
-\expandafter\def\csname PYG@tok@sa\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
-\expandafter\def\csname PYG@tok@k\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
-\expandafter\def\csname PYG@tok@se\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
-\expandafter\def\csname PYG@tok@sd\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
-
-\def\PYGZbs{\char`\\}
-\def\PYGZus{\char`\_}
-\def\PYGZob{\char`\{}
-\def\PYGZcb{\char`\}}
-\def\PYGZca{\char`\^}
-\def\PYGZam{\char`\&}
-\def\PYGZlt{\char`\<}
-\def\PYGZgt{\char`\>}
-\def\PYGZsh{\char`\#}
-\def\PYGZpc{\char`\%}
-\def\PYGZdl{\char`\$}
-\def\PYGZhy{\char`\-}
-\def\PYGZsq{\char`\'}
-\def\PYGZdq{\char`\"}
-\def\PYGZti{\char`\~}
-% for compatibility with earlier versions
-\def\PYGZat{@}
-\def\PYGZlb{[}
-\def\PYGZrb{]}
-\makeatother
-
-\renewcommand\PYGZsq{\textquotesingle}
-
-\begin{document}
-
-\maketitle
-\tableofcontents
-\phantomsection\label{index::doc}\clearpage
-
-
-\noindent{\hspace*{\fill}\scalebox{1.000000}{\sphinxincludegraphics{{sat_about}.png}}\hspace*{\fill}}
-
-\begin{notice}{warning}{Warning:}
-This documentation is under construction.
-\end{notice}
-
-The \textbf{Sa}lome\textbf{T}ools (sat) is a suite of commands
-that can be used to perform operations on \href{http://www.salome-platform.org}{SALOME}\footnote[1]{\sphinxAtStartFootnote%
-\nolinkurl{http://www.salome-platform.org}
-}.
-
-For example, sat allows you to compile SALOME's codes
-(prerequisites, products)
-create application, run tests, create package, etc.
-
-This utility code is a set of \href{https://docs.python.org/2.7}{Python}\footnote[2]{\sphinxAtStartFootnote%
-\nolinkurl{https://docs.python.org/2.7}
-} scripts files.
-
-Find a pdf version of this documentation
-
-
-\chapter{Quick start}
-\label{index:quick-start}\label{index:salome-tools}
-
-\section{Installation}
-\label{installation_of_sat:installation}\label{installation_of_sat::doc}
-Usually user could find (and use) command \textbf{sat} directly after a `detar' installation of SALOME.
-
-\begin{Verbatim}[commandchars=\\\{\}]
-tar \PYGZhy{}xf .../SALOME\PYGZus{}xx.tgz
-\PYG{n+nb}{cd} SALOME\PYGZus{}xx
-ls \PYGZhy{}l sat      \PYG{c+c1}{\PYGZsh{} sat \PYGZhy{}\PYGZgt{} salomeTools/sat}
-\end{Verbatim}
-
-Python package (scripts of salomeTools) actually remains in directory \emph{salomeTools}.
-
-
-\section{Configuration}
-\label{configuration:configuration}\label{configuration::doc}
-\emph{salomeTools} uses files to store its configuration parameters.
-
-There are several configuration files which are loaded by salomeTools in a specific order.
-When all the files are loaded a \emph{config} object is created.
-Then, this object is passed to all command scripts.
-
-
-\subsection{Syntax}
-\label{configuration:syntax}
-The configuration files use a python-like structure format
-(see \href{http://www.red-dove.com/config-doc/}{config module}\footnote[3]{\sphinxAtStartFootnote%
-\nolinkurl{http://www.red-dove.com/config-doc/}
-} for a complete description).
-\begin{itemize}
-\item {} 
-\textbf{\{\}} define a dictionary,
-
-\item {} 
-\textbf{{[}{]}} define a list,
-
-\item {} 
-\textbf{@} can be used to include a file,
-
-\item {} 
-\textbf{\$prefix} reference to another parameter (ex: \sphinxcode{\$PRODUCT.name}),
-
-\item {} 
-\textbf{\#} comments.
-
-\end{itemize}
-
-\begin{notice}{note}{Note:}
-in this documentation a reference to a configuration parameter will be noted \sphinxcode{XXX.YYY}.
-\end{notice}
-
-
-\subsection{Description}
-\label{configuration:description}
-
-\subsubsection{VARS section}
-\label{configuration:vars-section}\label{configuration:id1}
-\begin{DUlineblock}{0em}
-\item[] This section is dynamically created by salomeTools at run time.
-\item[] It contains information about the environment: date, time, OS, architecture etc.
-\end{DUlineblock}
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+c1}{\PYGZsh{} to get the current setting}
-\PYG{n}{sat} \PYG{n}{config} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{value} \PYG{n}{VARS}
-\end{Verbatim}
-
-
-\subsubsection{PRODUCTS section}
-\label{configuration:products-section}
-\begin{DUlineblock}{0em}
-\item[] This section is defined in the product file.
-\item[] It contains instructions on how to build a version of SALOME (list of prerequisites-products and versions)
-\end{DUlineblock}
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+c1}{\PYGZsh{} to get the current setting}
-\PYG{n}{sat} \PYG{n}{config} \PYG{n}{SALOME}\PYG{o}{\PYGZhy{}}\PYG{n}{xx} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{value} \PYG{n}{PRODUCTS}
-\end{Verbatim}
-
-
-\subsubsection{APPLICATION section}
-\label{configuration:application-section}
-\begin{DUlineblock}{0em}
-\item[] This section is optional, it is also defined in the product file.
-\item[] It gives additional parameters to create an application based on SALOME, as versions of products to use.
-\end{DUlineblock}
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+c1}{\PYGZsh{} to get the current setting}
-\PYG{n}{sat} \PYG{n}{config} \PYG{n}{SALOME}\PYG{o}{\PYGZhy{}}\PYG{n}{xx} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{value} \PYG{n}{APPLICATION}
-\end{Verbatim}
-
-
-\subsubsection{USER section}
-\label{configuration:user-section}\label{configuration:id2}
-This section is defined by the user configuration file,
-\sphinxcode{\textasciitilde{}/.salomeTools/salomeTools.pyconf}.
-
-The \sphinxcode{USER} section defines some parameters (not exhaustive):
-\begin{itemize}
-\item {} 
-\textbf{workDir} :
-\begin{quote}
-
-\begin{DUlineblock}{0em}
-\item[] The working directory.
-\item[] Each product will be usually installed here (in sub-directories).
-\end{DUlineblock}
-\end{quote}
-
-\item {} 
-\textbf{browser} : The web browser to use (\emph{firefox}).
-
-\item {} 
-\textbf{editor} : The editor to use (\emph{vi, pluma}).
-
-\item {} 
-and other user preferences.
-
-\end{itemize}
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+c1}{\PYGZsh{} to get the current setting}
-\PYG{n}{sat} \PYG{n}{config} \PYG{n}{SALOME}\PYG{o}{\PYGZhy{}}\PYG{n}{xx} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{value} \PYG{n}{USER}
-\end{Verbatim}
-\clearpage
-
-\section{Usage of SAlomeTools}
-\label{usage_of_sat:svn}\label{usage_of_sat:usage-of-salometools}\label{usage_of_sat::doc}
-
-\subsection{Usage}
-\label{usage_of_sat:usage}
-sat usage is a Command Line Interface (\href{https://en.wikipedia.org/wiki/Command-line\_interface}{CLI}\footnote[4]{\sphinxAtStartFootnote%
-\nolinkurl{https://en.wikipedia.org/wiki/Command-line\_interface}
-}).
-
-\begin{Verbatim}[commandchars=\\\{\}]
-sat \PYG{o}{[}generic\PYGZus{}options\PYG{o}{]} \PYG{o}{[}command\PYG{o}{]} \PYG{o}{[}product\PYG{o}{]} \PYG{o}{[}command\PYGZus{}options\PYG{o}{]}
-\end{Verbatim}
-
-
-\subsubsection{Options of sat}
-\label{usage_of_sat:options-of-sat}
-Useful \emph{not exhaustive} generic options of \emph{sat} CLI.
-
-
-\paragraph{\emph{--help or -h}}
-\label{usage_of_sat:help-or-h}
-Get help as simple text.
-
-\begin{Verbatim}[commandchars=\\\{\}]
-sat \PYGZhy{}\PYGZhy{}help          \PYG{c+c1}{\PYGZsh{} get the list of existing commands}
-sat \PYGZhy{}\PYGZhy{}help compile  \PYG{c+c1}{\PYGZsh{} get the help on a specific command \PYGZsq{}compile\PYGZsq{}}
-\end{Verbatim}
-
-
-\paragraph{\emph{--debug or -g}}
-\label{usage_of_sat:debug-or-g}
-Execution in debug mode allows to see more trace and \emph{stack} if an exception is raised.
-
-
-\paragraph{\emph{--verbose or -v}}
-\label{usage_of_sat:verbose-or-v}
-Change verbosity level (default is 3).
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+c1}{\PYGZsh{} for product \PYGZsq{}SALOME\PYGZus{}xx\PYGZsq{} for example}
-\PYG{c+c1}{\PYGZsh{} execute compile command in debug mode with trace level 4}
-sat \PYGZhy{}g \PYGZhy{}v \PYG{l+m}{4} compile SALOME\PYGZus{}xx
-\end{Verbatim}
-
-
-\subsection{Build a SALOME product}
-\label{usage_of_sat:build-a-salome-product}
-
-\subsubsection{Get the list of available products}
-\label{usage_of_sat:get-the-list-of-available-products}
-To get the list of the current available products in your context:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-sat config \PYGZhy{}\PYGZhy{}list
-\end{Verbatim}
-
-
-\subsubsection{Prepare sources of a product}
-\label{usage_of_sat:prepare-sources-of-a-product}
-To prepare (get) \emph{all} the sources of a product (\emph{SALOME\_xx} for example):
-
-\begin{Verbatim}[commandchars=\\\{\}]
-sat prepare SALOME\PYGZus{}xx
-\end{Verbatim}
-
-\begin{DUlineblock}{0em}
-\item[] The sources are usually copied in directories
-\item[] \emph{\$USER.workDir + SALOME\_xx... + SOURCES + \$PRODUCT.name}
-\end{DUlineblock}
-
-
-\subsubsection{Compile SALOME}
-\label{usage_of_sat:compile-salome}
-To compile products:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+c1}{\PYGZsh{} compile all prerequisites/products}
-sat compile SALOME\PYGZus{}xx
-
-\PYG{c+c1}{\PYGZsh{} compile only 2 products (KERNEL and SAMPLES), if not done yet}
-sat compile SALOME\PYGZus{}xx \PYGZhy{}\PYGZhy{}products KERNEL,SAMPLES
-
-\PYG{c+c1}{\PYGZsh{} compile only 2 products, unconditionaly}
-sat compile SALOME\PYGZus{}xx \PYGZhy{}\PYGZhy{}\PYGZhy{}products SAMPLES \PYGZhy{}\PYGZhy{}clean\PYGZus{}all
-\end{Verbatim}
-
-\begin{DUlineblock}{0em}
-\item[] The products are usually build in the directories
-\item[] \emph{\$USER.workDir + SALOME\_xx... + BUILD + \$PRODUCT.name}
-\item[] 
-\item[] The products are usually installed in the directories
-\item[] \emph{\$USER.workDir + SALOME\_xx... + INSTALL + \$PRODUCT.name}
-\end{DUlineblock}
-
-
-\chapter{List of Commands}
-\label{index:list-of-commands}\clearpage
-
-\section{Command config}
-\label{commands/config:svn}\label{commands/config:command-config}\label{commands/config::doc}
-
-\subsection{Description}
-\label{commands/config:description}
-The \textbf{config} command manages sat configuration.
-It allows display, manipulation and operation on configuration files
-
-
-\subsection{Usage}
-\label{commands/config:usage}\begin{itemize}
-\item {} 
-Edit the user personal configuration file \sphinxcode{\$HOME/.salomeTools/SAT.pyconf}. It is used to store the user personal choices, like the favorite editor, browser, pdf viewer:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{config} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{edit}
-\end{Verbatim}
-
-\item {} 
-List the available applications (they come from the sat projects defined in \sphinxcode{data/local.pyconf}:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{config} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n+nb}{list}
-\end{Verbatim}
-
-\item {} 
-Edit the configuration of an application:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{config} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{edit}
-\end{Verbatim}
-
-\item {} 
-Copy an application configuration file into the user personal directory:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{config} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{copy} \PYG{p}{[}\PYG{n}{new\PYGZus{}name}\PYG{p}{]}
-\end{Verbatim}
-
-\item {} 
-\begin{DUlineblock}{0em}
-\item[] Print the value of a configuration parameter.
-\item[] Use the automatic completion to get recursively the parameter names.
-\item[] Use \emph{--no\_label} option to get \emph{only} the value, \emph{without} label (useful in automatic scripts).
-\item[] Examples (with \emph{SALOME-xx} as \emph{SALOME-8.4.0} ):
-\end{DUlineblock}
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+c1}{\PYGZsh{} sat config \PYGZhy{}\PYGZhy{}value \PYGZlt{}parameter\PYGZus{}path\PYGZgt{}}
-sat config \PYGZhy{}\PYGZhy{}value .         \PYG{c+c1}{\PYGZsh{} all the configuration}
-sat config \PYGZhy{}\PYGZhy{}value LOCAL
-sat config \PYGZhy{}\PYGZhy{}value LOCAL.workdir
-
-\PYG{c+c1}{\PYGZsh{} sat config \PYGZlt{}application\PYGZgt{} \PYGZhy{}\PYGZhy{}value \PYGZlt{}parameter\PYGZus{}path\PYGZgt{}}
-sat config SALOME\PYGZhy{}xx \PYGZhy{}\PYGZhy{}value APPLICATION.workdir
-sat config SALOME\PYGZhy{}xx \PYGZhy{}\PYGZhy{}no\PYGZus{}label \PYGZhy{}\PYGZhy{}value APPLICATION.workdir
-\end{Verbatim}
-
-\item {} 
-\begin{DUlineblock}{0em}
-\item[] Print in one-line-by-value mode the value of a configuration parameter,
-\item[] with its source \emph{expression}, if any.
-\item[] This is a debug mode, useful for developers.
-\item[] Prints the parameter path, the source expression if any, and the final value:
-\end{DUlineblock}
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{config} \PYG{n}{SALOME}\PYG{o}{\PYGZhy{}}\PYG{n}{xx} \PYG{o}{\PYGZhy{}}\PYG{n}{g} \PYG{n}{USER}
-\end{Verbatim}
-
-\begin{notice}{note}{Note:}
-And so, \emph{not only for fun}, to get \textbf{all expressions} of configuration
-
-\begin{Verbatim}[commandchars=\\\{\}]
-sat config SALOME\PYGZhy{}xx \PYGZhy{}g . \PYG{p}{\textbar{}} grep \PYGZhy{}e \PYG{l+s+s2}{\PYGZdq{}\PYGZhy{}\PYGZhy{}\PYGZgt{}\PYGZdq{}}
-\end{Verbatim}
-\end{notice}
-
-\item {} 
-Print the patches that are applied:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{config} \PYG{n}{SALOME}\PYG{o}{\PYGZhy{}}\PYG{n}{xx} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{show\PYGZus{}patchs}
-\end{Verbatim}
-
-\item {} 
-Get information on a product configuration:
-
-\end{itemize}
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+c1}{\PYGZsh{} sat config \PYGZlt{}application\PYGZgt{} \PYGZhy{}\PYGZhy{}info \PYGZlt{}product\PYGZgt{}}
-sat config SALOME\PYGZhy{}xx \PYGZhy{}\PYGZhy{}info KERNEL
-sat config SALOME\PYGZhy{}xx \PYGZhy{}\PYGZhy{}info qt
-\end{Verbatim}
-
-
-\subsection{Some useful configuration pathes}
-\label{commands/config:some-useful-configuration-pathes}
-Exploring a current configuration.
-\begin{itemize}
-\item {} 
-\textbf{PATHS}: To get list of directories where to find files.
-
-\item {} 
-\textbf{USER}: To get user preferences (editor, pdf viewer, web browser, default working dir).
-
-\end{itemize}
-
-sat commands:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{config} \PYG{n}{SALOME}\PYG{o}{\PYGZhy{}}\PYG{n}{xx} \PYG{o}{\PYGZhy{}}\PYG{n}{v} \PYG{n}{PATHS}
-\PYG{n}{sat} \PYG{n}{config} \PYG{n}{SALOME}\PYG{o}{\PYGZhy{}}\PYG{n}{xx} \PYG{o}{\PYGZhy{}}\PYG{n}{v} \PYG{n}{USERS}
-\end{Verbatim}
-\clearpage
-
-\section{Command prepare}
-\label{commands/prepare:svn}\label{commands/prepare:command-prepare}\label{commands/prepare::doc}
-
-\subsection{Description}
-\label{commands/prepare:description}
-The \textbf{prepare} command brings the sources of an application in the \emph{sources
-application directory}, in order to compile them with the compile command.
-
-The sources can be prepared from VCS software (\emph{cvs, svn, git}), an archive or a directory.
-
-\begin{notice}{warning}{Warning:}
-When sat prepares a product, it first removes the
-existing directory, except if the development mode is activated.
-When you are working on a product, you need to declare in
-the application configuration this product in \textbf{dev} mode.
-\end{notice}
-
-
-\subsection{Remarks}
-\label{commands/prepare:remarks}
-
-\subsubsection{VCS bases (git, svn, cvs)}
-\label{commands/prepare:vcs-bases-git-svn-cvs}
-The \emph{prepare} command does not manage authentication on the cvs server.
-For example, to prepare modules from a cvs server, you first need to login once.
-
-To avoid typing a password for each product,
-you may use a ssh key with passphrase, or store your password
-(in .cvspass or .gitconfig files).
-If you have security concerns, it is also possible to use
-a bash agent and type your password only once.
-
-
-\subsubsection{Dev mode}
-\label{commands/prepare:dev-mode}
-By default \emph{prepare} uses \emph{export} mode: it creates an image
-of the sources, corresponding to the tag or branch specified,
-without any link to the VCS base.
-To perform a \emph{checkout} (svn, cvs) or a \emph{git clone} (git),
-you need to declare the product in dev mode in your application configuration:
-edit the application configuration file (pyconf) and modify the product declaration:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-sat config \PYGZlt{}application\PYGZgt{} \PYGZhy{}e
-\PYG{c+c1}{\PYGZsh{} and edit the product section:}
-\PYG{c+c1}{\PYGZsh{}   \PYGZlt{}product\PYGZgt{} : \PYGZob{}tag : \PYGZdq{}my\PYGZus{}tag\PYGZdq{}, dev : \PYGZdq{}yes\PYGZdq{}, debug : \PYGZdq{}yes\PYGZdq{}\PYGZcb{}}
-\end{Verbatim}
-
-The first time you will execute the \emph{sat prepare} command,
-your module will be downloaded in \emph{checkout} mode
-(inside the SOURCES directory of the application.
-Then, you can develop in this repository, and finally push
-them in the base when they are ready.
-If you type during the development process by mistake
-a \emph{sat prepare} command, the sources in dev mode will
-not be altered/removed (Unless you use -f option)
-
-
-\subsection{Usage}
-\label{commands/prepare:usage}\begin{itemize}
-\item {} 
-Prepare the sources of a complete application in SOURCES directory (all products):
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{prepare} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}}
-\end{Verbatim}
-
-\item {} 
-Prepare only some modules:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{prepare} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}}  \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{products} \PYG{o}{\PYGZlt{}}\PYG{n}{product1}\PYG{o}{\PYGZgt{}}\PYG{p}{,}\PYG{o}{\PYGZlt{}}\PYG{n}{product2}\PYG{o}{\PYGZgt{}} \PYG{o}{.}\PYG{o}{.}\PYG{o}{.}
-\end{Verbatim}
-
-\item {} 
-Use --force to force to prepare the products in development mode
-(this will remove the sources and do a new clone/checkout):
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{prepare} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{force}
-\end{Verbatim}
-
-\item {} 
-Use --force\_patch to force to apply patch to the products
-in development mode (otherwise they are not applied):
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{prepare} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{force\PYGZus{}patch}
-\end{Verbatim}
-
-\end{itemize}
-
-
-\subsection{Some useful configuration pathes}
-\label{commands/prepare:some-useful-configuration-pathes}
-Command \emph{sat prepare} uses the \emph{pyconf file configuration} of each product to know how to get the sources.
-
-\begin{notice}{note}{Note:}
-to verify configuration of a product, and get name of this \emph{pyconf files configuration}
-
-\begin{Verbatim}[commandchars=\\\{\}]
-sat config \PYGZlt{}application\PYGZgt{} \PYGZhy{}\PYGZhy{}info \PYGZlt{}product\PYGZgt{}
-\end{Verbatim}
-\end{notice}
-\begin{itemize}
-\item {} 
-\textbf{get\_method}: the method to use to prepare the module, possible values are cvs, git, archive, dir.
-
-\item {} 
-\textbf{git\_info} : (used if get\_method = git) information to prepare sources from git.
-
-\item {} 
-\textbf{svn\_info} : (used if get\_method = svn) information to prepare sources from cvs.
-
-\item {} 
-\textbf{cvs\_info} : (used if get\_method = cvs) information to prepare sources from cvs.
-
-\item {} 
-\textbf{archive\_info} : (used if get\_method = archive) the path to the archive.
-
-\item {} 
-\textbf{dir\_info} : (used if get\_method = dir) the directory with the sources.
-
-\end{itemize}
-\clearpage
-
-\section{Command compile}
-\label{commands/compile:svn}\label{commands/compile:command-compile}\label{commands/compile::doc}
-
-\subsection{Description}
-\label{commands/compile:description}
-The \textbf{compile} command allows compiling the products of a \href{http://www.salome-platform.org}{SALOME}\footnote[5]{\sphinxAtStartFootnote%
-\nolinkurl{http://www.salome-platform.org}
-} application.
-
-
-\subsection{Usage}
-\label{commands/compile:usage}\begin{itemize}
-\item {} 
-Compile a complete application:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n+nb}{compile} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}}
-\end{Verbatim}
-
-\item {} 
-Compile only some products:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n+nb}{compile} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{products} \PYG{o}{\PYGZlt{}}\PYG{n}{product1}\PYG{o}{\PYGZgt{}}\PYG{p}{,}\PYG{o}{\PYGZlt{}}\PYG{n}{product2}\PYG{o}{\PYGZgt{}} \PYG{o}{.}\PYG{o}{.}\PYG{o}{.}
-\end{Verbatim}
-
-\item {} 
-Use \emph{sat -t} to duplicate the logs in the terminal (by default the log are stored and displayed with \emph{sat log} command):
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{o}{\PYGZhy{}}\PYG{n}{t} \PYG{n+nb}{compile} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{products} \PYG{o}{\PYGZlt{}}\PYG{n}{product1}\PYG{o}{\PYGZgt{}}
-\end{Verbatim}
-
-\item {} 
-Compile a module and its dependencies:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n+nb}{compile} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{products} \PYG{n}{med} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{with\PYGZus{}fathers}
-\end{Verbatim}
-
-\item {} 
-Compile a module and the modules depending on it (for example plugins):
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n+nb}{compile} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{products} \PYG{n}{med} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{with\PYGZus{}children}
-\end{Verbatim}
-
-\item {} 
-Clean the build and install directories before starting compilation:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n+nb}{compile} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{products} \PYG{n}{GEOM}  \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{clean\PYGZus{}all}
-\end{Verbatim}
-
-\begin{notice}{note}{Note:}
-\begin{DUlineblock}{0em}
-\item[] a warning will be shown if option \emph{--products} is missing
-\item[] (as it will clean everything)
-\end{DUlineblock}
-\end{notice}
-
-\item {} 
-Clean only the install directories before starting compilation:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n+nb}{compile} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{clean\PYGZus{}install}
-\end{Verbatim}
-
-\item {} 
-Add options for make:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n+nb}{compile} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{products} \PYG{o}{\PYGZlt{}}\PYG{n}{product}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{make\PYGZus{}flags} \PYG{o}{\PYGZlt{}}\PYG{n}{flags}\PYG{o}{\PYGZgt{}}
-\end{Verbatim}
-
-\item {} 
-Use the \emph{--check} option to execute the unit tests after compilation:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n+nb}{compile} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{check}
-\end{Verbatim}
-
-\item {} 
-Remove the build directory after successful compilation (some build directory like qt are big):
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n+nb}{compile} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{products} \PYG{n}{qt} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{clean\PYGZus{}build\PYGZus{}after}
-\end{Verbatim}
-
-\item {} 
-Stop the compilation as soon as the compilation of a module fails:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n+nb}{compile} \PYG{o}{\PYGZlt{}}\PYG{n}{product}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{stop\PYGZus{}first\PYGZus{}fail}
-\end{Verbatim}
-
-\item {} 
-Do not compile, just show if products are installed or not, and where is the installation:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n+nb}{compile} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{show}
-\end{Verbatim}
-
-\end{itemize}
-
-
-\subsection{Some useful configuration pathes}
-\label{commands/compile:some-useful-configuration-pathes}
-The way to compile a product is defined in the \emph{pyconf file configuration}.
-The main options are:
-\begin{itemize}
-\item {} 
-\textbf{build\_source} : the method used to build the product (cmake/autotools/script)
-
-\item {} 
-\textbf{compil\_script} : the compilation script if build\_source is equal to ``script''
-
-\item {} 
-\textbf{cmake\_options} : additional options for cmake.
-
-\item {} 
-\textbf{nb\_proc} : number of jobs to use with make for this product.
-
-\end{itemize}
-\clearpage
-
-\section{Command launcher}
-\label{commands/launcher:svn}\label{commands/launcher:command-launcher}\label{commands/launcher::doc}
-
-\subsection{Description}
-\label{commands/launcher:description}
-The \textbf{launcher} command creates a SALOME launcher, a python script file to start \href{http://www.salome-platform.org}{SALOME}\footnote[6]{\sphinxAtStartFootnote%
-\nolinkurl{http://www.salome-platform.org}
-}.
-
-
-\subsection{Usage}
-\label{commands/launcher:usage}\begin{itemize}
-\item {} 
-Create a launcher:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{launcher} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}}
-\end{Verbatim}
-
-Generate a launcher in the application directory, i.e \sphinxcode{\$APPLICATION.workdir}.
-
-\item {} 
-Create a launcher with a given name (default name is \sphinxcode{APPLICATION.profile.launcher\_name})
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{launcher} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{name} \PYG{n}{ZeLauncher}
-\end{Verbatim}
-
-The launcher will be called \emph{ZeLauncher}.
-
-\item {} 
-Set a specific resources catalog:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{launcher} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}}  \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{catalog}  \PYG{o}{\PYGZlt{}}\PYG{n}{path} \PYG{n}{of} \PYG{n}{a} \PYG{n}{salome} \PYG{n}{resources} \PYG{n}{catalog}\PYG{o}{\PYGZgt{}}
-\end{Verbatim}
-
-Note that the catalog specified will be copied to the profile directory.
-
-\item {} 
-Generate the catalog for a list of machines:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{launcher} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{gencat} \PYG{o}{\PYGZlt{}}\PYG{n+nb}{list} \PYG{n}{of} \PYG{n}{machines}\PYG{o}{\PYGZgt{}}
-\end{Verbatim}
-
-This will create a catalog by querying each machine (memory, number of processor) with ssh.
-
-\item {} 
-Generate a mesa launcher (if mesa and llvm are parts of the application). Use this option only if you have to use salome through ssh and have problems with ssh X forwarding of OpengGL modules (like Paravis):
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{launcher} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{use\PYGZus{}mesa}
-\end{Verbatim}
-
-\end{itemize}
-
-
-\subsection{Configuration}
-\label{commands/launcher:configuration}
-Some useful configuration pathes:
-\begin{itemize}
-\item {} 
-\textbf{APPLICATION.profile}
-\begin{itemize}
-\item {} 
-\textbf{product} : the name of the profile product (the product in charge of holding the application stuff, like logos, splashscreen)
-
-\item {} 
-\textbf{launcher\_name} : the name of the launcher.
-
-\end{itemize}
-
-\end{itemize}
-\clearpage
-
-\section{Command application}
-\label{commands/application:svn}\label{commands/application::doc}\label{commands/application:command-application}
-
-\subsection{Description}
-\label{commands/application:description}
-The \textbf{application} command creates a virtual \href{http://www.salome-platform.org}{SALOME}\footnote[7]{\sphinxAtStartFootnote%
-\nolinkurl{http://www.salome-platform.org}
-} application.
-Virtual SALOME applications are used to start SALOME when distribution is needed.
-
-
-\subsection{Usage}
-\label{commands/application:usage}\begin{itemize}
-\item {} 
-Create an application:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{application} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}}
-\end{Verbatim}
-
-Create the virtual application directory in the salomeTool application directory \sphinxcode{\$APPLICATION.workdir}.
-
-\item {} 
-Give a name to the application:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{application} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{name} \PYG{o}{\PYGZlt{}}\PYG{n}{my\PYGZus{}application\PYGZus{}name}\PYG{o}{\PYGZgt{}}
-\end{Verbatim}
-
-\emph{Remark}: this option overrides the name given in the virtual\_app section of the configuration file \sphinxcode{\$APPLICATION.virtual\_app.name}.
-
-\item {} 
-Change the directory where the application is created:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{application} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{target} \PYG{o}{\PYGZlt{}}\PYG{n}{my\PYGZus{}application\PYGZus{}directory}\PYG{o}{\PYGZgt{}}
-\end{Verbatim}
-
-\item {} 
-Set a specific \href{http://www.salome-platform.org}{SALOME}\footnote[8]{\sphinxAtStartFootnote%
-\nolinkurl{http://www.salome-platform.org}
-} resources catalog (it will be used for the distribution of components on distant machines):
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{application} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{catalog} \PYG{o}{\PYGZlt{}}\PYG{n}{path\PYGZus{}to\PYGZus{}catalog}\PYG{o}{\PYGZgt{}}
-\end{Verbatim}
-
-Note that the catalog specified will be copied to the application directory.
-
-\item {} 
-Generate the catalog for a list of machines:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{application} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{gencat} \PYG{n}{machine1}\PYG{p}{,}\PYG{n}{machine2}\PYG{p}{,}\PYG{n}{machine3}
-\end{Verbatim}
-
-This will create a catalog by querying each machine through ssh protocol (memory, number of processor) with ssh.
-
-\item {} 
-Generate a mesa application (if mesa and llvm are parts of the application). Use this option only if you have to use salome through ssh and have problems with ssh X forwarding of OpengGL modules (like Paravis):
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{launcher} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{use\PYGZus{}mesa}
-\end{Verbatim}
-
-\end{itemize}
-
-
-\subsection{Some useful configuration pathes}
-\label{commands/application:some-useful-configuration-pathes}
-The virtual application can be configured with the virtual\_app section of the configutation file.
-\begin{itemize}
-\item {} 
-\textbf{APPLICATION.virtual\_app}
-\begin{itemize}
-\item {} 
-\textbf{name} : name of the launcher (to replace the default runAppli).
-
-\item {} 
-\textbf{application\_name} : (optional) the name of the virtual application directory, if missing the default value is \sphinxcode{\$name + \_appli}.
-
-\end{itemize}
-
-\end{itemize}
-\clearpage
-
-\section{Command log}
-\label{commands/log:svn}\label{commands/log:command-log}\label{commands/log::doc}
-
-\subsection{Description}
-\label{commands/log:description}
-The \textbf{log} command displays sat log in a web browser or in a terminal.
-
-
-\subsection{Usage}
-\label{commands/log:usage}\begin{itemize}
-\item {} 
-Show (in a web browser) the log of the commands corresponding to an application:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{log} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}}
-\end{Verbatim}
-
-\item {} 
-Show the log for commands that do not use any application:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{log}
-\end{Verbatim}
-
-\item {} 
-The --terminal (or -t) display the log directly in the terminal, through a \href{https://en.wikipedia.org/wiki/Command-line\_interface}{CLI}\footnote[9]{\sphinxAtStartFootnote%
-\nolinkurl{https://en.wikipedia.org/wiki/Command-line\_interface}
-} interactive menu:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{log} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{terminal}
-\end{Verbatim}
-
-\item {} 
-The --last option displays only the last command:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{log} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{last}
-\end{Verbatim}
-
-\item {} 
-To access the last compilation log in terminal mode, use --last\_terminal option:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{log} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{last\PYGZus{}terminal}
-\end{Verbatim}
-
-\item {} 
-The --clean (int) option erases the n older log files and print the number of remaining log files:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{log} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{clean} \PYG{l+m+mi}{50}
-\end{Verbatim}
-
-\end{itemize}
-
-
-\subsection{Some useful configuration pathes}
-\label{commands/log:some-useful-configuration-pathes}\begin{itemize}
-\item {} 
-\textbf{USER}
-\begin{itemize}
-\item {} 
-\textbf{browser} : The browser used to show the log (by default \emph{firefox}).
-
-\item {} 
-\textbf{log\_dir} : The directory used to store the log files.
-
-\end{itemize}
-
-\end{itemize}
-\clearpage
-
-\section{Command environ}
-\label{commands/environ:svn}\label{commands/environ:command-environ}\label{commands/environ::doc}
-
-\subsection{Description}
-\label{commands/environ:description}
-The \textbf{environ} command generates the environment files used
-to run and compile your application (as \href{http://www.salome-platform.org}{SALOME}\footnote[10]{\sphinxAtStartFootnote%
-\nolinkurl{http://www.salome-platform.org}
-} is an example).
-
-\begin{notice}{note}{Note:}
-these files are \textbf{not} required,
-salomeTool set the environment himself, when compiling.
-And so does the salome launcher.
-
-These files are useful when someone wants to check the environment.
-They could be used in debug mode to set the environment for \emph{gdb}.
-\end{notice}
-
-The configuration part at the end of this page explains how
-to specify the environment used by sat (at build or run time),
-and saved in some files by \emph{sat environ} command.
-
-
-\subsection{Usage}
-\label{commands/environ:usage}\begin{itemize}
-\item {} 
-Create the shell environment files of the application:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{environ} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}}
-\end{Verbatim}
-
-\item {} 
-Create the environment files of the application for a given shell.
-Options are bash, bat (for windows) and cfg (the configuration format used by \href{http://www.salome-platform.org}{SALOME}\footnote[11]{\sphinxAtStartFootnote%
-\nolinkurl{http://www.salome-platform.org}
-}):
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{environ} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{shell} \PYG{p}{[}\PYG{n}{bash}\PYG{o}{\textbar{}}\PYG{n}{cfg}\PYG{o}{\textbar{}}\PYG{n+nb}{all}\PYG{p}{]}
-\end{Verbatim}
-
-\item {} 
-Use a different prefix for the files (default is `env'):
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+c1}{\PYGZsh{} This will create file \PYGZlt{}prefix\PYGZgt{}\PYGZus{}launch.sh, \PYGZlt{}prefix\PYGZgt{}\PYGZus{}build.sh}
-sat environ \PYGZlt{}application\PYGZgt{} \PYGZhy{}\PYGZhy{}prefix \PYGZlt{}prefix\PYGZgt{}
-\end{Verbatim}
-
-\item {} 
-Use a different target directory for the files:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+c1}{\PYGZsh{} This will create file env\PYGZus{}launch.sh, env\PYGZus{}build.sh}
-\PYG{c+c1}{\PYGZsh{} in the directory corresponding to \PYGZlt{}path\PYGZgt{}}
-sat environ \PYGZlt{}application\PYGZgt{} \PYGZhy{}\PYGZhy{}target \PYGZlt{}path\PYGZgt{}
-\end{Verbatim}
-
-\item {} 
-Generate the environment files only with the given products:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+c1}{\PYGZsh{} This will create the environment files only for the given products}
-\PYG{c+c1}{\PYGZsh{} and their prerequisites.}
-\PYG{c+c1}{\PYGZsh{} It is useful when you want to visualise which environment uses}
-\PYG{c+c1}{\PYGZsh{} sat to compile a given product.}
-sat environ \PYGZlt{}application\PYGZgt{} \PYGZhy{}\PYGZhy{}product \PYGZlt{}product1\PYGZgt{},\PYGZlt{}product2\PYGZgt{}, ...
-\end{Verbatim}
-
-\end{itemize}
-
-
-\subsection{Configuration}
-\label{commands/environ:configuration}
-The specification of the environment can be done through several mechanisms.
-\begin{enumerate}
-\item {} 
-For salome products (the products with the property \sphinxcode{is\_SALOME\_module} as \sphinxcode{yes}) the environment is set automatically by sat, in respect with \href{http://www.salome-platform.org}{SALOME}\footnote[12]{\sphinxAtStartFootnote%
-\nolinkurl{http://www.salome-platform.org}
-} requirements.
-
-\item {} 
-For other products, the environment is set with the use of the environ section within the pyconf file of the product. The user has two possibilities, either set directly the environment within the section, or specify a python script which wil be used to set the environment programmatically.
-
-\end{enumerate}
-
-Within the section, the user can define environment variables. He can also modify PATH variables, by appending or prepending directories.
-In the following example, we prepend \emph{\textless{}install\_dir\textgreater{}/lib} to \sphinxcode{LD\_LIBRARY\_PATH} (note the \emph{left first} underscore), append \emph{\textless{}install\_dir\textgreater{}/lib} to \sphinxcode{PYTHONPATH} (note the \emph{right last} underscore), and set \sphinxcode{LAPACK\_ROOT\_DIR} to \emph{\textless{}install\_dir\textgreater{}}:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-environ :
-\PYG{o}{\PYGZob{}}
-  \PYGZus{}LD\PYGZus{}LIBRARY\PYGZus{}PATH : \PYG{n+nv}{\PYGZdl{}install\PYGZus{}dir} + \PYG{n+nv}{\PYGZdl{}VARS}.sep + \PYG{l+s+s2}{\PYGZdq{}lib\PYGZdq{}}
-  PYTHONPATH\PYGZus{} : \PYG{n+nv}{\PYGZdl{}install\PYGZus{}dir} + \PYG{n+nv}{\PYGZdl{}VARS}.sep + \PYG{l+s+s2}{\PYGZdq{}lib\PYGZdq{}}
-  LAPACK\PYGZus{}ROOT\PYGZus{}DIR : \PYG{n+nv}{\PYGZdl{}install\PYGZus{}dir}
-\PYG{o}{\PYGZcb{}}
-\end{Verbatim}
-
-It is possible to distinguish the build environment from the launch environment: use a subsection called \emph{build} or \emph{launch}. In the example below, \sphinxcode{LD\_LIBRARY\_PATH} and \sphinxcode{PYTHONPATH} are only modified at run time, not at compile time:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-environ :
-\PYG{o}{\PYGZob{}}
-  build :
-  \PYG{o}{\PYGZob{}}
-    LAPACK\PYGZus{}ROOT\PYGZus{}DIR : \PYG{n+nv}{\PYGZdl{}install\PYGZus{}dir}
-  \PYG{o}{\PYGZcb{}}
-  launch :
-  \PYG{o}{\PYGZob{}}
-    LAPACK\PYGZus{}ROOT\PYGZus{}DIR : \PYG{n+nv}{\PYGZdl{}install\PYGZus{}dir}
-    \PYGZus{}LD\PYGZus{}LIBRARY\PYGZus{}PATH : \PYG{n+nv}{\PYGZdl{}install\PYGZus{}dir} + \PYG{n+nv}{\PYGZdl{}VARS}.sep + \PYG{l+s+s2}{\PYGZdq{}lib\PYGZdq{}}
-    PYTHONPATH\PYGZus{} : \PYG{n+nv}{\PYGZdl{}install\PYGZus{}dir} + \PYG{n+nv}{\PYGZdl{}VARS}.sep + \PYG{l+s+s2}{\PYGZdq{}lib\PYGZdq{}}
-  \PYG{o}{\PYGZcb{}}
-\PYG{o}{\PYGZcb{}}
-\end{Verbatim}
-\begin{enumerate}
-\setcounter{enumi}{2}
-\item {} 
-The last possibility is to set the environment with a python script. The script should be provided in the \emph{products/env\_scripts} directory of the sat project, and its name is specified in the environment section with the key \sphinxcode{environ.env\_script}:
-
-\end{enumerate}
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{environ} \PYG{p}{:}
-\PYG{p}{\PYGZob{}}
-  \PYG{n}{env\PYGZus{}script} \PYG{p}{:} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{lapack.py}\PYG{l+s+s1}{\PYGZsq{}}
-\PYG{p}{\PYGZcb{}}
-\end{Verbatim}
-
-Please note that the two modes are complementary and are both taken into account.
-Most of the time, the first mode is sufficient.
-
-The second mode can be used when the environment has to be set programmatically.
-The developer implements a handle (as a python method)
-which is called by sat to set the environment.
-Here is an example:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+ch}{\PYGZsh{}!/usr/bin/env python}
-\PYG{c+c1}{\PYGZsh{}\PYGZhy{}*\PYGZhy{} coding:utf\PYGZhy{}8 \PYGZhy{}*\PYGZhy{}}
-
-\PYG{k+kn}{import} \PYG{n+nn}{os.path}
-\PYG{k+kn}{import} \PYG{n+nn}{platform}
-
-\PYG{k}{def} \PYG{n+nf}{set\PYGZus{}env}\PYG{p}{(}\PYG{n}{env}\PYG{p}{,} \PYG{n}{prereq\PYGZus{}dir}\PYG{p}{,} \PYG{n}{version}\PYG{p}{)}\PYG{p}{:}
-    \PYG{n}{env}\PYG{o}{.}\PYG{n}{set}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{TRUST\PYGZus{}ROOT\PYGZus{}DIR}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{,}\PYG{n}{prereq\PYGZus{}dir}\PYG{p}{)}
-    \PYG{n}{env}\PYG{o}{.}\PYG{n}{prepend}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{PATH}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{n}{os}\PYG{o}{.}\PYG{n}{path}\PYG{o}{.}\PYG{n}{join}\PYG{p}{(}\PYG{n}{prereq\PYGZus{}dir}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{bin}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}\PYG{p}{)}
-    \PYG{n}{env}\PYG{o}{.}\PYG{n}{prepend}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{PATH}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{n}{os}\PYG{o}{.}\PYG{n}{path}\PYG{o}{.}\PYG{n}{join}\PYG{p}{(}\PYG{n}{prereq\PYGZus{}dir}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{include}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}\PYG{p}{)}
-    \PYG{n}{env}\PYG{o}{.}\PYG{n}{prepend}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{LD\PYGZus{}LIBRARY\PYGZus{}PATH}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{n}{os}\PYG{o}{.}\PYG{n}{path}\PYG{o}{.}\PYG{n}{join}\PYG{p}{(}\PYG{n}{prereq\PYGZus{}dir}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{lib}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}\PYG{p}{)}
-    \PYG{k}{return}
-\end{Verbatim}
-
-SalomeTools defines four handles:
-\begin{itemize}
-\item {} 
-\textbf{set\_env(env, prereq\_dir, version)} : used at build and run time.
-
-\item {} 
-\textbf{set\_env\_launch(env, prereq\_dir, version)} : used only at run time (if defined!)
-
-\item {} 
-\textbf{set\_env\_build(env, prereq\_dir, version)} : used only at build time (if defined!)
-
-\item {} 
-\textbf{set\_native\_env(env)} : used only for native products, at build and run time.
-
-\end{itemize}
-\clearpage
-
-\section{Command clean}
-\label{commands/clean:svn}\label{commands/clean:command-clean}\label{commands/clean::doc}
-
-\subsection{Description}
-\label{commands/clean:description}
-The \textbf{clean} command removes products in the \emph{source, build, or install} directories of an application. Theses directories are usually named \sphinxcode{SOURCES, BUILD, INSTALL}.
-
-Use the options to define what directories you want to suppress and to set the list of products
-
-
-\subsection{Usage}
-\label{commands/clean:usage}\begin{itemize}
-\item {} 
-Clean all previously created \emph{build} and \emph{install} directories (example application as \emph{SALOME\_xx}):
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+c1}{\PYGZsh{} take care, is long time to restore, sometimes}
-sat clean SALOME\PYGZhy{}xx \PYGZhy{}\PYGZhy{}build \PYGZhy{}\PYGZhy{}install
-\end{Verbatim}
-
-\item {} 
-Clean previously created \emph{build} and \emph{install} directories, only for products with property \emph{is\_salome\_module}:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-sat clean SALOME\PYGZhy{}xxx \PYGZhy{}\PYGZhy{}build \PYGZhy{}\PYGZhy{}install \PYG{l+s+se}{\PYGZbs{}}
-                     \PYGZhy{}\PYGZhy{}properties is\PYGZus{}salome\PYGZus{}module:yes
-\end{Verbatim}
-
-\end{itemize}
-
-
-\subsection{Availables options}
-\label{commands/clean:availables-options}\begin{itemize}
-\item {} 
-\textbf{--products} : Products to clean.
-
-\item {} 
-\textbf{--properties} :
-
-\begin{DUlineblock}{0em}
-\item[] Filter the products by their properties.
-\item[] Syntax: \emph{--properties \textless{}property\textgreater{}:\textless{}value\textgreater{}}
-\end{DUlineblock}
-
-\item {} 
-\textbf{--sources} : Clean the product source directories.
-
-\item {} 
-\textbf{--build} : Clean the product build directories.
-
-\item {} 
-\textbf{--install} : Clean the product install directories.
-
-\item {} 
-\textbf{--all} : Clean the product source, build and install directories.
-
-\item {} 
-\textbf{--sources\_without\_dev} :
-
-\begin{DUlineblock}{0em}
-\item[] Do not clean the products in development mode,
-\item[] (they could have \href{https://en.wikipedia.org/wiki/Version\_control}{VCS}\footnote[13]{\sphinxAtStartFootnote%
-\nolinkurl{https://en.wikipedia.org/wiki/Version\_control}
-} commits pending).
-\end{DUlineblock}
-
-\end{itemize}
-
-
-\subsection{Some useful configuration pathes}
-\label{commands/clean:some-useful-configuration-pathes}
-No specific configuration.
-\clearpage
-
-\section{Command package}
-\label{commands/package:svn}\label{commands/package:command-package}\label{commands/package::doc}
-
-\subsection{Description}
-\label{commands/package:description}
-The \textbf{package} command creates a \href{http://www.salome-platform.org}{SALOME}\footnote[14]{\sphinxAtStartFootnote%
-\nolinkurl{http://www.salome-platform.org}
-} archive (usually a compressed \href{https://en.wikipedia.org/wiki/Tar\_(computing)}{Tar}\footnote[15]{\sphinxAtStartFootnote%
-\nolinkurl{https://en.wikipedia.org/wiki/Tar\_(computing)}
-} file .tgz).
-This tar file is used later to intall SALOME on other remote computer.
-
-Depending on the selected options, the archive includes sources and binaries
-of SALOME products and prerequisites.
-
-Usually utility \emph{salomeTools} is included in the archive.
-
-\begin{notice}{note}{Note:}
-By default the package includes the sources of prerequisites and products.
-To select a subset use the \emph{--without\_property} or \emph{--with\_vcs} options.
-\end{notice}
-
-
-\subsection{Usage}
-\label{commands/package:usage}\begin{itemize}
-\item {} 
-Create a package for a product (example as \emph{SALOME\_xx}):
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{package} \PYG{n}{SALOME\PYGZus{}xx}
-\end{Verbatim}
-
-This command will create an archive named \sphinxcode{SALOME\_xx.tgz}
-in the working directory (\sphinxcode{USER.workDir}).
-If the archive already exists, do nothing.
-
-\item {} 
-Create a package with a specific name:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{package} \PYG{n}{SALOME\PYGZus{}xx} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{name} \PYG{n}{YourSpecificName}
-\end{Verbatim}
-
-\end{itemize}
-
-\begin{notice}{note}{Note:}
-By default, the archive is created in the working directory of the user (\sphinxcode{USER.workDir}).
-
-If the option \emph{--name} is used with a path (relative or absolute) it will be used.
-
-If the option \emph{--name} is not used and binaries (prerequisites and products)
-are included in the package, the \href{https://en.wikipedia.org/wiki/Operating\_system}{OS}\footnote[16]{\sphinxAtStartFootnote%
-\nolinkurl{https://en.wikipedia.org/wiki/Operating\_system}
-} architecture
-will be appended to the name (example: \sphinxcode{SALOME\_xx-CO7.tgz}).
-
-Examples:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+c1}{\PYGZsh{} Creates SALOME\PYGZus{}xx.tgz in \PYGZdl{}USER.workDir}
-\PYG{n}{sat} \PYG{n}{package} \PYG{n}{SALOME\PYGZus{}xx}
-
-\PYG{c+c1}{\PYGZsh{} Creates SALOME\PYGZus{}xx\PYGZus{}\PYGZlt{}arch\PYGZgt{}.tgz in \PYGZdl{}USER.workDir}
-\PYG{n}{sat} \PYG{n}{package} \PYG{n}{SALOME\PYGZus{}xx} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{binaries}
-
-\PYG{c+c1}{\PYGZsh{} Creates MySpecificName.tgz in \PYGZdl{}USER.workDir}
-\PYG{n}{sat} \PYG{n}{package} \PYG{n}{SALOME\PYGZus{}xx} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{name} \PYG{n}{MySpecificName}
-\end{Verbatim}
-\end{notice}
-\begin{itemize}
-\item {} 
-Force the creation of the archive (if it already exists):
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{package} \PYG{n}{SALOME\PYGZus{}xx} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{force}
-\end{Verbatim}
-
-\item {} 
-Include the binaries in the archive (products and prerequisites):
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{package} \PYG{n}{SALOME\PYGZus{}xx} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{binaries}
-\end{Verbatim}
-
-This command will create an archive named \sphinxcode{SALOME\_xx \_\textless{}arch\textgreater{}.tgz}
-where \textless{}arch\textgreater{} is the \href{https://en.wikipedia.org/wiki/Operating\_system}{OS}\footnote[17]{\sphinxAtStartFootnote%
-\nolinkurl{https://en.wikipedia.org/wiki/Operating\_system}
-} architecture of the machine.
-
-\item {} 
-Do not delete Version Control System (\href{https://en.wikipedia.org/wiki/Version\_control}{VCS}\footnote[18]{\sphinxAtStartFootnote%
-\nolinkurl{https://en.wikipedia.org/wiki/Version\_control}
-}) informations from the configurations files of the embedded salomeTools:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{package} \PYG{n}{SALOME\PYGZus{}xx} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{with\PYGZus{}vcs}
-\end{Verbatim}
-
-The version control systems known by this option are \href{https://fr.wikipedia.org/wiki/Concurrent\_versions\_system}{CVS}\footnote[19]{\sphinxAtStartFootnote%
-\nolinkurl{https://fr.wikipedia.org/wiki/Concurrent\_versions\_system}
-}, \href{https://en.wikipedia.org/wiki/Apache\_Subversion}{SVN}\footnote[20]{\sphinxAtStartFootnote%
-\nolinkurl{https://en.wikipedia.org/wiki/Apache\_Subversion}
-} and \href{https://git-scm.com}{Git}\footnote[21]{\sphinxAtStartFootnote%
-\nolinkurl{https://git-scm.com}
-}.
-
-\end{itemize}
-
-
-\subsection{Some useful configuration pathes}
-\label{commands/package:some-useful-configuration-pathes}
-No specific configuration.
-\clearpage
-
-\section{Command generate}
-\label{commands/generate:svn}\label{commands/generate:command-generate}\label{commands/generate::doc}
-
-\subsection{Description}
-\label{commands/generate:description}
-The \textbf{generate} command generates and compile SALOME modules from cpp modules using YACSGEN.
-
-\begin{notice}{note}{Note:}
-This command uses YACSGEN to generate the module. It needs to be specified with \emph{--yacsgen} option, or defined in the product or by the environment variable \sphinxcode{\$YACSGEN\_ROOT\_DIR}.
-\end{notice}
-
-
-\subsection{Remarks}
-\label{commands/generate:remarks}\begin{itemize}
-\item {} 
-This command will only apply on the CPP modules of the application, those who have both properties:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{cpp} \PYG{p}{:} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{yes}\PYG{l+s+s2}{\PYGZdq{}}
-\PYG{n}{generate} \PYG{p}{:} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{yes}\PYG{l+s+s2}{\PYGZdq{}}
-\end{Verbatim}
-
-\item {} 
-The cpp module are usually computational components, and the generated module brings the CORBA layer which allows distributing the compononent on remore machines. cpp modules should conform to YACSGEN/hxx2salome requirements (please refer to YACSGEN documentation)
-
-\end{itemize}
-
-
-\subsection{Usage}
-\label{commands/generate:usage}\begin{itemize}
-\item {} 
-Generate all the modules of a product:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{generate} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}}
-\end{Verbatim}
-
-\item {} 
-Generate only specific modules:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{generate} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{products} \PYG{o}{\PYGZlt{}}\PYG{n}{list\PYGZus{}of\PYGZus{}products}\PYG{o}{\PYGZgt{}}
-\end{Verbatim}
-
-Remark: modules which don't have the \emph{generate} property are ignored.
-
-\item {} 
-Use a specific version of YACSGEN:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{sat} \PYG{n}{generate} \PYG{o}{\PYGZlt{}}\PYG{n}{application}\PYG{o}{\PYGZgt{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{yacsgen} \PYG{o}{\PYGZlt{}}\PYG{n}{path\PYGZus{}to\PYGZus{}yacsgen}\PYG{o}{\PYGZgt{}}
-\end{Verbatim}
-
-\end{itemize}
-
-
-\chapter{Developer documentation}
-\label{index:developer-documentation}\clearpage
-
-\section{Add a user custom command}
-\label{write_command:svn}\label{write_command:add-a-user-custom-command}\label{write_command::doc}
-
-\subsection{Introduction}
-\label{write_command:introduction}
-\begin{notice}{note}{Note:}
-This documentation is for \href{https://docs.python.org/2.7}{Python}\footnote[22]{\sphinxAtStartFootnote%
-\nolinkurl{https://docs.python.org/2.7}
-} developers.
-\end{notice}
-
-The salomeTools product provides a simple way to develop commands.
-The first thing to do is to add a file with \emph{.py} extension in the \sphinxcode{commands} directory of salomeTools.
-
-Here are the basic requirements that must be followed in this file in order to add a command.
-
-
-\subsection{Basic requirements}
-\label{write_command:basic-requirements}
-\begin{notice}{warning}{Warning:}
-ALL THIS IS OBSOLETE FOR SAT 5.1
-\end{notice}
-
-By adding a file \emph{mycommand.py} in the \sphinxcode{commands} directory, salomeTools will define a new command named \sphinxcode{mycommand}.
-
-In \emph{mycommand.py}, there must be the following method:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{k}{def} \PYG{n+nf}{run}\PYG{p}{(}\PYG{n}{args}\PYG{p}{,} \PYG{n}{runner}\PYG{p}{,} \PYG{n}{logger}\PYG{p}{)}\PYG{p}{:}
-    \PYG{c+c1}{\PYGZsh{} your algorithm ...}
-    \PYG{k}{pass}
-\end{Verbatim}
-
-In fact, at this point, the command will already be functional.
-But there are some useful services provided by salomeTools :
-\begin{itemize}
-\item {} 
-You can give some options to your command:
-
-\end{itemize}
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{k+kn}{import} \PYG{n+nn}{src}
-
-\PYG{c+c1}{\PYGZsh{} Define all possible option for mycommand command :  \PYGZsq{}sat mycommand \PYGZlt{}options\PYGZgt{}\PYGZsq{}}
-\PYG{n}{parser} \PYG{o}{=} \PYG{n}{src}\PYG{o}{.}\PYG{n}{options}\PYG{o}{.}\PYG{n}{Options}\PYG{p}{(}\PYG{p}{)}
-\PYG{n}{parser}\PYG{o}{.}\PYG{n}{add\PYGZus{}option}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{m}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{myoption}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYGZbs{}
-                  \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{boolean}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{myoption}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYGZbs{}
-                  \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{My option changes the behavior of my command.}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}
-
-\PYG{k}{def} \PYG{n+nf}{run}\PYG{p}{(}\PYG{n}{args}\PYG{p}{,} \PYG{n}{runner}\PYG{p}{,} \PYG{n}{logger}\PYG{p}{)}\PYG{p}{:}
-    \PYG{c+c1}{\PYGZsh{} Parse the options}
-    \PYG{p}{(}\PYG{n}{options}\PYG{p}{,} \PYG{n}{args}\PYG{p}{)} \PYG{o}{=} \PYG{n}{parser}\PYG{o}{.}\PYG{n}{parse\PYGZus{}args}\PYG{p}{(}\PYG{n}{args}\PYG{p}{)}
-    \PYG{c+c1}{\PYGZsh{} algorithm}
-\end{Verbatim}
-\begin{itemize}
-\item {} 
-You can add a \emph{description} method that will display a message when the user will call the help:
-
-\end{itemize}
-
-\begin{Verbatim}[commandchars=\\\{\}]
- \PYG{k+kn}{import} \PYG{n+nn}{src}
-
- \PYG{c+c1}{\PYGZsh{} Define all possible option for mycommand command : \PYGZsq{}sat mycommand \PYGZlt{}options\PYGZgt{}\PYGZsq{}}
- \PYG{n}{parser} \PYG{o}{=} \PYG{n}{src}\PYG{o}{.}\PYG{n}{options}\PYG{o}{.}\PYG{n}{Options}\PYG{p}{(}\PYG{p}{)}
- \PYG{n}{parser}\PYG{o}{.}\PYG{n}{add\PYGZus{}option}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{m}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{myoption}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYGZbs{}
-                   \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{boolean}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{myoption}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYGZbs{}
-                   \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{My option changes the behavior of my command.}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}
-
- \PYG{k}{def} \PYG{n+nf}{description}\PYG{p}{(}\PYG{p}{)}\PYG{p}{:}
-     \PYG{k}{return} \PYG{n}{\PYGZus{}}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{The help of mycommand.}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)}
-
- \PYG{k}{def} \PYG{n+nf}{run}\PYG{p}{(}\PYG{n}{args}\PYG{p}{,} \PYG{n}{runner}\PYG{p}{,} \PYG{n}{logger}\PYG{p}{)}\PYG{p}{:}
-     \PYG{c+c1}{\PYGZsh{} Parse the options}
-     \PYG{p}{(}\PYG{n}{options}\PYG{p}{,} \PYG{n}{args}\PYG{p}{)} \PYG{o}{=} \PYG{n}{parser}\PYG{o}{.}\PYG{n}{parse\PYGZus{}args}\PYG{p}{(}\PYG{n}{args}\PYG{p}{)}
-     \PYG{c+c1}{\PYGZsh{} algorithm}
-\end{Verbatim}
-
-
-\subsection{HowTo access salomeTools config and other commands}
-\label{write_command:howto-access-salometools-config-and-other-commands}
-The \emph{runner} variable is an python instance of \emph{Sat} class.
-It gives access to \emph{runner.getConfig()} which is the data model defined from all
-\emph{configuration pyconf files} of salomeTools
-For example, \emph{runner.cfg.APPLICATION.workdir}
-contains the root directory of the current application.
-
-The \emph{runner} variable gives also access to other commands of salomeTools:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+c1}{\PYGZsh{} as CLI\PYGZus{} \PYGZsq{}sat prepare ...\PYGZsq{}}
-\PYG{n}{runner}\PYG{o}{.}\PYG{n}{prepare}\PYG{p}{(}\PYG{n}{runner}\PYG{o}{.}\PYG{n}{cfg}\PYG{o}{.}\PYG{n}{VARS}\PYG{o}{.}\PYG{n}{application}\PYG{p}{)}
-\end{Verbatim}
-
-
-\subsection{HowTo logger}
-\label{write_command:howto-logger}
-The logger variable is an instance of the python \sphinxcode{logging} package class.
-It gives access to \sphinxcode{debug, info, warning, error, critical} methods.
-
-Using these methods, the message passed as parameter
-will be displayed in the terminal and written in an xml log file.
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{logger}\PYG{o}{.}\PYG{n}{info}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{My message}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)}
-\end{Verbatim}
-
-
-\subsection{HELLO example}
-\label{write_command:hello-example}
-Here is a \emph{hello} command, file \emph{commands/hello.py}:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{k+kn}{import} \PYG{n+nn}{src}
-
-\PYG{l+s+sd}{\PYGZdq{}\PYGZdq{}\PYGZdq{}}
-\PYG{l+s+sd}{hello.py}
-\PYG{l+s+sd}{Define all possible options for hello command:}
-\PYG{l+s+sd}{sat hello \PYGZlt{}options\PYGZgt{}}
-\PYG{l+s+sd}{\PYGZdq{}\PYGZdq{}\PYGZdq{}}
-
-\PYG{n}{parser} \PYG{o}{=} \PYG{n}{src}\PYG{o}{.}\PYG{n}{options}\PYG{o}{.}\PYG{n}{Options}\PYG{p}{(}\PYG{p}{)}
-\PYG{n}{parser}\PYG{o}{.}\PYG{n}{add\PYGZus{}option}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{f}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{french}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{boolean}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{french}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{french set hello message in french.}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)}
-
-\PYG{k}{def} \PYG{n+nf}{description}\PYG{p}{(}\PYG{p}{)}\PYG{p}{:}
-    \PYG{k}{return} \PYG{n}{\PYGZus{}}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{The help of hello.}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)}
-
-\PYG{k}{def} \PYG{n+nf}{run}\PYG{p}{(}\PYG{n}{args}\PYG{p}{,} \PYG{n}{runner}\PYG{p}{,} \PYG{n}{logger}\PYG{p}{)}\PYG{p}{:}
-    \PYG{c+c1}{\PYGZsh{} Parse the options}
-    \PYG{p}{(}\PYG{n}{options}\PYG{p}{,} \PYG{n}{args}\PYG{p}{)} \PYG{o}{=} \PYG{n}{parser}\PYG{o}{.}\PYG{n}{parse\PYGZus{}args}\PYG{p}{(}\PYG{n}{args}\PYG{p}{)}
-    \PYG{c+c1}{\PYGZsh{} algorithm}
-    \PYG{k}{if} \PYG{o+ow}{not} \PYG{n}{options}\PYG{o}{.}\PYG{n}{french}\PYG{p}{:}
-        \PYG{n}{logger}\PYG{o}{.}\PYG{n}{write}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{HELLO! WORLD!}\PYG{l+s+se}{\PYGZbs{}n}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}
-    \PYG{k}{else}\PYG{p}{:}
-        \PYG{n}{logger}\PYG{o}{.}\PYG{n}{write}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{Bonjour tout le monde!}\PYG{l+s+se}{\PYGZbs{}n}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}
-\end{Verbatim}
-
-A first call of hello:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+c1}{\PYGZsh{} Get the help of hello:}
-./sat \PYGZhy{}\PYGZhy{}help hello
-
-\PYG{c+c1}{\PYGZsh{} To get bonjour}
-./sat hello \PYGZhy{}\PYGZhy{}french
-Bonjour tout le monde!
-
-\PYG{c+c1}{\PYGZsh{} To get hello}
-./sat hello
-HELLO! WORLD!
-
-\PYG{c+c1}{\PYGZsh{} To get the log}
-./sat log
-\end{Verbatim}
-
-
-\chapter{Code documentation}
-\label{index:code-documentation}
-
-\section{src}
-\label{commands/apidoc/modules:src}\label{commands/apidoc/modules::doc}
-
-\subsection{src package}
-\label{commands/apidoc/src::doc}\label{commands/apidoc/src:src-package}
-
-\subsubsection{Subpackages}
-\label{commands/apidoc/src:subpackages}
-
-\paragraph{src.colorama package}
-\label{commands/apidoc/src.colorama:src-colorama-package}\label{commands/apidoc/src.colorama::doc}
-
-\subparagraph{Submodules}
-\label{commands/apidoc/src.colorama:submodules}
-
-\subparagraph{src.colorama.ansi module}
-\label{commands/apidoc/src.colorama:module-src.colorama.ansi}\label{commands/apidoc/src.colorama:src-colorama-ansi-module}\index{src.colorama.ansi (module)}
-This module generates ANSI character codes to printing colors to terminals.
-See: \url{http://en.wikipedia.org/wiki/ANSI\_escape\_code}
-\index{AnsiBack (class in src.colorama.ansi)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiBack}\pysigline{\sphinxstrong{class }\sphinxcode{src.colorama.ansi.}\sphinxbfcode{AnsiBack}}
-Bases: {\hyperref[commands/apidoc/src.colorama:src.colorama.ansi.AnsiCodes]{\sphinxcrossref{\sphinxcode{src.colorama.ansi.AnsiCodes}}}} (\autopageref*{commands/apidoc/src.colorama:src.colorama.ansi.AnsiCodes})
-\index{BLACK (src.colorama.ansi.AnsiBack attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiBack.BLACK}\pysigline{\sphinxbfcode{BLACK}\sphinxstrong{ = 40}}
-\end{fulllineitems}
-
-\index{BLUE (src.colorama.ansi.AnsiBack attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiBack.BLUE}\pysigline{\sphinxbfcode{BLUE}\sphinxstrong{ = 44}}
-\end{fulllineitems}
-
-\index{CYAN (src.colorama.ansi.AnsiBack attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiBack.CYAN}\pysigline{\sphinxbfcode{CYAN}\sphinxstrong{ = 46}}
-\end{fulllineitems}
-
-\index{GREEN (src.colorama.ansi.AnsiBack attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiBack.GREEN}\pysigline{\sphinxbfcode{GREEN}\sphinxstrong{ = 42}}
-\end{fulllineitems}
-
-\index{LIGHTBLACK\_EX (src.colorama.ansi.AnsiBack attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiBack.LIGHTBLACK_EX}\pysigline{\sphinxbfcode{LIGHTBLACK\_EX}\sphinxstrong{ = 100}}
-\end{fulllineitems}
-
-\index{LIGHTBLUE\_EX (src.colorama.ansi.AnsiBack attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiBack.LIGHTBLUE_EX}\pysigline{\sphinxbfcode{LIGHTBLUE\_EX}\sphinxstrong{ = 104}}
-\end{fulllineitems}
-
-\index{LIGHTCYAN\_EX (src.colorama.ansi.AnsiBack attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiBack.LIGHTCYAN_EX}\pysigline{\sphinxbfcode{LIGHTCYAN\_EX}\sphinxstrong{ = 106}}
-\end{fulllineitems}
-
-\index{LIGHTGREEN\_EX (src.colorama.ansi.AnsiBack attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiBack.LIGHTGREEN_EX}\pysigline{\sphinxbfcode{LIGHTGREEN\_EX}\sphinxstrong{ = 102}}
-\end{fulllineitems}
-
-\index{LIGHTMAGENTA\_EX (src.colorama.ansi.AnsiBack attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiBack.LIGHTMAGENTA_EX}\pysigline{\sphinxbfcode{LIGHTMAGENTA\_EX}\sphinxstrong{ = 105}}
-\end{fulllineitems}
-
-\index{LIGHTRED\_EX (src.colorama.ansi.AnsiBack attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiBack.LIGHTRED_EX}\pysigline{\sphinxbfcode{LIGHTRED\_EX}\sphinxstrong{ = 101}}
-\end{fulllineitems}
-
-\index{LIGHTWHITE\_EX (src.colorama.ansi.AnsiBack attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiBack.LIGHTWHITE_EX}\pysigline{\sphinxbfcode{LIGHTWHITE\_EX}\sphinxstrong{ = 107}}
-\end{fulllineitems}
-
-\index{LIGHTYELLOW\_EX (src.colorama.ansi.AnsiBack attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiBack.LIGHTYELLOW_EX}\pysigline{\sphinxbfcode{LIGHTYELLOW\_EX}\sphinxstrong{ = 103}}
-\end{fulllineitems}
-
-\index{MAGENTA (src.colorama.ansi.AnsiBack attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiBack.MAGENTA}\pysigline{\sphinxbfcode{MAGENTA}\sphinxstrong{ = 45}}
-\end{fulllineitems}
-
-\index{RED (src.colorama.ansi.AnsiBack attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiBack.RED}\pysigline{\sphinxbfcode{RED}\sphinxstrong{ = 41}}
-\end{fulllineitems}
-
-\index{RESET (src.colorama.ansi.AnsiBack attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiBack.RESET}\pysigline{\sphinxbfcode{RESET}\sphinxstrong{ = 49}}
-\end{fulllineitems}
-
-\index{WHITE (src.colorama.ansi.AnsiBack attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiBack.WHITE}\pysigline{\sphinxbfcode{WHITE}\sphinxstrong{ = 47}}
-\end{fulllineitems}
-
-\index{YELLOW (src.colorama.ansi.AnsiBack attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiBack.YELLOW}\pysigline{\sphinxbfcode{YELLOW}\sphinxstrong{ = 43}}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{AnsiCodes (class in src.colorama.ansi)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiCodes}\pysigline{\sphinxstrong{class }\sphinxcode{src.colorama.ansi.}\sphinxbfcode{AnsiCodes}}
-Bases: \sphinxcode{object}
-
-\end{fulllineitems}
-
-\index{AnsiCursor (class in src.colorama.ansi)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiCursor}\pysigline{\sphinxstrong{class }\sphinxcode{src.colorama.ansi.}\sphinxbfcode{AnsiCursor}}
-Bases: \sphinxcode{object}
-\index{BACK() (src.colorama.ansi.AnsiCursor method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiCursor.BACK}\pysiglinewithargsret{\sphinxbfcode{BACK}}{\emph{n=1}}{}
-\end{fulllineitems}
-
-\index{DOWN() (src.colorama.ansi.AnsiCursor method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiCursor.DOWN}\pysiglinewithargsret{\sphinxbfcode{DOWN}}{\emph{n=1}}{}
-\end{fulllineitems}
-
-\index{FORWARD() (src.colorama.ansi.AnsiCursor method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiCursor.FORWARD}\pysiglinewithargsret{\sphinxbfcode{FORWARD}}{\emph{n=1}}{}
-\end{fulllineitems}
-
-\index{POS() (src.colorama.ansi.AnsiCursor method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiCursor.POS}\pysiglinewithargsret{\sphinxbfcode{POS}}{\emph{x=1}, \emph{y=1}}{}
-\end{fulllineitems}
-
-\index{UP() (src.colorama.ansi.AnsiCursor method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiCursor.UP}\pysiglinewithargsret{\sphinxbfcode{UP}}{\emph{n=1}}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{AnsiFore (class in src.colorama.ansi)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiFore}\pysigline{\sphinxstrong{class }\sphinxcode{src.colorama.ansi.}\sphinxbfcode{AnsiFore}}
-Bases: {\hyperref[commands/apidoc/src.colorama:src.colorama.ansi.AnsiCodes]{\sphinxcrossref{\sphinxcode{src.colorama.ansi.AnsiCodes}}}} (\autopageref*{commands/apidoc/src.colorama:src.colorama.ansi.AnsiCodes})
-\index{BLACK (src.colorama.ansi.AnsiFore attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiFore.BLACK}\pysigline{\sphinxbfcode{BLACK}\sphinxstrong{ = 30}}
-\end{fulllineitems}
-
-\index{BLUE (src.colorama.ansi.AnsiFore attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiFore.BLUE}\pysigline{\sphinxbfcode{BLUE}\sphinxstrong{ = 34}}
-\end{fulllineitems}
-
-\index{CYAN (src.colorama.ansi.AnsiFore attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiFore.CYAN}\pysigline{\sphinxbfcode{CYAN}\sphinxstrong{ = 36}}
-\end{fulllineitems}
-
-\index{GREEN (src.colorama.ansi.AnsiFore attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiFore.GREEN}\pysigline{\sphinxbfcode{GREEN}\sphinxstrong{ = 32}}
-\end{fulllineitems}
-
-\index{LIGHTBLACK\_EX (src.colorama.ansi.AnsiFore attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiFore.LIGHTBLACK_EX}\pysigline{\sphinxbfcode{LIGHTBLACK\_EX}\sphinxstrong{ = 90}}
-\end{fulllineitems}
-
-\index{LIGHTBLUE\_EX (src.colorama.ansi.AnsiFore attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiFore.LIGHTBLUE_EX}\pysigline{\sphinxbfcode{LIGHTBLUE\_EX}\sphinxstrong{ = 94}}
-\end{fulllineitems}
-
-\index{LIGHTCYAN\_EX (src.colorama.ansi.AnsiFore attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiFore.LIGHTCYAN_EX}\pysigline{\sphinxbfcode{LIGHTCYAN\_EX}\sphinxstrong{ = 96}}
-\end{fulllineitems}
-
-\index{LIGHTGREEN\_EX (src.colorama.ansi.AnsiFore attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiFore.LIGHTGREEN_EX}\pysigline{\sphinxbfcode{LIGHTGREEN\_EX}\sphinxstrong{ = 92}}
-\end{fulllineitems}
-
-\index{LIGHTMAGENTA\_EX (src.colorama.ansi.AnsiFore attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiFore.LIGHTMAGENTA_EX}\pysigline{\sphinxbfcode{LIGHTMAGENTA\_EX}\sphinxstrong{ = 95}}
-\end{fulllineitems}
-
-\index{LIGHTRED\_EX (src.colorama.ansi.AnsiFore attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiFore.LIGHTRED_EX}\pysigline{\sphinxbfcode{LIGHTRED\_EX}\sphinxstrong{ = 91}}
-\end{fulllineitems}
-
-\index{LIGHTWHITE\_EX (src.colorama.ansi.AnsiFore attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiFore.LIGHTWHITE_EX}\pysigline{\sphinxbfcode{LIGHTWHITE\_EX}\sphinxstrong{ = 97}}
-\end{fulllineitems}
-
-\index{LIGHTYELLOW\_EX (src.colorama.ansi.AnsiFore attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiFore.LIGHTYELLOW_EX}\pysigline{\sphinxbfcode{LIGHTYELLOW\_EX}\sphinxstrong{ = 93}}
-\end{fulllineitems}
-
-\index{MAGENTA (src.colorama.ansi.AnsiFore attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiFore.MAGENTA}\pysigline{\sphinxbfcode{MAGENTA}\sphinxstrong{ = 35}}
-\end{fulllineitems}
-
-\index{RED (src.colorama.ansi.AnsiFore attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiFore.RED}\pysigline{\sphinxbfcode{RED}\sphinxstrong{ = 31}}
-\end{fulllineitems}
-
-\index{RESET (src.colorama.ansi.AnsiFore attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiFore.RESET}\pysigline{\sphinxbfcode{RESET}\sphinxstrong{ = 39}}
-\end{fulllineitems}
-
-\index{WHITE (src.colorama.ansi.AnsiFore attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiFore.WHITE}\pysigline{\sphinxbfcode{WHITE}\sphinxstrong{ = 37}}
-\end{fulllineitems}
-
-\index{YELLOW (src.colorama.ansi.AnsiFore attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiFore.YELLOW}\pysigline{\sphinxbfcode{YELLOW}\sphinxstrong{ = 33}}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{AnsiStyle (class in src.colorama.ansi)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiStyle}\pysigline{\sphinxstrong{class }\sphinxcode{src.colorama.ansi.}\sphinxbfcode{AnsiStyle}}
-Bases: {\hyperref[commands/apidoc/src.colorama:src.colorama.ansi.AnsiCodes]{\sphinxcrossref{\sphinxcode{src.colorama.ansi.AnsiCodes}}}} (\autopageref*{commands/apidoc/src.colorama:src.colorama.ansi.AnsiCodes})
-\index{BRIGHT (src.colorama.ansi.AnsiStyle attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiStyle.BRIGHT}\pysigline{\sphinxbfcode{BRIGHT}\sphinxstrong{ = 1}}
-\end{fulllineitems}
-
-\index{DIM (src.colorama.ansi.AnsiStyle attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiStyle.DIM}\pysigline{\sphinxbfcode{DIM}\sphinxstrong{ = 2}}
-\end{fulllineitems}
-
-\index{NORMAL (src.colorama.ansi.AnsiStyle attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiStyle.NORMAL}\pysigline{\sphinxbfcode{NORMAL}\sphinxstrong{ = 22}}
-\end{fulllineitems}
-
-\index{RESET\_ALL (src.colorama.ansi.AnsiStyle attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.AnsiStyle.RESET_ALL}\pysigline{\sphinxbfcode{RESET\_ALL}\sphinxstrong{ = 0}}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{clear\_line() (in module src.colorama.ansi)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.clear_line}\pysiglinewithargsret{\sphinxcode{src.colorama.ansi.}\sphinxbfcode{clear\_line}}{\emph{mode=2}}{}
-\end{fulllineitems}
-
-\index{clear\_screen() (in module src.colorama.ansi)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.clear_screen}\pysiglinewithargsret{\sphinxcode{src.colorama.ansi.}\sphinxbfcode{clear\_screen}}{\emph{mode=2}}{}
-\end{fulllineitems}
-
-\index{code\_to\_chars() (in module src.colorama.ansi)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.code_to_chars}\pysiglinewithargsret{\sphinxcode{src.colorama.ansi.}\sphinxbfcode{code\_to\_chars}}{\emph{code}}{}
-\end{fulllineitems}
-
-\index{set\_title() (in module src.colorama.ansi)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansi.set_title}\pysiglinewithargsret{\sphinxcode{src.colorama.ansi.}\sphinxbfcode{set\_title}}{\emph{title}}{}
-\end{fulllineitems}
-
-
-
-\subparagraph{src.colorama.ansitowin32 module}
-\label{commands/apidoc/src.colorama:module-src.colorama.ansitowin32}\label{commands/apidoc/src.colorama:src-colorama-ansitowin32-module}\index{src.colorama.ansitowin32 (module)}\index{AnsiToWin32 (class in src.colorama.ansitowin32)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansitowin32.AnsiToWin32}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.colorama.ansitowin32.}\sphinxbfcode{AnsiToWin32}}{\emph{wrapped}, \emph{convert=None}, \emph{strip=None}, \emph{autoreset=False}}{}
-Bases: \sphinxcode{object}
-
-Implements a `write()' method which, on Windows, will strip ANSI character
-sequences from the text, and if outputting to a tty, will convert them into
-win32 function calls.
-\index{ANSI\_CSI\_RE (src.colorama.ansitowin32.AnsiToWin32 attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansitowin32.AnsiToWin32.ANSI_CSI_RE}\pysigline{\sphinxbfcode{ANSI\_CSI\_RE}\sphinxstrong{ = \textless{}\_sre.SRE\_Pattern object\textgreater{}}}
-\end{fulllineitems}
-
-\index{ANSI\_OSC\_RE (src.colorama.ansitowin32.AnsiToWin32 attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansitowin32.AnsiToWin32.ANSI_OSC_RE}\pysigline{\sphinxbfcode{ANSI\_OSC\_RE}\sphinxstrong{ = \textless{}\_sre.SRE\_Pattern object\textgreater{}}}
-\end{fulllineitems}
-
-\index{call\_win32() (src.colorama.ansitowin32.AnsiToWin32 method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansitowin32.AnsiToWin32.call_win32}\pysiglinewithargsret{\sphinxbfcode{call\_win32}}{\emph{command}, \emph{params}}{}
-\end{fulllineitems}
-
-\index{convert\_ansi() (src.colorama.ansitowin32.AnsiToWin32 method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansitowin32.AnsiToWin32.convert_ansi}\pysiglinewithargsret{\sphinxbfcode{convert\_ansi}}{\emph{paramstring}, \emph{command}}{}
-\end{fulllineitems}
-
-\index{convert\_osc() (src.colorama.ansitowin32.AnsiToWin32 method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansitowin32.AnsiToWin32.convert_osc}\pysiglinewithargsret{\sphinxbfcode{convert\_osc}}{\emph{text}}{}
-\end{fulllineitems}
-
-\index{extract\_params() (src.colorama.ansitowin32.AnsiToWin32 method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansitowin32.AnsiToWin32.extract_params}\pysiglinewithargsret{\sphinxbfcode{extract\_params}}{\emph{command}, \emph{paramstring}}{}
-\end{fulllineitems}
-
-\index{get\_win32\_calls() (src.colorama.ansitowin32.AnsiToWin32 method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansitowin32.AnsiToWin32.get_win32_calls}\pysiglinewithargsret{\sphinxbfcode{get\_win32\_calls}}{}{}
-\end{fulllineitems}
-
-\index{reset\_all() (src.colorama.ansitowin32.AnsiToWin32 method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansitowin32.AnsiToWin32.reset_all}\pysiglinewithargsret{\sphinxbfcode{reset\_all}}{}{}
-\end{fulllineitems}
-
-\index{should\_wrap() (src.colorama.ansitowin32.AnsiToWin32 method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansitowin32.AnsiToWin32.should_wrap}\pysiglinewithargsret{\sphinxbfcode{should\_wrap}}{}{}
-True if this class is actually needed. If false, then the output
-stream will not be affected, nor will win32 calls be issued, so
-wrapping stdout is not actually required. This will generally be
-False on non-Windows platforms, unless optional functionality like
-autoreset has been requested using kwargs to init()
-
-\end{fulllineitems}
-
-\index{write() (src.colorama.ansitowin32.AnsiToWin32 method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansitowin32.AnsiToWin32.write}\pysiglinewithargsret{\sphinxbfcode{write}}{\emph{text}}{}
-\end{fulllineitems}
-
-\index{write\_and\_convert() (src.colorama.ansitowin32.AnsiToWin32 method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansitowin32.AnsiToWin32.write_and_convert}\pysiglinewithargsret{\sphinxbfcode{write\_and\_convert}}{\emph{text}}{}
-Write the given text to our wrapped stream, stripping any ANSI
-sequences from the text, and optionally converting them into win32
-calls.
-
-\end{fulllineitems}
-
-\index{write\_plain\_text() (src.colorama.ansitowin32.AnsiToWin32 method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansitowin32.AnsiToWin32.write_plain_text}\pysiglinewithargsret{\sphinxbfcode{write\_plain\_text}}{\emph{text}, \emph{start}, \emph{end}}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{StreamWrapper (class in src.colorama.ansitowin32)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansitowin32.StreamWrapper}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.colorama.ansitowin32.}\sphinxbfcode{StreamWrapper}}{\emph{wrapped}, \emph{converter}}{}
-Bases: \sphinxcode{object}
-
-Wraps a stream (such as stdout), acting as a transparent proxy for all
-attribute access apart from method `write()', which is delegated to our
-Converter instance.
-\index{write() (src.colorama.ansitowin32.StreamWrapper method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansitowin32.StreamWrapper.write}\pysiglinewithargsret{\sphinxbfcode{write}}{\emph{text}}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{is\_a\_tty() (in module src.colorama.ansitowin32)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansitowin32.is_a_tty}\pysiglinewithargsret{\sphinxcode{src.colorama.ansitowin32.}\sphinxbfcode{is\_a\_tty}}{\emph{stream}}{}
-\end{fulllineitems}
-
-\index{is\_stream\_closed() (in module src.colorama.ansitowin32)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.ansitowin32.is_stream_closed}\pysiglinewithargsret{\sphinxcode{src.colorama.ansitowin32.}\sphinxbfcode{is\_stream\_closed}}{\emph{stream}}{}
-\end{fulllineitems}
-
-
-
-\subparagraph{src.colorama.initialise module}
-\label{commands/apidoc/src.colorama:src-colorama-initialise-module}\label{commands/apidoc/src.colorama:module-src.colorama.initialise}\index{src.colorama.initialise (module)}\index{colorama\_text() (in module src.colorama.initialise)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.initialise.colorama_text}\pysiglinewithargsret{\sphinxcode{src.colorama.initialise.}\sphinxbfcode{colorama\_text}}{\emph{*args}, \emph{**kwds}}{}
-\end{fulllineitems}
-
-\index{deinit() (in module src.colorama.initialise)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.initialise.deinit}\pysiglinewithargsret{\sphinxcode{src.colorama.initialise.}\sphinxbfcode{deinit}}{}{}
-\end{fulllineitems}
-
-\index{init() (in module src.colorama.initialise)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.initialise.init}\pysiglinewithargsret{\sphinxcode{src.colorama.initialise.}\sphinxbfcode{init}}{\emph{autoreset=False}, \emph{convert=None}, \emph{strip=None}, \emph{wrap=True}}{}
-\end{fulllineitems}
-
-\index{reinit() (in module src.colorama.initialise)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.initialise.reinit}\pysiglinewithargsret{\sphinxcode{src.colorama.initialise.}\sphinxbfcode{reinit}}{}{}
-\end{fulllineitems}
-
-\index{reset\_all() (in module src.colorama.initialise)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.initialise.reset_all}\pysiglinewithargsret{\sphinxcode{src.colorama.initialise.}\sphinxbfcode{reset\_all}}{}{}
-\end{fulllineitems}
-
-\index{wrap\_stream() (in module src.colorama.initialise)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.initialise.wrap_stream}\pysiglinewithargsret{\sphinxcode{src.colorama.initialise.}\sphinxbfcode{wrap\_stream}}{\emph{stream}, \emph{convert}, \emph{strip}, \emph{autoreset}, \emph{wrap}}{}
-\end{fulllineitems}
-
-
-
-\subparagraph{src.colorama.win32 module}
-\label{commands/apidoc/src.colorama:src-colorama-win32-module}\label{commands/apidoc/src.colorama:module-src.colorama.win32}\index{src.colorama.win32 (module)}\index{SetConsoleTextAttribute() (in module src.colorama.win32)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.win32.SetConsoleTextAttribute}\pysiglinewithargsret{\sphinxcode{src.colorama.win32.}\sphinxbfcode{SetConsoleTextAttribute}}{\emph{*\_}}{}
-\end{fulllineitems}
-
-\index{winapi\_test() (in module src.colorama.win32)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.win32.winapi_test}\pysiglinewithargsret{\sphinxcode{src.colorama.win32.}\sphinxbfcode{winapi\_test}}{\emph{*\_}}{}
-\end{fulllineitems}
-
-
-
-\subparagraph{src.colorama.winterm module}
-\label{commands/apidoc/src.colorama:module-src.colorama.winterm}\label{commands/apidoc/src.colorama:src-colorama-winterm-module}\index{src.colorama.winterm (module)}\index{WinColor (class in src.colorama.winterm)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinColor}\pysigline{\sphinxstrong{class }\sphinxcode{src.colorama.winterm.}\sphinxbfcode{WinColor}}
-Bases: \sphinxcode{object}
-\index{BLACK (src.colorama.winterm.WinColor attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinColor.BLACK}\pysigline{\sphinxbfcode{BLACK}\sphinxstrong{ = 0}}
-\end{fulllineitems}
-
-\index{BLUE (src.colorama.winterm.WinColor attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinColor.BLUE}\pysigline{\sphinxbfcode{BLUE}\sphinxstrong{ = 1}}
-\end{fulllineitems}
-
-\index{CYAN (src.colorama.winterm.WinColor attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinColor.CYAN}\pysigline{\sphinxbfcode{CYAN}\sphinxstrong{ = 3}}
-\end{fulllineitems}
-
-\index{GREEN (src.colorama.winterm.WinColor attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinColor.GREEN}\pysigline{\sphinxbfcode{GREEN}\sphinxstrong{ = 2}}
-\end{fulllineitems}
-
-\index{GREY (src.colorama.winterm.WinColor attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinColor.GREY}\pysigline{\sphinxbfcode{GREY}\sphinxstrong{ = 7}}
-\end{fulllineitems}
-
-\index{MAGENTA (src.colorama.winterm.WinColor attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinColor.MAGENTA}\pysigline{\sphinxbfcode{MAGENTA}\sphinxstrong{ = 5}}
-\end{fulllineitems}
-
-\index{RED (src.colorama.winterm.WinColor attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinColor.RED}\pysigline{\sphinxbfcode{RED}\sphinxstrong{ = 4}}
-\end{fulllineitems}
-
-\index{YELLOW (src.colorama.winterm.WinColor attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinColor.YELLOW}\pysigline{\sphinxbfcode{YELLOW}\sphinxstrong{ = 6}}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{WinStyle (class in src.colorama.winterm)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinStyle}\pysigline{\sphinxstrong{class }\sphinxcode{src.colorama.winterm.}\sphinxbfcode{WinStyle}}
-Bases: \sphinxcode{object}
-\index{BRIGHT (src.colorama.winterm.WinStyle attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinStyle.BRIGHT}\pysigline{\sphinxbfcode{BRIGHT}\sphinxstrong{ = 8}}
-\end{fulllineitems}
-
-\index{BRIGHT\_BACKGROUND (src.colorama.winterm.WinStyle attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinStyle.BRIGHT_BACKGROUND}\pysigline{\sphinxbfcode{BRIGHT\_BACKGROUND}\sphinxstrong{ = 128}}
-\end{fulllineitems}
-
-\index{NORMAL (src.colorama.winterm.WinStyle attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinStyle.NORMAL}\pysigline{\sphinxbfcode{NORMAL}\sphinxstrong{ = 0}}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{WinTerm (class in src.colorama.winterm)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinTerm}\pysigline{\sphinxstrong{class }\sphinxcode{src.colorama.winterm.}\sphinxbfcode{WinTerm}}
-Bases: \sphinxcode{object}
-\index{back() (src.colorama.winterm.WinTerm method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinTerm.back}\pysiglinewithargsret{\sphinxbfcode{back}}{\emph{back=None}, \emph{light=False}, \emph{on\_stderr=False}}{}
-\end{fulllineitems}
-
-\index{cursor\_adjust() (src.colorama.winterm.WinTerm method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinTerm.cursor_adjust}\pysiglinewithargsret{\sphinxbfcode{cursor\_adjust}}{\emph{x}, \emph{y}, \emph{on\_stderr=False}}{}
-\end{fulllineitems}
-
-\index{erase\_line() (src.colorama.winterm.WinTerm method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinTerm.erase_line}\pysiglinewithargsret{\sphinxbfcode{erase\_line}}{\emph{mode=0}, \emph{on\_stderr=False}}{}
-\end{fulllineitems}
-
-\index{erase\_screen() (src.colorama.winterm.WinTerm method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinTerm.erase_screen}\pysiglinewithargsret{\sphinxbfcode{erase\_screen}}{\emph{mode=0}, \emph{on\_stderr=False}}{}
-\end{fulllineitems}
-
-\index{fore() (src.colorama.winterm.WinTerm method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinTerm.fore}\pysiglinewithargsret{\sphinxbfcode{fore}}{\emph{fore=None}, \emph{light=False}, \emph{on\_stderr=False}}{}
-\end{fulllineitems}
-
-\index{get\_attrs() (src.colorama.winterm.WinTerm method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinTerm.get_attrs}\pysiglinewithargsret{\sphinxbfcode{get\_attrs}}{}{}
-\end{fulllineitems}
-
-\index{get\_position() (src.colorama.winterm.WinTerm method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinTerm.get_position}\pysiglinewithargsret{\sphinxbfcode{get\_position}}{\emph{handle}}{}
-\end{fulllineitems}
-
-\index{reset\_all() (src.colorama.winterm.WinTerm method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinTerm.reset_all}\pysiglinewithargsret{\sphinxbfcode{reset\_all}}{\emph{on\_stderr=None}}{}
-\end{fulllineitems}
-
-\index{set\_attrs() (src.colorama.winterm.WinTerm method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinTerm.set_attrs}\pysiglinewithargsret{\sphinxbfcode{set\_attrs}}{\emph{value}}{}
-\end{fulllineitems}
-
-\index{set\_console() (src.colorama.winterm.WinTerm method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinTerm.set_console}\pysiglinewithargsret{\sphinxbfcode{set\_console}}{\emph{attrs=None}, \emph{on\_stderr=False}}{}
-\end{fulllineitems}
-
-\index{set\_cursor\_position() (src.colorama.winterm.WinTerm method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinTerm.set_cursor_position}\pysiglinewithargsret{\sphinxbfcode{set\_cursor\_position}}{\emph{position=None}, \emph{on\_stderr=False}}{}
-\end{fulllineitems}
-
-\index{set\_title() (src.colorama.winterm.WinTerm method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinTerm.set_title}\pysiglinewithargsret{\sphinxbfcode{set\_title}}{\emph{title}}{}
-\end{fulllineitems}
-
-\index{style() (src.colorama.winterm.WinTerm method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.colorama:src.colorama.winterm.WinTerm.style}\pysiglinewithargsret{\sphinxbfcode{style}}{\emph{style=None}, \emph{on\_stderr=False}}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-
-
-\subparagraph{Module contents}
-\label{commands/apidoc/src.colorama:module-src.colorama}\label{commands/apidoc/src.colorama:module-contents}\index{src.colorama (module)}
-
-\paragraph{src.example package}
-\label{commands/apidoc/src.example:src-example-package}\label{commands/apidoc/src.example::doc}
-
-\subparagraph{Submodules}
-\label{commands/apidoc/src.example:submodules}
-
-\subparagraph{src.example.essai\_logging\_1 module}
-\label{commands/apidoc/src.example:module-src.example.essai_logging_1}\label{commands/apidoc/src.example:src-example-essai-logging-1-module}\index{src.example.essai\_logging\_1 (module)}
-\url{http://sametmax.com/ecrire-des-logs-en-python/}
-\url{https://docs.python.org/3/library/time.html\#time.strftime}
-
-essai utilisation logger plusieurs handler format different
-\begin{quote}
-
-/usr/lib/python2.7/logging/\_\_init\_\_.pyc
-
-init MyLogger, fmt='\%(asctime)s :: \%(levelname)-8s :: \%(message)s', level=`20'
-
-2018-03-11 18:51:21 :: INFO     :: test logger info
-2018-03-11 18:51:21 :: WARNING  :: test logger warning
-2018-03-11 18:51:21 :: ERROR    :: test logger error
-2018-03-11 18:51:21 :: CRITICAL :: test logger critical
-
-init MyLogger, fmt='None', level=`10'
-
-2018-03-11 18:51:21 :: DEBUG    :: test logger debug
-test logger debug
-2018-03-11 18:51:21 :: INFO     :: test logger info
-test logger info
-2018-03-11 18:51:21 :: WARNING  :: test logger warning
-test logger warning
-2018-03-11 18:51:21 :: ERROR    :: test logger error
-test logger error
-2018-03-11 18:51:21 :: CRITICAL :: test logger critical
-test logger critical
-\end{quote}
-\index{getMyLogger() (in module src.example.essai\_logging\_1)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.example:src.example.essai_logging_1.getMyLogger}\pysiglinewithargsret{\sphinxcode{src.example.essai\_logging\_1.}\sphinxbfcode{getMyLogger}}{}{}
-\end{fulllineitems}
-
-\index{initMyLogger() (in module src.example.essai\_logging\_1)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.example:src.example.essai_logging_1.initMyLogger}\pysiglinewithargsret{\sphinxcode{src.example.essai\_logging\_1.}\sphinxbfcode{initMyLogger}}{\emph{fmt=None}, \emph{level=None}}{}
-\end{fulllineitems}
-
-\index{testLogger1() (in module src.example.essai\_logging\_1)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.example:src.example.essai_logging_1.testLogger1}\pysiglinewithargsret{\sphinxcode{src.example.essai\_logging\_1.}\sphinxbfcode{testLogger1}}{}{}
-\end{fulllineitems}
-
-
-
-\subparagraph{src.example.essai\_logging\_2 module}
-\label{commands/apidoc/src.example:module-src.example.essai_logging_2}\label{commands/apidoc/src.example:src-example-essai-logging-2-module}\index{src.example.essai\_logging\_2 (module)}
-\url{http://sametmax.com/ecrire-des-logs-en-python/}
-\url{https://docs.python.org/3/library/time.html\#time.strftime}
-
-essai utilisation logger un handler format different 
-sur info() pas de format et su other format
-\begin{quote}
-
-/usr/lib/python2.7/logging/\_\_init\_\_.pyc
-
-init MyLogger, fmt='\%(asctime)s :: \%(levelname)-8s :: \%(message)s', level=`20'
-
-test logger info
-2018-03-11 18:51:51 :: WARNING  :: test logger warning
-2018-03-11 18:51:51 :: ERROR    :: test logger error
-2018-03-11 18:51:51 :: CRITICAL :: test logger critical
-\end{quote}
-\index{MyFormatter (class in src.example.essai\_logging\_2)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.example:src.example.essai_logging_2.MyFormatter}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.example.essai\_logging\_2.}\sphinxbfcode{MyFormatter}}{\emph{fmt=None}, \emph{datefmt=None}}{}
-Bases: \sphinxcode{logging.Formatter}
-\index{format() (src.example.essai\_logging\_2.MyFormatter method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.example:src.example.essai_logging_2.MyFormatter.format}\pysiglinewithargsret{\sphinxbfcode{format}}{\emph{record}}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{getMyLogger() (in module src.example.essai\_logging\_2)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.example:src.example.essai_logging_2.getMyLogger}\pysiglinewithargsret{\sphinxcode{src.example.essai\_logging\_2.}\sphinxbfcode{getMyLogger}}{}{}
-\end{fulllineitems}
-
-\index{initMyLogger() (in module src.example.essai\_logging\_2)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.example:src.example.essai_logging_2.initMyLogger}\pysiglinewithargsret{\sphinxcode{src.example.essai\_logging\_2.}\sphinxbfcode{initMyLogger}}{\emph{fmt=None}, \emph{level=None}}{}
-\end{fulllineitems}
-
-\index{testLogger1() (in module src.example.essai\_logging\_2)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src.example:src.example.essai_logging_2.testLogger1}\pysiglinewithargsret{\sphinxcode{src.example.essai\_logging\_2.}\sphinxbfcode{testLogger1}}{}{}
-\end{fulllineitems}
-
-
-
-\subparagraph{Module contents}
-\label{commands/apidoc/src.example:module-contents}\label{commands/apidoc/src.example:module-src.example}\index{src.example (module)}
-
-\subsubsection{Submodules}
-\label{commands/apidoc/src:submodules}
-
-\subsubsection{src.ElementTree module}
-\label{commands/apidoc/src:src-elementtree-module}\label{commands/apidoc/src:module-src.ElementTree}\index{src.ElementTree (module)}\index{Comment() (in module src.ElementTree)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.Comment}\pysiglinewithargsret{\sphinxcode{src.ElementTree.}\sphinxbfcode{Comment}}{\emph{text=None}}{}
-\end{fulllineitems}
-
-\index{dump() (in module src.ElementTree)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.dump}\pysiglinewithargsret{\sphinxcode{src.ElementTree.}\sphinxbfcode{dump}}{\emph{elem}}{}
-\end{fulllineitems}
-
-\index{Element() (in module src.ElementTree)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.Element}\pysiglinewithargsret{\sphinxcode{src.ElementTree.}\sphinxbfcode{Element}}{\emph{tag}, \emph{attrib=\{\}}, \emph{**extra}}{}
-\end{fulllineitems}
-
-\index{ElementTree (class in src.ElementTree)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.ElementTree}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.ElementTree.}\sphinxbfcode{ElementTree}}{\emph{element=None}, \emph{file=None}}{}~\index{find() (src.ElementTree.ElementTree method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.ElementTree.find}\pysiglinewithargsret{\sphinxbfcode{find}}{\emph{path}}{}
-\end{fulllineitems}
-
-\index{findall() (src.ElementTree.ElementTree method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.ElementTree.findall}\pysiglinewithargsret{\sphinxbfcode{findall}}{\emph{path}}{}
-\end{fulllineitems}
-
-\index{findtext() (src.ElementTree.ElementTree method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.ElementTree.findtext}\pysiglinewithargsret{\sphinxbfcode{findtext}}{\emph{path}, \emph{default=None}}{}
-\end{fulllineitems}
-
-\index{getiterator() (src.ElementTree.ElementTree method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.ElementTree.getiterator}\pysiglinewithargsret{\sphinxbfcode{getiterator}}{\emph{tag=None}}{}
-\end{fulllineitems}
-
-\index{getroot() (src.ElementTree.ElementTree method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.ElementTree.getroot}\pysiglinewithargsret{\sphinxbfcode{getroot}}{}{}
-\end{fulllineitems}
-
-\index{parse() (src.ElementTree.ElementTree method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.ElementTree.parse}\pysiglinewithargsret{\sphinxbfcode{parse}}{\emph{source}, \emph{parser=None}}{}
-\end{fulllineitems}
-
-\index{write() (src.ElementTree.ElementTree method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.ElementTree.write}\pysiglinewithargsret{\sphinxbfcode{write}}{\emph{file}, \emph{encoding='us-ascii'}}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{fromstring() (in module src.ElementTree)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.fromstring}\pysiglinewithargsret{\sphinxcode{src.ElementTree.}\sphinxbfcode{fromstring}}{\emph{text}}{}
-\end{fulllineitems}
-
-\index{iselement() (in module src.ElementTree)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.iselement}\pysiglinewithargsret{\sphinxcode{src.ElementTree.}\sphinxbfcode{iselement}}{\emph{element}}{}
-\end{fulllineitems}
-
-\index{iterparse (class in src.ElementTree)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.iterparse}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.ElementTree.}\sphinxbfcode{iterparse}}{\emph{source}, \emph{events=None}}{}~\index{next() (src.ElementTree.iterparse method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.iterparse.next}\pysiglinewithargsret{\sphinxbfcode{next}}{}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{parse() (in module src.ElementTree)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.parse}\pysiglinewithargsret{\sphinxcode{src.ElementTree.}\sphinxbfcode{parse}}{\emph{source}, \emph{parser=None}}{}
-\end{fulllineitems}
-
-\index{PI() (in module src.ElementTree)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.PI}\pysiglinewithargsret{\sphinxcode{src.ElementTree.}\sphinxbfcode{PI}}{\emph{target}, \emph{text=None}}{}
-\end{fulllineitems}
-
-\index{ProcessingInstruction() (in module src.ElementTree)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.ProcessingInstruction}\pysiglinewithargsret{\sphinxcode{src.ElementTree.}\sphinxbfcode{ProcessingInstruction}}{\emph{target}, \emph{text=None}}{}
-\end{fulllineitems}
-
-\index{QName (class in src.ElementTree)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.QName}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.ElementTree.}\sphinxbfcode{QName}}{\emph{text\_or\_uri}, \emph{tag=None}}{}
-\end{fulllineitems}
-
-\index{SubElement() (in module src.ElementTree)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.SubElement}\pysiglinewithargsret{\sphinxcode{src.ElementTree.}\sphinxbfcode{SubElement}}{\emph{parent}, \emph{tag}, \emph{attrib=\{\}}, \emph{**extra}}{}
-\end{fulllineitems}
-
-\index{tostring() (in module src.ElementTree)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.tostring}\pysiglinewithargsret{\sphinxcode{src.ElementTree.}\sphinxbfcode{tostring}}{\emph{element}, \emph{encoding=None}}{}
-\end{fulllineitems}
-
-\index{TreeBuilder (class in src.ElementTree)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.TreeBuilder}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.ElementTree.}\sphinxbfcode{TreeBuilder}}{\emph{element\_factory=None}}{}~\index{close() (src.ElementTree.TreeBuilder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.TreeBuilder.close}\pysiglinewithargsret{\sphinxbfcode{close}}{}{}
-\end{fulllineitems}
-
-\index{data() (src.ElementTree.TreeBuilder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.TreeBuilder.data}\pysiglinewithargsret{\sphinxbfcode{data}}{\emph{data}}{}
-\end{fulllineitems}
-
-\index{end() (src.ElementTree.TreeBuilder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.TreeBuilder.end}\pysiglinewithargsret{\sphinxbfcode{end}}{\emph{tag}}{}
-\end{fulllineitems}
-
-\index{start() (src.ElementTree.TreeBuilder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.TreeBuilder.start}\pysiglinewithargsret{\sphinxbfcode{start}}{\emph{tag}, \emph{attrs}}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{XML() (in module src.ElementTree)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.XML}\pysiglinewithargsret{\sphinxcode{src.ElementTree.}\sphinxbfcode{XML}}{\emph{text}}{}
-\end{fulllineitems}
-
-\index{XMLTreeBuilder (class in src.ElementTree)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.XMLTreeBuilder}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.ElementTree.}\sphinxbfcode{XMLTreeBuilder}}{\emph{html=0}, \emph{target=None}}{}~\index{close() (src.ElementTree.XMLTreeBuilder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.XMLTreeBuilder.close}\pysiglinewithargsret{\sphinxbfcode{close}}{}{}
-\end{fulllineitems}
-
-\index{doctype() (src.ElementTree.XMLTreeBuilder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.XMLTreeBuilder.doctype}\pysiglinewithargsret{\sphinxbfcode{doctype}}{\emph{name}, \emph{pubid}, \emph{system}}{}
-\end{fulllineitems}
-
-\index{feed() (src.ElementTree.XMLTreeBuilder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.ElementTree.XMLTreeBuilder.feed}\pysiglinewithargsret{\sphinxbfcode{feed}}{\emph{data}}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-
-
-\subsubsection{src.architecture module}
-\label{commands/apidoc/src:module-src.architecture}\label{commands/apidoc/src:src-architecture-module}\index{src.architecture (module)}
-In this file : all the stuff that can change with the architecture 
-on which SAT is running
-\index{get\_distrib\_version() (in module src.architecture)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.architecture.get_distrib_version}\pysiglinewithargsret{\sphinxcode{src.architecture.}\sphinxbfcode{get\_distrib\_version}}{\emph{distrib}, \emph{codes}}{}
-Gets the version of the distribution
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{distrib}}) -- The distribution on which the version will be found.
-
-\item {} 
-\textbf{\texttt{L\{Mapping\}}} (\emph{\texttt{codes}}) -- The map containing distribution correlation table.
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-The version of the distribution on which salomeTools is running, 
-regarding the distribution correlation table contained in codes 
-variable.
-
-\item[{Return type}] \leavevmode
-str
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_distribution() (in module src.architecture)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.architecture.get_distribution}\pysiglinewithargsret{\sphinxcode{src.architecture.}\sphinxbfcode{get\_distribution}}{\emph{codes}}{}
-Gets the code for the distribution
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{L\{Mapping\}}} (\emph{\texttt{codes}}) -- The map containing distribution correlation table.
-
-\item[{Returns}] \leavevmode
-The distribution on which salomeTools is running, regarding the 
-distribution correlation table contained in codes variable.
-
-\item[{Return type}] \leavevmode
-str
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_nb\_proc() (in module src.architecture)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.architecture.get_nb_proc}\pysiglinewithargsret{\sphinxcode{src.architecture.}\sphinxbfcode{get\_nb\_proc}}{}{}~\begin{description}
-\item[{Gets the number of processors of the machine }] \leavevmode
-on which salomeTools is running.
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Returns}] \leavevmode
-the number of processors.
-
-\item[{Return type}] \leavevmode
-str
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_python\_version() (in module src.architecture)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.architecture.get_python_version}\pysiglinewithargsret{\sphinxcode{src.architecture.}\sphinxbfcode{get\_python\_version}}{}{}
-Gets the version of the running python.
-\begin{quote}\begin{description}
-\item[{Returns}] \leavevmode
-the version of the running python.
-
-\item[{Return type}] \leavevmode
-str
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_user() (in module src.architecture)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.architecture.get_user}\pysiglinewithargsret{\sphinxcode{src.architecture.}\sphinxbfcode{get\_user}}{}{}
-method that gets the username that launched sat
-\begin{quote}\begin{description}
-\item[{Return type}] \leavevmode
-str
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{is\_windows() (in module src.architecture)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.architecture.is_windows}\pysiglinewithargsret{\sphinxcode{src.architecture.}\sphinxbfcode{is\_windows}}{}{}
-method that checks windows OS
-\begin{quote}\begin{description}
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-
-
-\subsubsection{src.catchAll module}
-\label{commands/apidoc/src:module-src.catchAll}\label{commands/apidoc/src:src-catchall-module}\index{src.catchAll (module)}
-define class as a simple dictionary with keys
-with pretty print \_\_str\_\_ and \_\_repr\_\_ (indented as recursive)
-and jsonDumps()
-\begin{description}
-\item[{usage:}] \leavevmode
-\textgreater{}\textgreater{} import catchAll as CAA
-\textgreater{}\textgreater{} a = CAA.CatchAll()
-\textgreater{}\textgreater{} a.tintin = ``reporter''
-\textgreater{}\textgreater{} a.milou = ``dog''
-\textgreater{}\textgreater{} print(``a=\%s'' \% a)
-\textgreater{}\textgreater{} print(``tintin: \%s'' \% a.tintin)
-
-\end{description}
-\index{CatchAll (class in src.catchAll)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.catchAll.CatchAll}\pysigline{\sphinxstrong{class }\sphinxcode{src.catchAll.}\sphinxbfcode{CatchAll}}
-Bases: \sphinxcode{object}
-
-class as simple dynamic dictionary 
-with predefined keys as properties in
-inherited classes through \_\_init\_\_ method. Or NOT. 
-with pretty print \_\_str\_\_ and \_\_repr\_\_ (indented as recursive)
-with jsonDumps()
-
-usage:
-
-\textgreater{}\textgreater{} import catchAll as CAA
-\textgreater{}\textgreater{} a = CAA.CatchAll()
-\textgreater{}\textgreater{} a.tintin = ``reporter''
-\textgreater{}\textgreater{} a.milou = ``dog''
-\textgreater{}\textgreater{} print(``a=\%s'' \% a)
-\textgreater{}\textgreater{} print(``tintin: \%s'' \% a.tintin)
-
-as
-
-\textgreater{}\textgreater{} a = \{\}
-\textgreater{}\textgreater{} a{[}''tintin''{]} = ``reporter''
-\textgreater{}\textgreater{} a{[}''milou''{]} = ``dog''
-\textgreater{}\textgreater{} print(``tintin: \%s'' \% a{[}''tintin''{]}
-\index{jsonDumps() (src.catchAll.CatchAll method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.catchAll.CatchAll.jsonDumps}\pysiglinewithargsret{\sphinxbfcode{jsonDumps}}{}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{dumper() (in module src.catchAll)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.catchAll.dumper}\pysiglinewithargsret{\sphinxcode{src.catchAll.}\sphinxbfcode{dumper}}{\emph{obj}}{}
-to json explore subclass object as dict
-
-\end{fulllineitems}
-
-\index{dumperType() (in module src.catchAll)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.catchAll.dumperType}\pysiglinewithargsret{\sphinxcode{src.catchAll.}\sphinxbfcode{dumperType}}{\emph{obj}}{}
-to get a ``\_type'' to trace json subclass object,
-but ignore all attributes begining with `\_'
-
-\end{fulllineitems}
-
-\index{jsonDumps() (in module src.catchAll)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.catchAll.jsonDumps}\pysiglinewithargsret{\sphinxcode{src.catchAll.}\sphinxbfcode{jsonDumps}}{\emph{obj}}{}
-to get direct default jsonDumps method
-
-\end{fulllineitems}
-
-
-
-\subsubsection{src.coloringSat module}
-\label{commands/apidoc/src:module-src.coloringSat}\label{commands/apidoc/src:src-coloringsat-module}\index{src.coloringSat (module)}
-simple tagging as `\textless{}color\textgreater{}' for simple coloring log messages on terminal(s)
-window or unix or ios using backend colorama
-
-using `\textless{}color\textgreater{}' because EZ human readable
-so `\textless{}color\textgreater{}' are not supposed existing in log message
-``\{\}''.format() is not choosen because ``\{\}'' are present
-in log messages of contents of python dict (as JSON) etc.
-
-example:
-\textgreater{}\textgreater{} log(``this is in \textless{}green\textgreater{}color green\textless{}reset\textgreater{}, OK is in blue: \textless{}blue\textgreater{}OK?'')
-\index{ColoringStream (class in src.coloringSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.coloringSat.ColoringStream}\pysigline{\sphinxstrong{class }\sphinxcode{src.coloringSat.}\sphinxbfcode{ColoringStream}}
-Bases: \sphinxcode{object}
-
-write my stream class
-only write and flush are used for the streaming
-\url{https://docs.python.org/2/library/logging.handlers.html}
-\url{https://stackoverflow.com/questions/31999627/storing-logger-messages-in-a-string}
-\index{flush() (src.coloringSat.ColoringStream method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.coloringSat.ColoringStream.flush}\pysiglinewithargsret{\sphinxbfcode{flush}}{}{}
-\end{fulllineitems}
-
-\index{write() (src.coloringSat.ColoringStream method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.coloringSat.ColoringStream.write}\pysiglinewithargsret{\sphinxbfcode{write}}{\emph{astr}}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{cleanColors() (in module src.coloringSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.coloringSat.cleanColors}\pysiglinewithargsret{\sphinxcode{src.coloringSat.}\sphinxbfcode{cleanColors}}{\emph{msg}}{}
-clean the message of color tags `\textless{}red\textgreater{} ...
-
-\end{fulllineitems}
-
-\index{indent() (in module src.coloringSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.coloringSat.indent}\pysiglinewithargsret{\sphinxcode{src.coloringSat.}\sphinxbfcode{indent}}{\emph{msg}, \emph{nb}, \emph{car=' `}}{}
-indent nb car (spaces) multi lines message except first one
-
-\end{fulllineitems}
-
-\index{log() (in module src.coloringSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.coloringSat.log}\pysiglinewithargsret{\sphinxcode{src.coloringSat.}\sphinxbfcode{log}}{\emph{msg}}{}
-elementary log stdout for debug if \_verbose
-
-\end{fulllineitems}
-
-\index{replace() (in module src.coloringSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.coloringSat.replace}\pysiglinewithargsret{\sphinxcode{src.coloringSat.}\sphinxbfcode{replace}}{\emph{msg}, \emph{tags}}{}
-\end{fulllineitems}
-
-\index{toColor() (in module src.coloringSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.coloringSat.toColor}\pysiglinewithargsret{\sphinxcode{src.coloringSat.}\sphinxbfcode{toColor}}{\emph{msg}}{}
-automatically clean the message of color tags `\textless{}red\textgreater{} ... 
-if the terminal output stdout is redirected by user
-if not, replace tags with ansi color codes
-
-example:
-\textgreater{}\textgreater{} sat compile SALOME \textgreater{} log.txt
-
-\end{fulllineitems}
-
-\index{toColor\_AnsiToWin32() (in module src.coloringSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.coloringSat.toColor_AnsiToWin32}\pysiglinewithargsret{\sphinxcode{src.coloringSat.}\sphinxbfcode{toColor\_AnsiToWin32}}{\emph{msg}}{}
-for test debug no wrapping
-
-\end{fulllineitems}
-
-
-
-\subsubsection{src.compilation module}
-\label{commands/apidoc/src:module-src.compilation}\label{commands/apidoc/src:src-compilation-module}\index{src.compilation (module)}\index{Builder (class in src.compilation)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.compilation.Builder}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.compilation.}\sphinxbfcode{Builder}}{\emph{config}, \emph{logger}, \emph{product\_info}, \emph{options=OptResult(   )}, \emph{check\_src=True}}{}
-Class to handle all construction steps, like cmake, configure, make, ...
-\index{build\_configure() (src.compilation.Builder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.compilation.Builder.build_configure}\pysiglinewithargsret{\sphinxbfcode{build\_configure}}{\emph{options='`}}{}
-\end{fulllineitems}
-
-\index{check() (src.compilation.Builder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.compilation.Builder.check}\pysiglinewithargsret{\sphinxbfcode{check}}{\emph{command='`}}{}
-\end{fulllineitems}
-
-\index{cmake() (src.compilation.Builder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.compilation.Builder.cmake}\pysiglinewithargsret{\sphinxbfcode{cmake}}{\emph{options='`}}{}
-\end{fulllineitems}
-
-\index{complete\_environment() (src.compilation.Builder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.compilation.Builder.complete_environment}\pysiglinewithargsret{\sphinxbfcode{complete\_environment}}{\emph{make\_options}}{}
-\end{fulllineitems}
-
-\index{configure() (src.compilation.Builder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.compilation.Builder.configure}\pysiglinewithargsret{\sphinxbfcode{configure}}{\emph{options='`}}{}
-\end{fulllineitems}
-
-\index{do\_batch\_script\_build() (src.compilation.Builder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.compilation.Builder.do_batch_script_build}\pysiglinewithargsret{\sphinxbfcode{do\_batch\_script\_build}}{\emph{script}, \emph{nb\_proc}}{}
-\end{fulllineitems}
-
-\index{do\_default\_build() (src.compilation.Builder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.compilation.Builder.do_default_build}\pysiglinewithargsret{\sphinxbfcode{do\_default\_build}}{\emph{build\_conf\_options='`}, \emph{configure\_options='`}, \emph{show\_warning=True}}{}
-\end{fulllineitems}
-
-\index{do\_python\_script\_build() (src.compilation.Builder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.compilation.Builder.do_python_script_build}\pysiglinewithargsret{\sphinxbfcode{do\_python\_script\_build}}{\emph{script}, \emph{nb\_proc}}{}
-Performs a build with a script.
-
-\end{fulllineitems}
-
-\index{do\_script\_build() (src.compilation.Builder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.compilation.Builder.do_script_build}\pysiglinewithargsret{\sphinxbfcode{do\_script\_build}}{\emph{script}, \emph{number\_of\_proc=0}}{}
-\end{fulllineitems}
-
-\index{hack\_libtool() (src.compilation.Builder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.compilation.Builder.hack_libtool}\pysiglinewithargsret{\sphinxbfcode{hack\_libtool}}{}{}
-\end{fulllineitems}
-
-\index{install() (src.compilation.Builder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.compilation.Builder.install}\pysiglinewithargsret{\sphinxbfcode{install}}{}{}
-\end{fulllineitems}
-
-\index{log() (src.compilation.Builder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.compilation.Builder.log}\pysiglinewithargsret{\sphinxbfcode{log}}{\emph{text}, \emph{level}, \emph{showInfo=True}}{}
-Shortcut method to log in log file.
-
-\end{fulllineitems}
-
-\index{log\_command() (src.compilation.Builder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.compilation.Builder.log_command}\pysiglinewithargsret{\sphinxbfcode{log\_command}}{\emph{command}}{}
-Shortcut method to log a command.
-
-\end{fulllineitems}
-
-\index{make() (src.compilation.Builder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.compilation.Builder.make}\pysiglinewithargsret{\sphinxbfcode{make}}{\emph{nb\_proc}, \emph{make\_opt='`}}{}
-\end{fulllineitems}
-
-\index{prepare() (src.compilation.Builder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.compilation.Builder.prepare}\pysiglinewithargsret{\sphinxbfcode{prepare}}{}{}
-Prepares the environment.
-Build two environment: one for building and one for testing (launch).
-
-\end{fulllineitems}
-
-\index{put\_txt\_log\_in\_appli\_log\_dir() (src.compilation.Builder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.compilation.Builder.put_txt_log_in_appli_log_dir}\pysiglinewithargsret{\sphinxbfcode{put\_txt\_log\_in\_appli\_log\_dir}}{\emph{file\_name}}{}~\begin{description}
-\item[{Put the txt log (that contain the system logs, like make command}] \leavevmode
-output) in the directory \textless{}APPLICATION DIR\textgreater{}/LOGS/\textless{}product\_name\textgreater{}/
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Str}} (\emph{\texttt{file\_name}}) -- the name of the file to write
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{wmake() (src.compilation.Builder method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.compilation.Builder.wmake}\pysiglinewithargsret{\sphinxbfcode{wmake}}{\emph{nb\_proc}, \emph{opt\_nb\_proc=None}}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-
-
-\subsubsection{src.configManager module}
-\label{commands/apidoc/src:module-src.configManager}\label{commands/apidoc/src:src-configmanager-module}\index{src.configManager (module)}\index{ConfigManager (class in src.configManager)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.configManager.ConfigManager}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.configManager.}\sphinxbfcode{ConfigManager}}{\emph{runner}}{}
-Class that manages the read of all the config .pyconf files of salomeTools
-\index{create\_config\_file() (src.configManager.ConfigManager method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.configManager.ConfigManager.create_config_file}\pysiglinewithargsret{\sphinxbfcode{create\_config\_file}}{\emph{config}}{}
-This method is called when there are no user config file. 
-It build it from scratch.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{class 'PYCONF.Config'}} (\emph{\texttt{config}}) -- The global config.
-
-\item[{Returns}] \leavevmode
-the config corresponding to the file created.
-
-\item[{Return type}] \leavevmode
-config class `PYCONF.Config'
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_command\_line\_overrides() (src.configManager.ConfigManager method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.configManager.ConfigManager.get_command_line_overrides}\pysiglinewithargsret{\sphinxbfcode{get\_command\_line\_overrides}}{\emph{options}, \emph{sections}}{}
-get all the overwrites that are in the command line
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{options}} -- the options from salomeTools class 
-initialization (like -l5 or --overwrite)
-
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{sections}}) -- The config section to overwrite.
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-The list of all the overwrites to apply.
-
-\item[{Return type}] \leavevmode
-{\hyperref[commands/apidoc/src:src.utilsSat.Path.list]{\sphinxcrossref{list}}} (\autopageref*{commands/apidoc/src:src.utilsSat.Path.list})
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_config() (src.configManager.ConfigManager method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.configManager.ConfigManager.get_config}\pysiglinewithargsret{\sphinxbfcode{get\_config}}{\emph{application=None}, \emph{options=None}, \emph{command=None}, \emph{datadir=None}}{}
-get the config from all the configuration files.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{datadir}}) -- The application for which salomeTools is called.
-
-\item {} 
-\textbf{\texttt{class Options}} ({\hyperref[commands/apidoc/src:module\string-src.options]{\sphinxcrossref{\emph{\texttt{options}}}}} (\autopageref*{commands/apidoc/src:module-src.options})) -- The general salomeTools options (--overwrite or -v5, for example)
-
-\item {} 
-\textbf{\texttt{str}} -- The command that is called.
-
-\item {} 
-\textbf{\texttt{str}} -- The repository that contain external data for salomeTools.
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-The final config.
-
-\item[{Return type}] \leavevmode
-class `PYCONF.Config'
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_user\_config\_file() (src.configManager.ConfigManager method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.configManager.ConfigManager.get_user_config_file}\pysiglinewithargsret{\sphinxbfcode{get\_user\_config\_file}}{}{}
-Get the user config file
-\begin{quote}\begin{description}
-\item[{Returns}] \leavevmode
-path to the user config file.
-
-\item[{Return type}] \leavevmode
-str
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{set\_user\_config\_file() (src.configManager.ConfigManager method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.configManager.ConfigManager.set_user_config_file}\pysiglinewithargsret{\sphinxbfcode{set\_user\_config\_file}}{\emph{config}}{}
-Set the user config file name and path.
-If necessary, build it from another one or create it from scratch.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{class 'PYCONF.Config'}} (\emph{\texttt{config}}) -- The global config (containing all pyconf).
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{ConfigOpener (class in src.configManager)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.configManager.ConfigOpener}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.configManager.}\sphinxbfcode{ConfigOpener}}{\emph{pathList}}{}
-Class that helps to find an application pyconf 
-in all the possible directories (pathList)
-\index{get\_path() (src.configManager.ConfigOpener method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.configManager.ConfigOpener.get_path}\pysiglinewithargsret{\sphinxbfcode{get\_path}}{\emph{name}}{}
-The method that returns the entire path of the pyconf searched
-:param name str: The name of the searched pyconf.
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{check\_path() (in module src.configManager)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.configManager.check_path}\pysiglinewithargsret{\sphinxcode{src.configManager.}\sphinxbfcode{check\_path}}{\emph{path}, \emph{ext={[}{]}}}{}
-Construct a text with the input path and ``not found'' if it does not exist.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{Str}} (\emph{\texttt{path}}) -- the path to check.
-
-\item {} 
-\textbf{\texttt{List}} (\emph{\texttt{ext}}) -- An extension. Verify that the path extension is in the list
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-The string of the path with information
-
-\item[{Return type}] \leavevmode
-Str
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{getConfigColored() (in module src.configManager)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.configManager.getConfigColored}\pysiglinewithargsret{\sphinxcode{src.configManager.}\sphinxbfcode{getConfigColored}}{\emph{config}, \emph{path}, \emph{stream}, \emph{show\_label=False}, \emph{level=0}, \emph{show\_full\_path=False}}{}
-Get a colored representation value from a config pyconf instance.
-used recursively from the initial path.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{class 'PYCONF.Config'}} (\emph{\texttt{config}}) -- The configuration from which the value is displayed.
-
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{path}}) -- the path in the configuration of the value to print.
-
-\item {} 
-\textbf{\texttt{boolean}} (\emph{\texttt{show\_label}}) -- if True, do a basic display. (useful for bash completion)
-
-\item {} 
-\textbf{\texttt{stream}} -- the output stream used
-
-\item {} 
-\textbf{\texttt{int}} (\emph{\texttt{level}}) -- The number of spaces to add before display.
-
-\item {} 
-\textbf{\texttt{show\_full\_path}} -- display full path, else relative
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_config\_children() (in module src.configManager)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.configManager.get_config_children}\pysiglinewithargsret{\sphinxcode{src.configManager.}\sphinxbfcode{get\_config\_children}}{\emph{config}, \emph{args}}{}
-Gets the names of the children of the given parameter.
-Useful only for completion mechanism
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{Config}} (\emph{\texttt{config}}) -- The configuration where to read the values
-
-\item {} 
-\textbf{\texttt{args}} -- The path in the config from which get the keys
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_products\_list() (in module src.configManager)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.configManager.get_products_list}\pysiglinewithargsret{\sphinxcode{src.configManager.}\sphinxbfcode{get\_products\_list}}{\emph{self}, \emph{options}, \emph{cfg}, \emph{logger}}{}
-Gives the product list with their informations from 
-configuration regarding the passed options.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{Options}} ({\hyperref[commands/apidoc/src:module\string-src.options]{\sphinxcrossref{\emph{\texttt{options}}}}} (\autopageref*{commands/apidoc/src:module-src.options})) -- The Options instance that stores the commands arguments
-
-\item {} 
-\textbf{\texttt{Config}} (\emph{\texttt{config}}) -- The global configuration
-
-\item {} 
-\textbf{\texttt{Logger}} (\emph{\texttt{logger}}) -- The logger instance to use for the display and logging
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-The list of (product name, product\_informations).
-
-\item[{Return type}] \leavevmode
-List
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{print\_debug() (in module src.configManager)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.configManager.print_debug}\pysiglinewithargsret{\sphinxcode{src.configManager.}\sphinxbfcode{print\_debug}}{\emph{config}, \emph{aPath}, \emph{logger}, \emph{show\_label=False}, \emph{level=0}, \emph{show\_full\_path=False}}{}
-logger output for debugging a config/pyconf
-lines contains: path : expression --\textgreater{} `evaluation'
-
-example:
-PROJECTS.projects.salome.project\_path : \$PWD --\textgreater{} `/tmp/SALOME'
-
-\end{fulllineitems}
-
-\index{print\_value() (in module src.configManager)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.configManager.print_value}\pysiglinewithargsret{\sphinxcode{src.configManager.}\sphinxbfcode{print\_value}}{\emph{config}, \emph{path}, \emph{logger}, \emph{show\_label=False}, \emph{level=0}, \emph{show\_full\_path=False}}{}
-print a colored representation value from a config pyconf instance.
-used recursively from the initial path.
-
-:param see getConfigColored
-
-\end{fulllineitems}
-
-\index{show\_patchs() (in module src.configManager)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.configManager.show_patchs}\pysiglinewithargsret{\sphinxcode{src.configManager.}\sphinxbfcode{show\_patchs}}{\emph{config}, \emph{logger}}{}
-Prints all the used patchs in the application.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{Config}} (\emph{\texttt{config}}) -- the global configuration.
-
-\item {} 
-\textbf{\texttt{Logger}} (\emph{\texttt{logger}}) -- The logger instance to use for the display
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{show\_product\_info() (in module src.configManager)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.configManager.show_product_info}\pysiglinewithargsret{\sphinxcode{src.configManager.}\sphinxbfcode{show\_product\_info}}{\emph{config}, \emph{name}, \emph{logger}}{}
-Display on the terminal and logger information about a product.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{Config}} (\emph{\texttt{config}}) -- the global configuration.
-
-\item {} 
-\textbf{\texttt{Str}} (\emph{\texttt{name}}) -- The name of the product
-
-\item {} 
-\textbf{\texttt{Logger}} (\emph{\texttt{logger}}) -- The logger instance to use for the display
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-
-
-\subsubsection{src.debug module}
-\label{commands/apidoc/src:module-src.debug}\label{commands/apidoc/src:src-debug-module}\index{src.debug (module)}
-This file assume DEBUG functionalities use
-Print salomeTools debug messages in sys.stderr.
-Show pretty print debug representation from instances of SAT classes 
-(pretty print src.pyconf.Config)
-
-WARNING: supposedly show messages in SAT development phase, not production
-
-usage:
-\textgreater{}\textgreater{} import debug as DBG
-\textgreater{}\textgreater{} DBG.write(``aTitle'', aVariable)        \# not shown in production 
-\textgreater{}\textgreater{} DBG.write(``aTitle'', aVariable, True)  \# unconditionaly shown
-\index{InStream (class in src.debug)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.debug.InStream}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.debug.}\sphinxbfcode{InStream}}{\emph{buf='`}}{}
-Bases: \sphinxcode{StringIO.StringIO}
-
-utility class for pyconf.Config input iostream
-
-\end{fulllineitems}
-
-\index{OutStream (class in src.debug)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.debug.OutStream}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.debug.}\sphinxbfcode{OutStream}}{\emph{buf='`}}{}
-Bases: \sphinxcode{StringIO.StringIO}
-
-utility class for pyconf.Config output iostream
-\index{close() (src.debug.OutStream method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.debug.OutStream.close}\pysiglinewithargsret{\sphinxbfcode{close}}{}{}
-because Config.\_\_save\_\_ calls close() stream as file
-keep value before lost as self.value
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{getLocalEnv() (in module src.debug)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.debug.getLocalEnv}\pysiglinewithargsret{\sphinxcode{src.debug.}\sphinxbfcode{getLocalEnv}}{}{}
-get string for environment variables representation
-
-\end{fulllineitems}
-
-\index{getStrConfigDbg() (in module src.debug)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.debug.getStrConfigDbg}\pysiglinewithargsret{\sphinxcode{src.debug.}\sphinxbfcode{getStrConfigDbg}}{\emph{config}}{}
-set string as saveConfigDbg, 
-as (path expression evaluation) for debug
-
-\end{fulllineitems}
-
-\index{getStrConfigStd() (in module src.debug)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.debug.getStrConfigStd}\pysiglinewithargsret{\sphinxcode{src.debug.}\sphinxbfcode{getStrConfigStd}}{\emph{config}}{}
-set string as saveConfigStd, 
-as file .pyconf
-
-\end{fulllineitems}
-
-\index{indent() (in module src.debug)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.debug.indent}\pysiglinewithargsret{\sphinxcode{src.debug.}\sphinxbfcode{indent}}{\emph{text}, \emph{amount=2}, \emph{ch=' `}}{}
-indent multi lines message
-
-\end{fulllineitems}
-
-\index{pop\_debug() (in module src.debug)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.debug.pop_debug}\pysiglinewithargsret{\sphinxcode{src.debug.}\sphinxbfcode{pop\_debug}}{}{}
-restore previous debug outputs status
-
-\end{fulllineitems}
-
-\index{push\_debug() (in module src.debug)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.debug.push_debug}\pysiglinewithargsret{\sphinxcode{src.debug.}\sphinxbfcode{push\_debug}}{\emph{aBool}}{}
-set debug outputs activated, or not
-
-\end{fulllineitems}
-
-\index{saveConfigDbg() (in module src.debug)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.debug.saveConfigDbg}\pysiglinewithargsret{\sphinxcode{src.debug.}\sphinxbfcode{saveConfigDbg}}{\emph{config}, \emph{aStream}, \emph{indent=0}, \emph{path='`}}{}
-pyconf returns multilines (path expression evaluation) for debug
-
-\end{fulllineitems}
-
-\index{saveConfigStd() (in module src.debug)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.debug.saveConfigStd}\pysiglinewithargsret{\sphinxcode{src.debug.}\sphinxbfcode{saveConfigStd}}{\emph{config}, \emph{aStream}}{}
-returns as file .pyconf
-
-\end{fulllineitems}
-
-\index{tofix() (in module src.debug)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.debug.tofix}\pysiglinewithargsret{\sphinxcode{src.debug.}\sphinxbfcode{tofix}}{\emph{title}, \emph{var='`}, \emph{force=None}}{}
-write sys.stderr a message if \_debug{[}-1{]}==True or optionaly force=True
-use this only if no logger accessible for classic logger.warning(message)
-
-\end{fulllineitems}
-
-\index{write() (in module src.debug)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.debug.write}\pysiglinewithargsret{\sphinxcode{src.debug.}\sphinxbfcode{write}}{\emph{title}, \emph{var='`}, \emph{force=None}, \emph{fmt='\textbackslash{}n\#\#\#\# DEBUG: \%s:\textbackslash{}n\%s\textbackslash{}n'}}{}
-write sys.stderr a message if \_debug{[}-1{]}==True or optionaly force=True
-
-\end{fulllineitems}
-
-
-
-\subsubsection{src.environment module}
-\label{commands/apidoc/src:src-environment-module}\label{commands/apidoc/src:module-src.environment}\index{src.environment (module)}\index{Environ (class in src.environment)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.Environ}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.environment.}\sphinxbfcode{Environ}}{\emph{environ=None}}{}
-Class to manage the environment context
-\index{append() (src.environment.Environ method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.Environ.append}\pysiglinewithargsret{\sphinxbfcode{append}}{\emph{key}, \emph{value}, \emph{sep=':'}}{}
-Same as append\_value but the value argument can be a list
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{sep}}) -- the environment variable to append
-
-\item {} 
-\textbf{\texttt{str or list}} (\emph{\texttt{value}}) -- the value(s) to append to key
-
-\item {} 
-\textbf{\texttt{str}} -- the separator string
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{append\_value() (src.environment.Environ method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.Environ.append_value}\pysiglinewithargsret{\sphinxbfcode{append\_value}}{\emph{key}, \emph{value}, \emph{sep=':'}}{}
-append value to key using sep
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{sep}}) -- the environment variable to append
-
-\item {} 
-\textbf{\texttt{str}} -- the value to append to key
-
-\item {} 
-\textbf{\texttt{str}} -- the separator string
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{command\_value() (src.environment.Environ method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.Environ.command_value}\pysiglinewithargsret{\sphinxbfcode{command\_value}}{\emph{key}, \emph{command}}{}~\begin{description}
-\item[{Get the value given by the system command ``command'' }] \leavevmode
-and put it in the environment variable key
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{command}}) -- the environment variable
-
-\item {} 
-\textbf{\texttt{str}} -- the command to execute
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get() (src.environment.Environ method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.Environ.get}\pysiglinewithargsret{\sphinxbfcode{get}}{\emph{key}}{}
-Get the value of the environment variable ``key''
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{key}}) -- the environment variable
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{is\_defined() (src.environment.Environ method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.Environ.is_defined}\pysiglinewithargsret{\sphinxbfcode{is\_defined}}{\emph{key}}{}
-Check if the key exists in the environment
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{key}}) -- the environment variable to check
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{prepend() (src.environment.Environ method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.Environ.prepend}\pysiglinewithargsret{\sphinxbfcode{prepend}}{\emph{key}, \emph{value}, \emph{sep=':'}}{}
-Same as prepend\_value but the value argument can be a list
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{sep}}) -- the environment variable to prepend
-
-\item {} 
-\textbf{\texttt{str or list}} (\emph{\texttt{value}}) -- the value(s) to prepend to key
-
-\item {} 
-\textbf{\texttt{str}} -- the separator string
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{prepend\_value() (src.environment.Environ method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.Environ.prepend_value}\pysiglinewithargsret{\sphinxbfcode{prepend\_value}}{\emph{key}, \emph{value}, \emph{sep=':'}}{}
-prepend value to key using sep
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{sep}}) -- the environment variable to prepend
-
-\item {} 
-\textbf{\texttt{str}} -- the value to prepend to key
-
-\item {} 
-\textbf{\texttt{str}} -- the separator string
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{set() (src.environment.Environ method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.Environ.set}\pysiglinewithargsret{\sphinxbfcode{set}}{\emph{key}, \emph{value}}{}
-Set the environment variable ``key'' to value ``value''
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{value}}) -- the environment variable to set
-
-\item {} 
-\textbf{\texttt{str}} -- the value
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{FileEnvWriter (class in src.environment)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.FileEnvWriter}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.environment.}\sphinxbfcode{FileEnvWriter}}{\emph{config}, \emph{logger}, \emph{out\_dir}, \emph{src\_root}, \emph{env\_info=None}}{}
-Class to dump the environment to a file.
-\index{write\_cfgForPy\_file() (src.environment.FileEnvWriter method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.FileEnvWriter.write_cfgForPy_file}\pysiglinewithargsret{\sphinxbfcode{write\_cfgForPy\_file}}{\emph{filename}, \emph{additional\_env=\{\}}, \emph{for\_package=None}, \emph{with\_commercial=True}}{}~\begin{description}
-\item[{Append to current opened aFile a cfgForPy }] \leavevmode
-environment (SALOME python launcher).
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{for\_package}}) -- the file path
-
-\item {} 
-\textbf{\texttt{dict}} (\emph{\texttt{additional\_env}}) -- a dictionary of additional variables 
-to add to the environment
-
-\item {} 
-\textbf{\texttt{str}} -- If not None, produce a relative environment 
-designed for a package.
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{write\_env\_file() (src.environment.FileEnvWriter method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.FileEnvWriter.write_env_file}\pysiglinewithargsret{\sphinxbfcode{write\_env\_file}}{\emph{filename}, \emph{forBuild}, \emph{shell}, \emph{for\_package=None}}{}
-Create an environment file.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{shell}}) -- the file path
-
-\item {} 
-\textbf{\texttt{bool}} (\emph{\texttt{forBuild}}) -- if true, the build environment
-
-\item {} 
-\textbf{\texttt{str}} -- the type of file wanted (.sh, .bat)
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-The path to the generated file
-
-\item[{Return type}] \leavevmode
-str
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{SalomeEnviron (class in src.environment)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.environment.}\sphinxbfcode{SalomeEnviron}}{\emph{cfg}, \emph{environ}, \emph{forBuild=False}, \emph{for\_package=None}, \emph{enable\_simple\_env\_script=True}}{}
-Class to manage the environment of SALOME.
-\index{add\_comment() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.add_comment}\pysiglinewithargsret{\sphinxbfcode{add\_comment}}{\emph{comment}}{}
-Add a commentary to the out stream (in case of file generation)
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{comment}}) -- the commentary to add
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{add\_line() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.add_line}\pysiglinewithargsret{\sphinxbfcode{add\_line}}{\emph{nb\_line}}{}
-Add empty lines to the out stream (in case of file generation)
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{int}} (\emph{\texttt{nb\_line}}) -- the number of empty lines to add
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{add\_warning() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.add_warning}\pysiglinewithargsret{\sphinxbfcode{add\_warning}}{\emph{warning}}{}
-Add a warning to the out stream (in case of file generation)
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} ({\hyperref[commands/apidoc/src:src.utilsSat.warning]{\sphinxcrossref{\emph{\texttt{warning}}}}} (\autopageref*{commands/apidoc/src:src.utilsSat.warning})) -- the warning to add
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{append() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.append}\pysiglinewithargsret{\sphinxbfcode{append}}{\emph{key}, \emph{value}, \emph{sep=':'}}{}
-append value to key using sep
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{sep}}) -- the environment variable to append
-
-\item {} 
-\textbf{\texttt{str}} -- the value to append to key
-
-\item {} 
-\textbf{\texttt{str}} -- the separator string
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{dump() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.dump}\pysiglinewithargsret{\sphinxbfcode{dump}}{\emph{out}}{}
-Write the environment to out
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{file}} (\emph{\texttt{out}}) -- the stream where to write the environment
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{finish() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.finish}\pysiglinewithargsret{\sphinxbfcode{finish}}{\emph{required}}{}
-Add a final instruction in the out file (in case of file generation)
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{bool}} (\emph{\texttt{required}}) -- Do nothing if required is False
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.get}\pysiglinewithargsret{\sphinxbfcode{get}}{\emph{key}}{}
-Get the value of the environment variable ``key''
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{key}}) -- the environment variable
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_names() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.get_names}\pysiglinewithargsret{\sphinxbfcode{get\_names}}{\emph{lProducts}}{}
-Get the products name to add in SALOME\_MODULES environment variable
-It is the name of the product, except in the case where the is a 
-component name. And it has to be in SALOME\_MODULES variable only 
-if the product has the property has\_salome\_hui = ``yes''
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{list}} (\emph{\texttt{lProducts}}) -- List of products to potentially add
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{is\_defined() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.is_defined}\pysiglinewithargsret{\sphinxbfcode{is\_defined}}{\emph{key}}{}
-Check if the key exists in the environment
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{key}}) -- the environment variable to check
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{load\_cfg\_environment() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.load_cfg_environment}\pysiglinewithargsret{\sphinxbfcode{load\_cfg\_environment}}{\emph{cfg\_env}}{}
-Loads environment defined in cfg\_env
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{cfg\_env}}) -- A config containing an environment
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{prepend() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.prepend}\pysiglinewithargsret{\sphinxbfcode{prepend}}{\emph{key}, \emph{value}, \emph{sep=':'}}{}
-prepend value to key using sep
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{sep}}) -- the environment variable to prepend
-
-\item {} 
-\textbf{\texttt{str}} -- the value to prepend to key
-
-\item {} 
-\textbf{\texttt{str}} -- the separator string
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{run\_env\_script() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.run_env_script}\pysiglinewithargsret{\sphinxbfcode{run\_env\_script}}{\emph{product\_info}, \emph{logger=None}, \emph{native=False}}{}
-Runs an environment script.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The product description
-
-\item {} 
-\textbf{\texttt{Logger}} (\emph{\texttt{logger}}) -- The logger instance to display messages
-
-\item {} 
-\textbf{\texttt{Boolean}} (\emph{\texttt{native}}) -- if True load set\_native\_env instead of set\_env
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{run\_simple\_env\_script() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.run_simple_env_script}\pysiglinewithargsret{\sphinxbfcode{run\_simple\_env\_script}}{\emph{script\_path}, \emph{logger=None}}{}~\begin{description}
-\item[{Runs an environment script. Same as run\_env\_script, but with a }] \leavevmode
-script path as parameter.
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{script\_path}}) -- a path to an environment script
-
-\item {} 
-\textbf{\texttt{Logger}} (\emph{\texttt{logger}}) -- The logger instance to display messages
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{set() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.set}\pysiglinewithargsret{\sphinxbfcode{set}}{\emph{key}, \emph{value}}{}
-Set the environment variable ``key'' to value ``value''
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{value}}) -- the environment variable to set
-
-\item {} 
-\textbf{\texttt{str}} -- the value
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{set\_a\_product() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.set_a_product}\pysiglinewithargsret{\sphinxbfcode{set\_a\_product}}{\emph{product}, \emph{logger}}{}
-Sets the environment of a product.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} ({\hyperref[commands/apidoc/src:module\string-src.product]{\sphinxcrossref{\emph{\texttt{product}}}}} (\autopageref*{commands/apidoc/src:module-src.product})) -- The product name
-
-\item {} 
-\textbf{\texttt{Logger}} (\emph{\texttt{logger}}) -- The logger instance to display messages
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{set\_application\_env() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.set_application_env}\pysiglinewithargsret{\sphinxbfcode{set\_application\_env}}{\emph{logger}}{}
-Sets the environment defined in the APPLICATION file.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Logger}} (\emph{\texttt{logger}}) -- The logger instance to display messages
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{set\_cpp\_env() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.set_cpp_env}\pysiglinewithargsret{\sphinxbfcode{set\_cpp\_env}}{\emph{product\_info}}{}
-Sets the generic environment for a SALOME cpp product.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The product description
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{set\_full\_environ() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.set_full_environ}\pysiglinewithargsret{\sphinxbfcode{set\_full\_environ}}{\emph{logger}, \emph{env\_info}}{}~\begin{description}
-\item[{Sets the full environment for products }] \leavevmode
-specified in env\_info dictionary.
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{Logger}} (\emph{\texttt{logger}}) -- The logger instance to display messages
-
-\item {} 
-\textbf{\texttt{list}} (\emph{\texttt{env\_info}}) -- the list of products
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{set\_products() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.set_products}\pysiglinewithargsret{\sphinxbfcode{set\_products}}{\emph{logger}, \emph{src\_root=None}}{}
-Sets the environment for all the products.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{Logger}} (\emph{\texttt{logger}}) -- The logger instance to display messages
-
-\item {} 
-\textbf{\texttt{src}} (\emph{\texttt{src\_root}}) -- the application working directory
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{set\_python\_libdirs() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.set_python_libdirs}\pysiglinewithargsret{\sphinxbfcode{set\_python\_libdirs}}{}{}
-Set some generic variables for python library paths
-
-\end{fulllineitems}
-
-\index{set\_salome\_generic\_product\_env() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.set_salome_generic_product_env}\pysiglinewithargsret{\sphinxbfcode{set\_salome\_generic\_product\_env}}{\emph{pi}}{}
-Sets the generic environment for a SALOME product.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{pi}}) -- The product description
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{set\_salome\_minimal\_product\_env() (src.environment.SalomeEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.SalomeEnviron.set_salome_minimal_product_env}\pysiglinewithargsret{\sphinxbfcode{set\_salome\_minimal\_product\_env}}{\emph{product\_info}, \emph{logger}}{}
-Sets the minimal environment for a SALOME product.
-xxx\_ROOT\_DIR and xxx\_SRC\_DIR
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The product description
-
-\item {} 
-\textbf{\texttt{Logger}} (\emph{\texttt{logger}}) -- The logger instance to display messages
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{Shell (class in src.environment)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.Shell}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.environment.}\sphinxbfcode{Shell}}{\emph{name}, \emph{extension}}{}
-Definition of a Shell.
-
-\end{fulllineitems}
-
-\index{load\_environment() (in module src.environment)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environment.load_environment}\pysiglinewithargsret{\sphinxcode{src.environment.}\sphinxbfcode{load\_environment}}{\emph{config}, \emph{build}, \emph{logger}}{}
-Loads the environment (used to run the tests, for example).
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{Config}} (\emph{\texttt{config}}) -- the global config
-
-\item {} 
-\textbf{\texttt{bool}} (\emph{\texttt{build}}) -- build environement if True
-
-\item {} 
-\textbf{\texttt{Logger}} (\emph{\texttt{logger}}) -- The logger instance to display messages
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-
-
-\subsubsection{src.environs module}
-\label{commands/apidoc/src:module-src.environs}\label{commands/apidoc/src:src-environs-module}\index{src.environs (module)}
-Utility for print environment variables
-\begin{description}
-\item[{examples: }] \leavevmode\begin{itemize}
-\item {} 
-split all or specific environment variables \$XXX(s)...
-\textgreater{}\textgreater{} environs.py -\textgreater{} all
-\textgreater{}\textgreater{} environs.py SHELL PATH -\textgreater{} specific \$SHELL \$PATH
-
-\item {} 
-split all or specific environment variables on pattern \$*XXX*(s)...
-\textgreater{}\textgreater{} environs.py --pat ROOT -\textgreater{} specific \$*ROOT*
-
-\item {} 
-split search specific substrings in contents of environment variables \$XXX(s)...
-\textgreater{}\textgreater{} environs.py --grep usr  -\textgreater{} all specific environment variables containing usr
-
-\end{itemize}
-
-\item[{tips:}] \leavevmode\begin{itemize}
-\item {} 
-create unix alias as shortcut for bash console
-\textgreater{}\textgreater{} alias envs=''.../environs.py''
-
-\end{itemize}
-
-\end{description}
-\index{print\_grep\_environs() (in module src.environs)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environs.print_grep_environs}\pysiglinewithargsret{\sphinxcode{src.environs.}\sphinxbfcode{print\_grep\_environs}}{\emph{args={[}{]}}}{}
-\end{fulllineitems}
-
-\index{print\_split\_environs() (in module src.environs)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environs.print_split_environs}\pysiglinewithargsret{\sphinxcode{src.environs.}\sphinxbfcode{print\_split\_environs}}{\emph{args={[}{]}}}{}
-\end{fulllineitems}
-
-\index{print\_split\_pattern\_environs() (in module src.environs)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.environs.print_split_pattern_environs}\pysiglinewithargsret{\sphinxcode{src.environs.}\sphinxbfcode{print\_split\_pattern\_environs}}{\emph{args={[}{]}}}{}
-\end{fulllineitems}
-
-
-
-\subsubsection{src.exceptionSat module}
-\label{commands/apidoc/src:module-src.exceptionSat}\label{commands/apidoc/src:src-exceptionsat-module}\index{src.exceptionSat (module)}\index{ExceptionSat}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.exceptionSat.ExceptionSat}\pysigline{\sphinxstrong{exception }\sphinxcode{src.exceptionSat.}\sphinxbfcode{ExceptionSat}}
-Bases: \sphinxcode{exceptions.Exception}
-
-rename Exception Class for sat convenience (for future...)
-
-\end{fulllineitems}
-
-
-
-\subsubsection{src.fileEnviron module}
-\label{commands/apidoc/src:src-fileenviron-module}\label{commands/apidoc/src:module-src.fileEnviron}\index{src.fileEnviron (module)}\index{BashFileEnviron (class in src.fileEnviron)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.BashFileEnviron}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.fileEnviron.}\sphinxbfcode{BashFileEnviron}}{\emph{output}, \emph{environ=None}}{}
-Bases: {\hyperref[commands/apidoc/src:src.fileEnviron.FileEnviron]{\sphinxcrossref{\sphinxcode{src.fileEnviron.FileEnviron}}}} (\autopageref*{commands/apidoc/src:src.fileEnviron.FileEnviron})
-
-Class for bash shell.
-\index{command\_value() (src.fileEnviron.BashFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.BashFileEnviron.command_value}\pysiglinewithargsret{\sphinxbfcode{command\_value}}{\emph{key}, \emph{command}}{}~\begin{description}
-\item[{Get the value given by the system command ``command'' }] \leavevmode
-and put it in the environment variable key.
-Has to be overwritten in the derived classes
-This can be seen as a virtual method
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{command}}) -- the environment variable
-
-\item {} 
-\textbf{\texttt{str}} -- the command to execute
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{finish() (src.fileEnviron.BashFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.BashFileEnviron.finish}\pysiglinewithargsret{\sphinxbfcode{finish}}{\emph{required=True}}{}
-Add a final instruction in the out file (in case of file generation)
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{bool}} (\emph{\texttt{required}}) -- Do nothing if required is False
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{set() (src.fileEnviron.BashFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.BashFileEnviron.set}\pysiglinewithargsret{\sphinxbfcode{set}}{\emph{key}, \emph{value}}{}
-Set the environment variable ``key'' to value ``value''
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{value}}) -- the environment variable to set
-
-\item {} 
-\textbf{\texttt{str}} -- the value
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{BatFileEnviron (class in src.fileEnviron)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.BatFileEnviron}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.fileEnviron.}\sphinxbfcode{BatFileEnviron}}{\emph{output}, \emph{environ=None}}{}
-Bases: {\hyperref[commands/apidoc/src:src.fileEnviron.FileEnviron]{\sphinxcrossref{\sphinxcode{src.fileEnviron.FileEnviron}}}} (\autopageref*{commands/apidoc/src:src.fileEnviron.FileEnviron})
-
-for Windows batch shell.
-\index{add\_comment() (src.fileEnviron.BatFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.BatFileEnviron.add_comment}\pysiglinewithargsret{\sphinxbfcode{add\_comment}}{\emph{comment}}{}
-Add a comment in the shell file
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{comment}}) -- the comment to add
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{command\_value() (src.fileEnviron.BatFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.BatFileEnviron.command_value}\pysiglinewithargsret{\sphinxbfcode{command\_value}}{\emph{key}, \emph{command}}{}~\begin{description}
-\item[{Get the value given by the system command ``command'' }] \leavevmode
-and put it in the environment variable key.
-Has to be overwritten in the derived classes
-This can be seen as a virtual method
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{command}}) -- the environment variable
-
-\item {} 
-\textbf{\texttt{str}} -- the command to execute
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{finish() (src.fileEnviron.BatFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.BatFileEnviron.finish}\pysiglinewithargsret{\sphinxbfcode{finish}}{\emph{required=True}}{}~\begin{description}
-\item[{Add a final instruction in the out file (in case of file generation)}] \leavevmode
-In the particular windows case, do nothing
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{bool}} (\emph{\texttt{required}}) -- Do nothing if required is False
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get() (src.fileEnviron.BatFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.BatFileEnviron.get}\pysiglinewithargsret{\sphinxbfcode{get}}{\emph{key}}{}
-Get the value of the environment variable ``key''
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{key}}) -- the environment variable
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{set() (src.fileEnviron.BatFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.BatFileEnviron.set}\pysiglinewithargsret{\sphinxbfcode{set}}{\emph{key}, \emph{value}}{}
-Set the environment variable ``key'' to value ``value''
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{value}}) -- the environment variable to set
-
-\item {} 
-\textbf{\texttt{str}} -- the value
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{ContextFileEnviron (class in src.fileEnviron)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ContextFileEnviron}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.fileEnviron.}\sphinxbfcode{ContextFileEnviron}}{\emph{output}, \emph{environ=None}}{}
-Bases: {\hyperref[commands/apidoc/src:src.fileEnviron.FileEnviron]{\sphinxcrossref{\sphinxcode{src.fileEnviron.FileEnviron}}}} (\autopageref*{commands/apidoc/src:src.fileEnviron.FileEnviron})
-
-Class for a salome context configuration file.
-\index{add\_echo() (src.fileEnviron.ContextFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ContextFileEnviron.add_echo}\pysiglinewithargsret{\sphinxbfcode{add\_echo}}{\emph{text}}{}
-Add a comment
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{text}}) -- the comment to add
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{add\_warning() (src.fileEnviron.ContextFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ContextFileEnviron.add_warning}\pysiglinewithargsret{\sphinxbfcode{add\_warning}}{\emph{warning}}{}
-Add a warning
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{text}}) -- the warning to add
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{append\_value() (src.fileEnviron.ContextFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ContextFileEnviron.append_value}\pysiglinewithargsret{\sphinxbfcode{append\_value}}{\emph{key}, \emph{value}, \emph{sep=':'}}{}
-append value to key using sep
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{sep}}) -- the environment variable to append
-
-\item {} 
-\textbf{\texttt{str}} -- the value to append to key
-
-\item {} 
-\textbf{\texttt{str}} -- the separator string
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{command\_value() (src.fileEnviron.ContextFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ContextFileEnviron.command_value}\pysiglinewithargsret{\sphinxbfcode{command\_value}}{\emph{key}, \emph{command}}{}~\begin{description}
-\item[{Get the value given by the system command ``command'' }] \leavevmode
-and put it in the environment variable key.
-Has to be overwritten in the derived classes
-This can be seen as a virtual method
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{command}}) -- the environment variable
-
-\item {} 
-\textbf{\texttt{str}} -- the command to execute
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{finish() (src.fileEnviron.ContextFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ContextFileEnviron.finish}\pysiglinewithargsret{\sphinxbfcode{finish}}{\emph{required=True}}{}
-Add a final instruction in the out file (in case of file generation)
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{bool}} (\emph{\texttt{required}}) -- Do nothing if required is False
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get() (src.fileEnviron.ContextFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ContextFileEnviron.get}\pysiglinewithargsret{\sphinxbfcode{get}}{\emph{key}}{}
-Get the value of the environment variable ``key''
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{key}}) -- the environment variable
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{prepend\_value() (src.fileEnviron.ContextFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ContextFileEnviron.prepend_value}\pysiglinewithargsret{\sphinxbfcode{prepend\_value}}{\emph{key}, \emph{value}, \emph{sep=':'}}{}
-prepend value to key using sep
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{sep}}) -- the environment variable to prepend
-
-\item {} 
-\textbf{\texttt{str}} -- the value to prepend to key
-
-\item {} 
-\textbf{\texttt{str}} -- the separator string
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{set() (src.fileEnviron.ContextFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ContextFileEnviron.set}\pysiglinewithargsret{\sphinxbfcode{set}}{\emph{key}, \emph{value}}{}
-Set the environment variable ``key'' to value ``value''
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{value}}) -- the environment variable to set
-
-\item {} 
-\textbf{\texttt{str}} -- the value
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{FileEnviron (class in src.fileEnviron)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.FileEnviron}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.fileEnviron.}\sphinxbfcode{FileEnviron}}{\emph{output}, \emph{environ=None}}{}
-Base class for shell environment
-\index{add\_comment() (src.fileEnviron.FileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.FileEnviron.add_comment}\pysiglinewithargsret{\sphinxbfcode{add\_comment}}{\emph{comment}}{}
-Add a comment in the shell file
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{comment}}) -- the comment to add
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{add\_echo() (src.fileEnviron.FileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.FileEnviron.add_echo}\pysiglinewithargsret{\sphinxbfcode{add\_echo}}{\emph{text}}{}
-Add a ``echo'' in the shell file
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{text}}) -- the text to echo
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{add\_line() (src.fileEnviron.FileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.FileEnviron.add_line}\pysiglinewithargsret{\sphinxbfcode{add\_line}}{\emph{number}}{}
-Add some empty lines in the shell file
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{int}} (\emph{\texttt{number}}) -- the number of lines to add
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{add\_warning() (src.fileEnviron.FileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.FileEnviron.add_warning}\pysiglinewithargsret{\sphinxbfcode{add\_warning}}{\emph{warning}}{}
-Add a warning ``echo'' in the shell file
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} ({\hyperref[commands/apidoc/src:src.utilsSat.warning]{\sphinxcrossref{\emph{\texttt{warning}}}}} (\autopageref*{commands/apidoc/src:src.utilsSat.warning})) -- the text to echo
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{append() (src.fileEnviron.FileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.FileEnviron.append}\pysiglinewithargsret{\sphinxbfcode{append}}{\emph{key}, \emph{value}, \emph{sep=':'}}{}
-Same as append\_value but the value argument can be a list
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{sep}}) -- the environment variable to append
-
-\item {} 
-\textbf{\texttt{str or list}} (\emph{\texttt{value}}) -- the value(s) to append to key
-
-\item {} 
-\textbf{\texttt{str}} -- the separator string
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{append\_value() (src.fileEnviron.FileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.FileEnviron.append_value}\pysiglinewithargsret{\sphinxbfcode{append\_value}}{\emph{key}, \emph{value}, \emph{sep=':'}}{}
-append value to key using sep
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{sep}}) -- the environment variable to append
-
-\item {} 
-\textbf{\texttt{str}} -- the value to append to key
-
-\item {} 
-\textbf{\texttt{str}} -- the separator string
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{command\_value() (src.fileEnviron.FileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.FileEnviron.command_value}\pysiglinewithargsret{\sphinxbfcode{command\_value}}{\emph{key}, \emph{command}}{}~\begin{description}
-\item[{Get the value given by the system command ``command'' }] \leavevmode
-and put it in the environment variable key.
-Has to be overwritten in the derived classes
-This can be seen as a virtual method
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{command}}) -- the environment variable
-
-\item {} 
-\textbf{\texttt{str}} -- the command to execute
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{finish() (src.fileEnviron.FileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.FileEnviron.finish}\pysiglinewithargsret{\sphinxbfcode{finish}}{\emph{required=True}}{}
-Add a final instruction in the out file (in case of file generation)
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{bool}} (\emph{\texttt{required}}) -- Do nothing if required is False
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get() (src.fileEnviron.FileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.FileEnviron.get}\pysiglinewithargsret{\sphinxbfcode{get}}{\emph{key}}{}
-Get the value of the environment variable ``key''
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{key}}) -- the environment variable
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{is\_defined() (src.fileEnviron.FileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.FileEnviron.is_defined}\pysiglinewithargsret{\sphinxbfcode{is\_defined}}{\emph{key}}{}
-Check if the key exists in the environment
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{key}}) -- the environment variable to check
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{prepend() (src.fileEnviron.FileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.FileEnviron.prepend}\pysiglinewithargsret{\sphinxbfcode{prepend}}{\emph{key}, \emph{value}, \emph{sep=':'}}{}
-Same as prepend\_value but the value argument can be a list
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{sep}}) -- the environment variable to prepend
-
-\item {} 
-\textbf{\texttt{str or list}} (\emph{\texttt{value}}) -- the value(s) to prepend to key
-
-\item {} 
-\textbf{\texttt{str}} -- the separator string
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{prepend\_value() (src.fileEnviron.FileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.FileEnviron.prepend_value}\pysiglinewithargsret{\sphinxbfcode{prepend\_value}}{\emph{key}, \emph{value}, \emph{sep=':'}}{}
-prepend value to key using sep
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{sep}}) -- the environment variable to prepend
-
-\item {} 
-\textbf{\texttt{str}} -- the value to prepend to key
-
-\item {} 
-\textbf{\texttt{str}} -- the separator string
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{set() (src.fileEnviron.FileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.FileEnviron.set}\pysiglinewithargsret{\sphinxbfcode{set}}{\emph{key}, \emph{value}}{}
-Set the environment variable ``key'' to value ``value''
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{value}}) -- the environment variable to set
-
-\item {} 
-\textbf{\texttt{str}} -- the value
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{LauncherFileEnviron (class in src.fileEnviron)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.LauncherFileEnviron}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.fileEnviron.}\sphinxbfcode{LauncherFileEnviron}}{\emph{output}, \emph{environ=None}}{}
-Class to generate a launcher file script 
-(in python syntax) SalomeContext API
-\index{add() (src.fileEnviron.LauncherFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.LauncherFileEnviron.add}\pysiglinewithargsret{\sphinxbfcode{add}}{\emph{key}, \emph{value}}{}
-prepend value to key using sep
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{value}}) -- the environment variable to prepend
-
-\item {} 
-\textbf{\texttt{str}} -- the value to prepend to key
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{add\_comment() (src.fileEnviron.LauncherFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.LauncherFileEnviron.add_comment}\pysiglinewithargsret{\sphinxbfcode{add\_comment}}{\emph{comment}}{}
-\end{fulllineitems}
-
-\index{add\_echo() (src.fileEnviron.LauncherFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.LauncherFileEnviron.add_echo}\pysiglinewithargsret{\sphinxbfcode{add\_echo}}{\emph{text}}{}
-Add a comment
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{text}}) -- the comment to add
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{add\_line() (src.fileEnviron.LauncherFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.LauncherFileEnviron.add_line}\pysiglinewithargsret{\sphinxbfcode{add\_line}}{\emph{number}}{}
-Add some empty lines in the launcher file
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{int}} (\emph{\texttt{number}}) -- the number of lines to add
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{add\_warning() (src.fileEnviron.LauncherFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.LauncherFileEnviron.add_warning}\pysiglinewithargsret{\sphinxbfcode{add\_warning}}{\emph{warning}}{}
-Add a warning
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{text}}) -- the warning to add
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{append() (src.fileEnviron.LauncherFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.LauncherFileEnviron.append}\pysiglinewithargsret{\sphinxbfcode{append}}{\emph{key}, \emph{value}, \emph{sep=':'}}{}
-Same as append\_value but the value argument can be a list
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{sep}}) -- the environment variable to append
-
-\item {} 
-\textbf{\texttt{str or list}} (\emph{\texttt{value}}) -- the value(s) to append to key
-
-\item {} 
-\textbf{\texttt{str}} -- the separator string
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{append\_value() (src.fileEnviron.LauncherFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.LauncherFileEnviron.append_value}\pysiglinewithargsret{\sphinxbfcode{append\_value}}{\emph{key}, \emph{value}, \emph{sep=':'}}{}
-append value to key using sep
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{sep}}) -- the environment variable to append
-
-\item {} 
-\textbf{\texttt{str}} -- the value to append to key
-
-\item {} 
-\textbf{\texttt{str}} -- the separator string
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{change\_to\_launcher() (src.fileEnviron.LauncherFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.LauncherFileEnviron.change_to_launcher}\pysiglinewithargsret{\sphinxbfcode{change\_to\_launcher}}{\emph{value}}{}
-\end{fulllineitems}
-
-\index{command\_value() (src.fileEnviron.LauncherFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.LauncherFileEnviron.command_value}\pysiglinewithargsret{\sphinxbfcode{command\_value}}{\emph{key}, \emph{command}}{}~\begin{description}
-\item[{Get the value given by the system command ``command'' }] \leavevmode
-and put it in the environment variable key.
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{command}}) -- the environment variable
-
-\item {} 
-\textbf{\texttt{str}} -- the command to execute
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{finish() (src.fileEnviron.LauncherFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.LauncherFileEnviron.finish}\pysiglinewithargsret{\sphinxbfcode{finish}}{\emph{required=True}}{}~\begin{description}
-\item[{Add a final instruction in the out file (in case of file generation)}] \leavevmode
-In the particular launcher case, do nothing
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{bool}} (\emph{\texttt{required}}) -- Do nothing if required is False
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get() (src.fileEnviron.LauncherFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.LauncherFileEnviron.get}\pysiglinewithargsret{\sphinxbfcode{get}}{\emph{key}}{}
-Get the value of the environment variable ``key''
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{key}}) -- the environment variable
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{is\_defined() (src.fileEnviron.LauncherFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.LauncherFileEnviron.is_defined}\pysiglinewithargsret{\sphinxbfcode{is\_defined}}{\emph{key}}{}
-Check if the key exists in the environment
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{key}}) -- the environment variable to check
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{prepend() (src.fileEnviron.LauncherFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.LauncherFileEnviron.prepend}\pysiglinewithargsret{\sphinxbfcode{prepend}}{\emph{key}, \emph{value}, \emph{sep=':'}}{}
-Same as prepend\_value but the value argument can be a list
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{sep}}) -- the environment variable to prepend
-
-\item {} 
-\textbf{\texttt{str or list}} (\emph{\texttt{value}}) -- the value(s) to prepend to key
-
-\item {} 
-\textbf{\texttt{str}} -- the separator string
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{prepend\_value() (src.fileEnviron.LauncherFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.LauncherFileEnviron.prepend_value}\pysiglinewithargsret{\sphinxbfcode{prepend\_value}}{\emph{key}, \emph{value}, \emph{sep=':'}}{}
-prepend value to key using sep
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{sep}}) -- the environment variable to prepend
-
-\item {} 
-\textbf{\texttt{str}} -- the value to prepend to key
-
-\item {} 
-\textbf{\texttt{str}} -- the separator string
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{set() (src.fileEnviron.LauncherFileEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.LauncherFileEnviron.set}\pysiglinewithargsret{\sphinxbfcode{set}}{\emph{key}, \emph{value}}{}
-Set the environment variable ``key'' to value ``value''
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{value}}) -- the environment variable to set
-
-\item {} 
-\textbf{\texttt{str}} -- the value
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{ScreenEnviron (class in src.fileEnviron)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ScreenEnviron}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.fileEnviron.}\sphinxbfcode{ScreenEnviron}}{\emph{output}, \emph{environ=None}}{}
-Bases: {\hyperref[commands/apidoc/src:src.fileEnviron.FileEnviron]{\sphinxcrossref{\sphinxcode{src.fileEnviron.FileEnviron}}}} (\autopageref*{commands/apidoc/src:src.fileEnviron.FileEnviron})
-\index{add\_comment() (src.fileEnviron.ScreenEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ScreenEnviron.add_comment}\pysiglinewithargsret{\sphinxbfcode{add\_comment}}{\emph{comment}}{}
-\end{fulllineitems}
-
-\index{add\_echo() (src.fileEnviron.ScreenEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ScreenEnviron.add_echo}\pysiglinewithargsret{\sphinxbfcode{add\_echo}}{\emph{text}}{}
-\end{fulllineitems}
-
-\index{add\_line() (src.fileEnviron.ScreenEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ScreenEnviron.add_line}\pysiglinewithargsret{\sphinxbfcode{add\_line}}{\emph{number}}{}
-\end{fulllineitems}
-
-\index{add\_warning() (src.fileEnviron.ScreenEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ScreenEnviron.add_warning}\pysiglinewithargsret{\sphinxbfcode{add\_warning}}{\emph{warning}}{}
-\end{fulllineitems}
-
-\index{append() (src.fileEnviron.ScreenEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ScreenEnviron.append}\pysiglinewithargsret{\sphinxbfcode{append}}{\emph{name}, \emph{value}, \emph{sep=':'}}{}
-\end{fulllineitems}
-
-\index{command\_value() (src.fileEnviron.ScreenEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ScreenEnviron.command_value}\pysiglinewithargsret{\sphinxbfcode{command\_value}}{\emph{key}, \emph{command}}{}
-\end{fulllineitems}
-
-\index{get() (src.fileEnviron.ScreenEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ScreenEnviron.get}\pysiglinewithargsret{\sphinxbfcode{get}}{\emph{name}}{}
-\end{fulllineitems}
-
-\index{is\_defined() (src.fileEnviron.ScreenEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ScreenEnviron.is_defined}\pysiglinewithargsret{\sphinxbfcode{is\_defined}}{\emph{name}}{}
-\end{fulllineitems}
-
-\index{prepend() (src.fileEnviron.ScreenEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ScreenEnviron.prepend}\pysiglinewithargsret{\sphinxbfcode{prepend}}{\emph{name}, \emph{value}, \emph{sep=':'}}{}
-\end{fulllineitems}
-
-\index{run\_env\_script() (src.fileEnviron.ScreenEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ScreenEnviron.run_env_script}\pysiglinewithargsret{\sphinxbfcode{run\_env\_script}}{\emph{module}, \emph{script}}{}
-\end{fulllineitems}
-
-\index{set() (src.fileEnviron.ScreenEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ScreenEnviron.set}\pysiglinewithargsret{\sphinxbfcode{set}}{\emph{name}, \emph{value}}{}
-\end{fulllineitems}
-
-\index{write() (src.fileEnviron.ScreenEnviron method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.ScreenEnviron.write}\pysiglinewithargsret{\sphinxbfcode{write}}{\emph{command}, \emph{name}, \emph{value}, \emph{sign='='}}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{get\_file\_environ() (in module src.fileEnviron)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.get_file_environ}\pysiglinewithargsret{\sphinxcode{src.fileEnviron.}\sphinxbfcode{get\_file\_environ}}{\emph{output}, \emph{shell}, \emph{environ=None}}{}
-Instantiate correct FileEnvironment sub-class.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{file}} (\emph{\texttt{output}}) -- the output file stream.
-
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{shell}}) -- the type of shell syntax to use.
-
-\item {} 
-\textbf{\texttt{dict}} (\emph{\texttt{environ}}) -- a potential additional environment.
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{special\_path\_separator() (in module src.fileEnviron)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fileEnviron.special_path_separator}\pysiglinewithargsret{\sphinxcode{src.fileEnviron.}\sphinxbfcode{special\_path\_separator}}{\emph{name}}{}~\begin{description}
-\item[{TCLLIBPATH, TKLIBPATH, PV\_PLUGIN\_PATH environments variables need}] \leavevmode
-some exotic path separator.
-This function gives the separator regarding the name of the variable
-to append or prepend.
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{name}}) -- The name of the variable to find the separator
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-
-
-\subsubsection{src.fork module}
-\label{commands/apidoc/src:module-src.fork}\label{commands/apidoc/src:src-fork-module}\index{src.fork (module)}\index{batch() (in module src.fork)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fork.batch}\pysiglinewithargsret{\sphinxcode{src.fork.}\sphinxbfcode{batch}}{\emph{cmd}, \emph{logger}, \emph{cwd}, \emph{args={[}{]}}, \emph{log=None}, \emph{delai=20}, \emph{sommeil=1}}{}
-Launch a batch
-
-\end{fulllineitems}
-
-\index{batch\_salome() (in module src.fork)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fork.batch_salome}\pysiglinewithargsret{\sphinxcode{src.fork.}\sphinxbfcode{batch\_salome}}{\emph{cmd}, \emph{logger}, \emph{cwd}, \emph{args}, \emph{getTmpDir}, \emph{pendant='SALOME\_Session\_Server'}, \emph{fin='killSalome.py'}, \emph{log=None}, \emph{delai=20}, \emph{sommeil=1}, \emph{delaiapp=0}}{}
-Launch a salome process
-
-\end{fulllineitems}
-
-\index{launch\_command() (in module src.fork)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fork.launch_command}\pysiglinewithargsret{\sphinxcode{src.fork.}\sphinxbfcode{launch\_command}}{\emph{cmd}, \emph{logger}, \emph{cwd}, \emph{args={[}{]}}, \emph{log=None}}{}
-Launch command
-
-\end{fulllineitems}
-
-\index{show\_progress() (in module src.fork)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fork.show_progress}\pysiglinewithargsret{\sphinxcode{src.fork.}\sphinxbfcode{show\_progress}}{\emph{logger}, \emph{top}, \emph{delai}, \emph{ss='`}}{}
-shortcut function to display the progression
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{Logger}} (\emph{\texttt{logger}}) -- The logging instance
-
-\item {} 
-\textbf{\texttt{int}} (\emph{\texttt{delai}}) -- the number to display
-
-\item {} 
-\textbf{\texttt{int}} -- the number max
-
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{ss}}) -- the string to display
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{write\_back() (in module src.fork)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.fork.write_back}\pysiglinewithargsret{\sphinxcode{src.fork.}\sphinxbfcode{write\_back}}{\emph{logger}, \emph{message}}{}
-shortcut function to write at the begin of the line
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{Logger}} (\emph{\texttt{logger}}) -- The logging instance
-
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{message}}) -- the text to display
-
-\item {} 
-\textbf{\texttt{int}} (\emph{\texttt{level}}) -- the level of verbosity
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-
-
-\subsubsection{src.loggingSat module}
-\label{commands/apidoc/src:module-src.loggingSat}\label{commands/apidoc/src:src-loggingsat-module}\index{src.loggingSat (module)}
-\url{http://sametmax.com/ecrire-des-logs-en-python/}
-\url{https://docs.python.org/3/library/time.html\#time.strftime}
-
-use logging package for salometools
-\begin{description}
-\item[{handler:}] \leavevmode
-on info() no format
-on other formatted indented on multi lines messages
-
-\end{description}
-\index{DefaultFormatter (class in src.loggingSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.loggingSat.DefaultFormatter}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.loggingSat.}\sphinxbfcode{DefaultFormatter}}{\emph{fmt=None}, \emph{datefmt=None}}{}
-Bases: \sphinxcode{logging.Formatter}
-\index{format() (src.loggingSat.DefaultFormatter method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.loggingSat.DefaultFormatter.format}\pysiglinewithargsret{\sphinxbfcode{format}}{\emph{record}}{}
-\end{fulllineitems}
-
-\index{setColorLevelname() (src.loggingSat.DefaultFormatter method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.loggingSat.DefaultFormatter.setColorLevelname}\pysiglinewithargsret{\sphinxbfcode{setColorLevelname}}{\emph{levelname}}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{UnittestFormatter (class in src.loggingSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.loggingSat.UnittestFormatter}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.loggingSat.}\sphinxbfcode{UnittestFormatter}}{\emph{fmt=None}, \emph{datefmt=None}}{}
-Bases: \sphinxcode{logging.Formatter}
-\index{format() (src.loggingSat.UnittestFormatter method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.loggingSat.UnittestFormatter.format}\pysiglinewithargsret{\sphinxbfcode{format}}{\emph{record}}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{UnittestStream (class in src.loggingSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.loggingSat.UnittestStream}\pysigline{\sphinxstrong{class }\sphinxcode{src.loggingSat.}\sphinxbfcode{UnittestStream}}
-Bases: \sphinxcode{object}
-
-write my stream class
-only write and flush are used for the streaming
-\url{https://docs.python.org/2/library/logging.handlers.html}
-\url{https://stackoverflow.com/questions/31999627/storing-logger-messages-in-a-string}
-\index{flush() (src.loggingSat.UnittestStream method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.loggingSat.UnittestStream.flush}\pysiglinewithargsret{\sphinxbfcode{flush}}{}{}
-\end{fulllineitems}
-
-\index{getLogs() (src.loggingSat.UnittestStream method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.loggingSat.UnittestStream.getLogs}\pysiglinewithargsret{\sphinxbfcode{getLogs}}{}{}
-\end{fulllineitems}
-
-\index{getLogsAndClear() (src.loggingSat.UnittestStream method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.loggingSat.UnittestStream.getLogsAndClear}\pysiglinewithargsret{\sphinxbfcode{getLogsAndClear}}{}{}
-\end{fulllineitems}
-
-\index{write() (src.loggingSat.UnittestStream method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.loggingSat.UnittestStream.write}\pysiglinewithargsret{\sphinxbfcode{write}}{\emph{astr}}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{dirLogger() (in module src.loggingSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.loggingSat.dirLogger}\pysiglinewithargsret{\sphinxcode{src.loggingSat.}\sphinxbfcode{dirLogger}}{\emph{logger}}{}
-\end{fulllineitems}
-
-\index{getDefaultLogger() (in module src.loggingSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.loggingSat.getDefaultLogger}\pysiglinewithargsret{\sphinxcode{src.loggingSat.}\sphinxbfcode{getDefaultLogger}}{}{}
-\end{fulllineitems}
-
-\index{getUnittestLogger() (in module src.loggingSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.loggingSat.getUnittestLogger}\pysiglinewithargsret{\sphinxcode{src.loggingSat.}\sphinxbfcode{getUnittestLogger}}{}{}
-\end{fulllineitems}
-
-\index{indent() (in module src.loggingSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.loggingSat.indent}\pysiglinewithargsret{\sphinxcode{src.loggingSat.}\sphinxbfcode{indent}}{\emph{msg}, \emph{nb}, \emph{car=' `}}{}
-indent nb car (spaces) multi lines message except first one
-
-\end{fulllineitems}
-
-\index{indentUnittest() (in module src.loggingSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.loggingSat.indentUnittest}\pysiglinewithargsret{\sphinxcode{src.loggingSat.}\sphinxbfcode{indentUnittest}}{\emph{msg}, \emph{prefix=' \textbar{} `}}{}
-indent car multi lines message except first one
-car default is less spaces for size logs files
-keep human readable
-
-\end{fulllineitems}
-
-\index{initLoggerAsDefault() (in module src.loggingSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.loggingSat.initLoggerAsDefault}\pysiglinewithargsret{\sphinxcode{src.loggingSat.}\sphinxbfcode{initLoggerAsDefault}}{\emph{logger}, \emph{fmt=None}, \emph{level=None}}{}
-init logger as prefixed message and indented message if multi line
-exept info() outed `as it' without any format
-
-\end{fulllineitems}
-
-\index{initLoggerAsUnittest() (in module src.loggingSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.loggingSat.initLoggerAsUnittest}\pysiglinewithargsret{\sphinxcode{src.loggingSat.}\sphinxbfcode{initLoggerAsUnittest}}{\emph{logger}, \emph{fmt=None}, \emph{level=None}}{}
-init logger as silent on stdout/stderr
-used for retrieve messages in memory for post execution unittest
-\url{https://docs.python.org/2/library/logging.handlers.html}
-
-\end{fulllineitems}
-
-\index{log() (in module src.loggingSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.loggingSat.log}\pysiglinewithargsret{\sphinxcode{src.loggingSat.}\sphinxbfcode{log}}{\emph{msg}}{}
-elementary log when no logger yet
-
-\end{fulllineitems}
-
-\index{testLogger\_1() (in module src.loggingSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.loggingSat.testLogger_1}\pysiglinewithargsret{\sphinxcode{src.loggingSat.}\sphinxbfcode{testLogger\_1}}{\emph{logger}}{}
-small test
-
-\end{fulllineitems}
-
-
-
-\subsubsection{src.options module}
-\label{commands/apidoc/src:module-src.options}\label{commands/apidoc/src:src-options-module}\index{src.options (module)}
-The Options class that manages the access to all options passed as 
-parameters in salomeTools command lines
-\index{OptResult (class in src.options)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.options.OptResult}\pysigline{\sphinxstrong{class }\sphinxcode{src.options.}\sphinxbfcode{OptResult}}
-Bases: \sphinxcode{object}
-
-An instance of this class will be the object manipulated
-in code of all salomeTools commands
-The aim of this class is to have an elegant syntax to manipulate the options.
-\begin{description}
-\item[{example: }] \leavevmode
-\textgreater{}\textgreater{} print(options.level)
-\textgreater{}\textgreater{} 5
-
-\end{description}
-
-\end{fulllineitems}
-
-\index{Options (class in src.options)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.options.Options}\pysigline{\sphinxstrong{class }\sphinxcode{src.options.}\sphinxbfcode{Options}}
-Bases: \sphinxcode{object}
-
-Class to manage all salomeTools options
-\index{add\_option() (src.options.Options method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.options.Options.add_option}\pysiglinewithargsret{\sphinxbfcode{add\_option}}{\emph{shortName}, \emph{longName}, \emph{optionType}, \emph{destName}, \emph{helpString='`}, \emph{default=None}}{}~\begin{description}
-\item[{Method to add an option to a command. It gets all attributes}] \leavevmode
-of an option and append it in the options field
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{helpString}}) -- The short name of the option
-(ex ``l'' for level option).
-
-\item {} 
-\textbf{\texttt{str}} -- The long name of the option 
-(ex ``level'' for level option).
-
-\item {} 
-\textbf{\texttt{str}} -- The type of the option (ex ``int'').
-
-\item {} 
-\textbf{\texttt{str}} -- The name that will be used in the code.
-
-\item {} 
-\textbf{\texttt{str}} -- The text to display 
-when user ask for help on a command.
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-Nothing.
-
-\item[{Return type}] \leavevmode
-NA
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{debug\_write() (src.options.Options method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.options.Options.debug_write}\pysiglinewithargsret{\sphinxbfcode{debug\_write}}{}{}
-\end{fulllineitems}
-
-\index{getDetailOption() (src.options.Options method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.options.Options.getDetailOption}\pysiglinewithargsret{\sphinxbfcode{getDetailOption}}{\emph{option}}{}
-for convenience 
-returns (shortName, longName, optionType, helpString')
-
-\end{fulllineitems}
-
-\index{get\_help() (src.options.Options method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.options.Options.get_help}\pysiglinewithargsret{\sphinxbfcode{get\_help}}{}{}
-Method that returns all options stored in self.options 
-as help message colored string
-\begin{quote}\begin{description}
-\item[{Returns}] \leavevmode
-colored string
-
-\item[{Return type}] \leavevmode
-NA
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{indent() (src.options.Options method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.options.Options.indent}\pysiglinewithargsret{\sphinxbfcode{indent}}{\emph{text}, \emph{amount}, \emph{car=' `}}{}
-indent multi lines message
-
-\end{fulllineitems}
-
-\index{parse\_args() (src.options.Options method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.options.Options.parse_args}\pysiglinewithargsret{\sphinxbfcode{parse\_args}}{\emph{argList=None}}{}~\begin{description}
-\item[{Method that instantiates the class OptResult }] \leavevmode
-that gives access to all options in the code
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{list}} (\emph{\texttt{argList}}) -- the raw list of arguments that were passed
-
-\item[{Returns}] \leavevmode
-optResult, args : optResult is the option instance 
-to manipulate in the code. args 
-is the full raw list of passed options
-
-\item[{Return type}] \leavevmode
-(class `common.options.OptResult',list)
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-
-
-\subsubsection{src.product module}
-\label{commands/apidoc/src:module-src.product}\label{commands/apidoc/src:src-product-module}\index{src.product (module)}
-In this file are implemented the methods 
-relative to the product notion of salomeTools
-\index{check\_config\_exists() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.check_config_exists}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{check\_config\_exists}}{\emph{config}, \emph{prod\_dir}, \emph{prod\_info}}{}~\begin{description}
-\item[{Verify that the installation directory of a product in a base exists}] \leavevmode
-Check all the config-\textless{}i\textgreater{} directory and verify the sat-config.pyconf file
-that is in it
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The global configuration
-
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{prod\_dir}}) -- The product installation directory path 
-(without config-\textless{}i\textgreater{})
-
-\item {} 
-\textbf{\texttt{Config}} -- The configuration specific to 
-the product
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-True or false is the installation is found or not 
-and if it is found, the path of the found installation
-
-\item[{Return type}] \leavevmode
-(boolean, str)
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{check\_installation() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.check_installation}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{check\_installation}}{\emph{product\_info}}{}~\begin{description}
-\item[{Verify if a product is well installed. Checks install directory presence}] \leavevmode
-and some additional files if it is defined in the config
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-True if it is well installed
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_base\_install\_dir() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.get_base_install_dir}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{get\_base\_install\_dir}}{\emph{config}, \emph{prod\_info}, \emph{version}}{}
-Compute the installation directory of a product in base
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The global configuration
-
-\item {} 
-\textbf{\texttt{Config}} -- The configuration specific to 
-the product
-
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{version}}) -- The version of the product
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-The path of the product installation
-
-\item[{Return type}] \leavevmode
-str
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_install\_dir() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.get_install_dir}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{get\_install\_dir}}{\emph{config}, \emph{base}, \emph{version}, \emph{prod\_info}}{}
-Compute the installation directory of a given product
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The global configuration
-
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{version}}) -- This corresponds to the value given by user in its application.pyconf for the specific product. If ``yes'', the user wants the product to be in base. If ``no'', he wants the product to be in the application workdir
-
-\item {} 
-\textbf{\texttt{str}} -- The version of the product
-
-\item {} 
-\textbf{\texttt{Config}} -- The configuration specific to the product
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-The path of the product installation
-
-\item[{Return type}] \leavevmode
-str
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_product\_components() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.get_product_components}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{get\_product\_components}}{\emph{product\_info}}{}
-Get the component list to generate with the product
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-The list of names of the components
-
-\item[{Return type}] \leavevmode
-List
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_product\_config() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.get_product_config}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{get\_product\_config}}{\emph{config}, \emph{product\_name}, \emph{with\_install\_dir=True}}{}
-Get the specific configuration of a product from the global configuration
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{Config}} (\emph{\texttt{config}}) -- The global configuration
-
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{product\_name}}) -- The name of the product
-
-\item {} 
-\textbf{\texttt{boolean}} (\emph{\texttt{with\_install\_dir}}) -- If false, do not provide an install 
-directory (at false only for internal use 
-of the function check\_config\_exists)
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-the specific configuration of the product
-
-\item[{Return type}] \leavevmode
-{\hyperref[commands/apidoc/src:src.pyconf.Config]{\sphinxcrossref{Config}}} (\autopageref*{commands/apidoc/src:src.pyconf.Config})
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_product\_dependencies() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.get_product_dependencies}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{get\_product\_dependencies}}{\emph{config}, \emph{product\_info}}{}~\begin{description}
-\item[{Get recursively the list of products that are }] \leavevmode
-in the product\_info dependencies
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The global configuration
-
-\item {} 
-\textbf{\texttt{Config}} -- The configuration specific to 
-the product
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-the list of products in dependence
-
-\item[{Return type}] \leavevmode
-{\hyperref[commands/apidoc/src:src.utilsSat.Path.list]{\sphinxcrossref{list}}} (\autopageref*{commands/apidoc/src:src.utilsSat.Path.list})
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_product\_section() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.get_product_section}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{get\_product\_section}}{\emph{config}, \emph{product\_name}, \emph{version}, \emph{section=None}}{}
-Get the product description from the configuration
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{Config}} (\emph{\texttt{config}}) -- The global configuration
-
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{section}}) -- The product name
-
-\item {} 
-\textbf{\texttt{str}} -- The version of the product
-
-\item {} 
-\textbf{\texttt{str}} -- The searched section (if not None, the section is 
-explicitly given
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-The product description
-
-\item[{Return type}] \leavevmode
-{\hyperref[commands/apidoc/src:src.pyconf.Config]{\sphinxcrossref{Config}}} (\autopageref*{commands/apidoc/src:src.pyconf.Config})
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_products\_infos() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.get_products_infos}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{get\_products\_infos}}{\emph{lproducts}, \emph{config}}{}
-Get the specific configuration of a list of products
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{List}} (\emph{\texttt{lproducts}}) -- The list of product names
-
-\item {} 
-\textbf{\texttt{Config}} (\emph{\texttt{config}}) -- The global configuration
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-the list of tuples 
-(product name, specific configuration of the product)
-
-\item[{Return type}] \leavevmode
-{[}(str, Config){]}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{product\_compiles() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.product_compiles}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{product\_compiles}}{\emph{product\_info}}{}~\begin{description}
-\item[{Know if a product compiles or not (some products do not have a }] \leavevmode
-compilation procedure)
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-True if the product compiles, else False
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{product\_has\_env\_script() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.product_has_env_script}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{product\_has\_env\_script}}{\emph{product\_info}}{}
-Know if a product has an environment script
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-True if the product it has an environment script, else False
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{product\_has\_logo() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.product_has_logo}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{product\_has\_logo}}{\emph{product\_info}}{}
-Know if a product has a logo (YACSGEN generate)
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-The path of the logo if the product has a logo, else False
-
-\item[{Return type}] \leavevmode
-Str
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{product\_has\_patches() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.product_has_patches}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{product\_has\_patches}}{\emph{product\_info}}{}
-Know if a product has one or more patches
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-True if the product has one or more patches
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{product\_has\_salome\_gui() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.product_has_salome_gui}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{product\_has\_salome\_gui}}{\emph{product\_info}}{}
-Know if a product has a SALOME gui
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-True if the product has a SALOME gui, else False
-
-\item[{Return type}] \leavevmode
-Boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{product\_has\_script() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.product_has_script}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{product\_has\_script}}{\emph{product\_info}}{}
-Know if a product has a compilation script
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-True if the product it has a compilation script, else False
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{product\_is\_SALOME() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.product_is_SALOME}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{product\_is\_SALOME}}{\emph{product\_info}}{}
-Know if a product is a SALOME module
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-True if the product is a SALOME module, else False
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{product\_is\_autotools() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.product_is_autotools}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{product\_is\_autotools}}{\emph{product\_info}}{}
-Know if a product is compiled using the autotools
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-True if the product is autotools, else False
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{product\_is\_cmake() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.product_is_cmake}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{product\_is\_cmake}}{\emph{product\_info}}{}
-Know if a product is compiled using the cmake
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-True if the product is cmake, else False
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{product\_is\_cpp() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.product_is_cpp}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{product\_is\_cpp}}{\emph{product\_info}}{}
-Know if a product is cpp
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-True if the product is a cpp, else False
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{product\_is\_debug() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.product_is_debug}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{product\_is\_debug}}{\emph{product\_info}}{}
-Know if a product is in debug mode
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-True if the product is in debug mode, else False
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{product\_is\_dev() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.product_is_dev}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{product\_is\_dev}}{\emph{product\_info}}{}
-Know if a product is in dev mode
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-True if the product is in dev mode, else False
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{product\_is\_fixed() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.product_is_fixed}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{product\_is\_fixed}}{\emph{product\_info}}{}
-Know if a product is fixed
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-True if the product is fixed, else False
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{product\_is\_generated() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.product_is_generated}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{product\_is\_generated}}{\emph{product\_info}}{}
-Know if a product is generated (YACSGEN)
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-True if the product is generated
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{product\_is\_mpi() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.product_is_mpi}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{product\_is\_mpi}}{\emph{product\_info}}{}
-Know if a product has openmpi in its dependencies
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-True if the product has openmpi inits dependencies
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{product\_is\_native() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.product_is_native}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{product\_is\_native}}{\emph{product\_info}}{}
-Know if a product is native
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-True if the product is native, else False
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{product\_is\_salome() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.product_is_salome}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{product\_is\_salome}}{\emph{product\_info}}{}
-Know if a product is of type salome
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-True if the product is salome, else False
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{product\_is\_sample() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.product_is_sample}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{product\_is\_sample}}{\emph{product\_info}}{}
-Know if a product has the sample type
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-True if the product has the sample type, else False
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{product\_is\_smesh\_plugin() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.product_is_smesh_plugin}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{product\_is\_smesh\_plugin}}{\emph{product\_info}}{}
-Know if a product is a SMESH plugin
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-True if the product is a SMESH plugin, else False
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{product\_is\_vcs() (in module src.product)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.product.product_is_vcs}\pysiglinewithargsret{\sphinxcode{src.product.}\sphinxbfcode{product\_is\_vcs}}{\emph{product\_info}}{}
-Know if a product is download using git, svn or cvs (not archive)
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{product\_info}}) -- The configuration specific to 
-the product
-
-\item[{Returns}] \leavevmode
-True if the product is vcs, else False
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-
-
-\subsubsection{src.pyconf module}
-\label{commands/apidoc/src:src-pyconf-module}\label{commands/apidoc/src:module-src.pyconf}\index{src.pyconf (module)}
-This is a configuration module for Python.
-
-This module should work under Python versions \textgreater{}= 2.2, and cannot be used with
-earlier versions since it uses new-style classes.
-
-Development and testing has only been carried out (so far) on Python 2.3.4 and
-Python 2.4.2. See the test module (test\_config.py) included in the
-U\{distribution\textless{}\url{http://www.red-dove.com/python\_config}.html\textbar{}\_blank\textgreater{}\} (follow the
-download link).
-
-A simple example - with the example configuration file:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-messages:
-[
-  \PYGZob{}
-    stream : {}`sys.stderr{}`
-    message: \PYGZsq{}Welcome\PYGZsq{}
-    name: \PYGZsq{}Harry\PYGZsq{}
-  \PYGZcb{}
-  \PYGZob{}
-    stream : {}`sys.stdout{}`
-    message: \PYGZsq{}Welkom\PYGZsq{}
-    name: \PYGZsq{}Ruud\PYGZsq{}
-  \PYGZcb{}
-  \PYGZob{}
-    stream : \PYGZdl{}messages[0].stream
-    message: \PYGZsq{}Bienvenue\PYGZsq{}
-    name: Yves
-  \PYGZcb{}
-]
-\end{Verbatim}
-
-a program to read the configuration would be:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{k+kn}{from} \PYG{n+nn}{config} \PYG{k}{import} \PYG{n}{Config}
-
-\PYG{n}{f} \PYG{o}{=} \PYG{n}{file}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{simple.cfg}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}
-\PYG{n}{cfg} \PYG{o}{=} \PYG{n}{Config}\PYG{p}{(}\PYG{n}{f}\PYG{p}{)}
-\PYG{k}{for} \PYG{n}{m} \PYG{o+ow}{in} \PYG{n}{cfg}\PYG{o}{.}\PYG{n}{messages}\PYG{p}{:}
-    \PYG{n}{s} \PYG{o}{=} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+si}{\PYGZpc{}s}\PYG{l+s+s1}{, }\PYG{l+s+si}{\PYGZpc{}s}\PYG{l+s+s1}{\PYGZsq{}} \PYG{o}{\PYGZpc{}} \PYG{p}{(}\PYG{n}{m}\PYG{o}{.}\PYG{n}{message}\PYG{p}{,} \PYG{n}{m}\PYG{o}{.}\PYG{n}{name}\PYG{p}{)}
-    \PYG{k}{try}\PYG{p}{:}
-        \PYG{n+nb}{print} \PYG{o}{\PYGZgt{}\PYGZgt{}} \PYG{n}{m}\PYG{o}{.}\PYG{n}{stream}\PYG{p}{,} \PYG{n}{s}
-    \PYG{k}{except} \PYG{n+ne}{IOError}\PYG{p}{,} \PYG{n}{e}\PYG{p}{:}
-        \PYG{n+nb}{print} \PYG{n}{e}
-\end{Verbatim}
-
-which, when run, would yield the console output:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{Welcome}\PYG{p}{,} \PYG{n}{Harry}
-\PYG{n}{Welkom}\PYG{p}{,} \PYG{n}{Ruud}
-\PYG{n}{Bienvenue}\PYG{p}{,} \PYG{n}{Yves}
-\end{Verbatim}
-
-See U\{this tutorial\textless{}\url{http://www.red-dove.com/python\_config}.html\textbar{}\_blank\textgreater{}\} for more
-information.
-
-\#modified for salomeTools
-@version: 0.3.7.1
-
-@author: Vinay Sajip
-
-@copyright: Copyright (C) 2004-2007 Vinay Sajip. All Rights Reserved.
-
-@var streamOpener: The default stream opener. This is a factory function which
-takes a string (e.g. filename) and returns a stream suitable for reading. If
-unable to open the stream, an IOError exception should be thrown.
-
-The default value of this variable is L\{defaultStreamOpener\}. For an example
-of how it's used, see test\_config.py (search for streamOpener).
-\index{Config (class in src.pyconf)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Config}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.pyconf.}\sphinxbfcode{Config}}{\emph{streamOrFile=None}, \emph{parent=None}, \emph{PWD=None}}{}
-Bases: {\hyperref[commands/apidoc/src:src.pyconf.Mapping]{\sphinxcrossref{\sphinxcode{src.pyconf.Mapping}}}} (\autopageref*{commands/apidoc/src:src.pyconf.Mapping})
-
-This class represents a configuration, and is the only one which clients
-need to interface to, under normal circumstances.
-\index{Config.Namespace (class in src.pyconf)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Config.Namespace}\pysigline{\sphinxstrong{class }\sphinxbfcode{Namespace}}
-Bases: \sphinxcode{object}
-
-This internal class is used for implementing default namespaces.
-
-An instance acts as a namespace.
-
-\end{fulllineitems}
-
-\index{addNamespace() (src.pyconf.Config method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Config.addNamespace}\pysiglinewithargsret{\sphinxcode{Config.}\sphinxbfcode{addNamespace}}{\emph{ns}, \emph{name=None}}{}
-Add a namespace to this configuration which can be used to evaluate
-(resolve) dotted-identifier expressions.
-@param ns: The namespace to be added.
-@type ns: A module or other namespace suitable for passing as an
-argument to vars().
-@param name: A name for the namespace, which, if specified, provides
-an additional level of indirection.
-@type name: str
-
-\end{fulllineitems}
-
-\index{getByPath() (src.pyconf.Config method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Config.getByPath}\pysiglinewithargsret{\sphinxcode{Config.}\sphinxbfcode{getByPath}}{\emph{path}}{}
-Obtain a value in the configuration via its path.
-@param path: The path of the required value
-@type path: str
-@return the value at the specified path.
-@rtype: any
-@raise ConfigError: If the path is invalid
-
-\end{fulllineitems}
-
-\index{load() (src.pyconf.Config method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Config.load}\pysiglinewithargsret{\sphinxcode{Config.}\sphinxbfcode{load}}{\emph{stream}}{}
-Load the configuration from the specified stream. Multiple streams can
-be used to populate the same instance, as long as there are no
-clashing keys. The stream is closed.
-@param stream: A stream from which the configuration is read.
-@type stream: A read-only stream (file-like object).
-@raise ConfigError: if keys in the loaded configuration clash with
-existing keys.
-@raise ConfigFormatError: if there is a syntax error in the stream.
-
-\end{fulllineitems}
-
-\index{removeNamespace() (src.pyconf.Config method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Config.removeNamespace}\pysiglinewithargsret{\sphinxcode{Config.}\sphinxbfcode{removeNamespace}}{\emph{ns}, \emph{name=None}}{}
-Remove a namespace added with L\{addNamespace\}.
-@param ns: The namespace to be removed.
-@param name: The name which was specified when L\{addNamespace\} was
-called.
-@type name: str
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{ConfigError}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigError}\pysigline{\sphinxstrong{exception }\sphinxcode{src.pyconf.}\sphinxbfcode{ConfigError}}
-Bases: \sphinxcode{exceptions.Exception}
-
-This is the base class of exceptions raised by this module.
-
-\end{fulllineitems}
-
-\index{ConfigFormatError}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigFormatError}\pysigline{\sphinxstrong{exception }\sphinxcode{src.pyconf.}\sphinxbfcode{ConfigFormatError}}
-Bases: {\hyperref[commands/apidoc/src:src.pyconf.ConfigError]{\sphinxcrossref{\sphinxcode{src.pyconf.ConfigError}}}} (\autopageref*{commands/apidoc/src:src.pyconf.ConfigError})
-
-This is the base class of exceptions raised due to syntax errors in
-configurations.
-
-\end{fulllineitems}
-
-\index{ConfigInputStream (class in src.pyconf)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigInputStream}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.pyconf.}\sphinxbfcode{ConfigInputStream}}{\emph{stream}}{}
-Bases: \sphinxcode{object}
-
-An input stream which can read either ANSI files with default encoding
-or Unicode files with BOMs.
-
-Handles UTF-8, UTF-16LE, UTF-16BE. Could handle UTF-32 if Python had
-built-in support.
-\index{close() (src.pyconf.ConfigInputStream method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigInputStream.close}\pysiglinewithargsret{\sphinxbfcode{close}}{}{}
-\end{fulllineitems}
-
-\index{read() (src.pyconf.ConfigInputStream method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigInputStream.read}\pysiglinewithargsret{\sphinxbfcode{read}}{\emph{size}}{}
-\end{fulllineitems}
-
-\index{readline() (src.pyconf.ConfigInputStream method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigInputStream.readline}\pysiglinewithargsret{\sphinxbfcode{readline}}{}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{ConfigList (class in src.pyconf)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigList}\pysigline{\sphinxstrong{class }\sphinxcode{src.pyconf.}\sphinxbfcode{ConfigList}}
-Bases: \sphinxcode{list}
-
-This class implements an ordered list of configurations and allows you
-to try getting the configuration from each entry in turn, returning
-the first successfully obtained value.
-\index{getByPath() (src.pyconf.ConfigList method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigList.getByPath}\pysiglinewithargsret{\sphinxbfcode{getByPath}}{\emph{path}}{}
-Obtain a value from the first configuration in the list which defines
-it.
-
-@param path: The path of the value to retrieve.
-@type path: str
-@return: The value from the earliest configuration in the list which
-defines it.
-@rtype: any
-@raise ConfigError: If no configuration in the list has an entry with
-the specified path.
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{ConfigMerger (class in src.pyconf)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigMerger}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.pyconf.}\sphinxbfcode{ConfigMerger}}{\emph{resolver=\textless{}function defaultMergeResolve\textgreater{}}}{}
-Bases: \sphinxcode{object}
-
-This class is used for merging two configurations. If a key exists in the
-merge operand but not the merge target, then the entry is copied from the
-merge operand to the merge target. If a key exists in both configurations,
-then a resolver (a callable) is called to decide how to handle the
-conflict.
-\index{handleMismatch() (src.pyconf.ConfigMerger method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigMerger.handleMismatch}\pysiglinewithargsret{\sphinxbfcode{handleMismatch}}{\emph{obj1}, \emph{obj2}}{}
-Handle a mismatch between two objects.
-
-@param obj1: The object to merge into.
-@type obj1: any
-@param obj2: The object to merge.
-@type obj2: any
-
-\end{fulllineitems}
-
-\index{merge() (src.pyconf.ConfigMerger method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigMerger.merge}\pysiglinewithargsret{\sphinxbfcode{merge}}{\emph{merged}, \emph{mergee}}{}
-Merge two configurations. The second configuration is unchanged,
-and the first is changed to reflect the results of the merge.
-
-@param merged: The configuration to merge into.
-@type merged: L\{Config\}.
-@param mergee: The configuration to merge.
-@type mergee: L\{Config\}.
-
-\end{fulllineitems}
-
-\index{mergeMapping() (src.pyconf.ConfigMerger method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigMerger.mergeMapping}\pysiglinewithargsret{\sphinxbfcode{mergeMapping}}{\emph{map1}, \emph{map2}}{}
-Merge two mappings recursively. The second mapping is unchanged,
-and the first is changed to reflect the results of the merge.
-
-@param map1: The mapping to merge into.
-@type map1: L\{Mapping\}.
-@param map2: The mapping to merge.
-@type map2: L\{Mapping\}.
-
-\end{fulllineitems}
-
-\index{mergeSequence() (src.pyconf.ConfigMerger method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigMerger.mergeSequence}\pysiglinewithargsret{\sphinxbfcode{mergeSequence}}{\emph{seq1}, \emph{seq2}}{}
-Merge two sequences. The second sequence is unchanged,
-and the first is changed to have the elements of the second
-appended to it.
-
-@param seq1: The sequence to merge into.
-@type seq1: L\{Sequence\}.
-@param seq2: The sequence to merge.
-@type seq2: L\{Sequence\}.
-
-\end{fulllineitems}
-
-\index{overwriteKeys() (src.pyconf.ConfigMerger method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigMerger.overwriteKeys}\pysiglinewithargsret{\sphinxbfcode{overwriteKeys}}{\emph{map1}, \emph{seq2}}{}
-Renint variables. The second mapping is unchanged,
-and the first is changed depending the keys of the second mapping.
-@param map1: The mapping to reinit keys into.
-@type map1: L\{Mapping\}.
-@param map2: The mapping container reinit information.
-@type map2: L\{Mapping\}.
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{ConfigOutputStream (class in src.pyconf)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigOutputStream}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.pyconf.}\sphinxbfcode{ConfigOutputStream}}{\emph{stream}, \emph{encoding=None}}{}
-Bases: \sphinxcode{object}
-
-An output stream which can write either ANSI files with default encoding
-or Unicode files with BOMs.
-
-Handles UTF-8, UTF-16LE, UTF-16BE. Could handle UTF-32 if Python had
-built-in support.
-\index{close() (src.pyconf.ConfigOutputStream method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigOutputStream.close}\pysiglinewithargsret{\sphinxbfcode{close}}{}{}
-\end{fulllineitems}
-
-\index{flush() (src.pyconf.ConfigOutputStream method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigOutputStream.flush}\pysiglinewithargsret{\sphinxbfcode{flush}}{}{}
-\end{fulllineitems}
-
-\index{write() (src.pyconf.ConfigOutputStream method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigOutputStream.write}\pysiglinewithargsret{\sphinxbfcode{write}}{\emph{data}}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{ConfigReader (class in src.pyconf)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigReader}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.pyconf.}\sphinxbfcode{ConfigReader}}{\emph{config}}{}
-Bases: \sphinxcode{object}
-
-This internal class implements a parser for configurations.
-\index{getChar() (src.pyconf.ConfigReader method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigReader.getChar}\pysiglinewithargsret{\sphinxbfcode{getChar}}{}{}
-Get the next char from the stream. Update line and column numbers
-appropriately.
-
-@return: The next character from the stream.
-@rtype: str
-
-\end{fulllineitems}
-
-\index{getToken() (src.pyconf.ConfigReader method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigReader.getToken}\pysiglinewithargsret{\sphinxbfcode{getToken}}{}{}
-Get a token from the stream. String values are returned in a form
-where you need to eval() the returned value to get the actual
-string. The return value is (token\_type, token\_value).
-
-Multiline string tokenizing is thanks to David Janes (BlogMatrix)
-
-@return: The next token.
-@rtype: A token tuple.
-
-\end{fulllineitems}
-
-\index{load() (src.pyconf.ConfigReader method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigReader.load}\pysiglinewithargsret{\sphinxbfcode{load}}{\emph{stream}, \emph{parent=None}, \emph{suffix=None}}{}
-Load the configuration from the specified stream.
-
-@param stream: A stream from which to load the configuration.
-@type stream: A stream (file-like object).
-@param parent: The parent of the configuration (to which this reader
-belongs) in the hierarchy. Specified when the configuration is
-included in another one.
-@type parent: A L\{Container\} instance.
-@param suffix: The suffix of this configuration in the parent
-configuration. Should be specified whenever the parent is not None.
-@raise ConfigError: If parent is specified but suffix is not.
-@raise ConfigFormatError: If there are syntax errors in the stream.
-
-\end{fulllineitems}
-
-\index{location() (src.pyconf.ConfigReader method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigReader.location}\pysiglinewithargsret{\sphinxbfcode{location}}{}{}
-Return the current location (filename, line, column) in the stream
-as a string.
-
-Used when printing error messages,
-
-@return: A string representing a location in the stream being read.
-@rtype: str
-
-\end{fulllineitems}
-
-\index{match() (src.pyconf.ConfigReader method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigReader.match}\pysiglinewithargsret{\sphinxbfcode{match}}{\emph{t}}{}
-Ensure that the current token type matches the specified value, and
-advance to the next token.
-
-@param t: The token type to match.
-@type t: A valid token type.
-@return: The token which was last read from the stream before this
-function is called.
-@rtype: a token tuple - see L\{getToken\}.
-@raise ConfigFormatError: If the token does not match what's expected.
-
-\end{fulllineitems}
-
-\index{parseFactor() (src.pyconf.ConfigReader method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigReader.parseFactor}\pysiglinewithargsret{\sphinxbfcode{parseFactor}}{}{}
-Parse a factor in an multiplicative expression (a * b, a / b, a \% b)
-
-@return: the parsed factor
-@rtype: any scalar
-@raise ConfigFormatError: if a syntax error is found.
-
-\end{fulllineitems}
-
-\index{parseKeyValuePair() (src.pyconf.ConfigReader method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigReader.parseKeyValuePair}\pysiglinewithargsret{\sphinxbfcode{parseKeyValuePair}}{\emph{parent}}{}
-Parse a key-value pair, and add it to the provided L\{Mapping\}.
-
-@param parent: The mapping to add entries to.
-@type parent: A L\{Mapping\} instance.
-@raise ConfigFormatError: if a syntax error is found.
-
-\end{fulllineitems}
-
-\index{parseMapping() (src.pyconf.ConfigReader method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigReader.parseMapping}\pysiglinewithargsret{\sphinxbfcode{parseMapping}}{\emph{parent}, \emph{suffix}}{}
-Parse a mapping.
-
-@param parent: The container to which the mapping will be added.
-@type parent: A L\{Container\} instance.
-@param suffix: The suffix for the value.
-@type suffix: str
-@return: a L\{Mapping\} instance representing the mapping.
-@rtype: L\{Mapping\}
-@raise ConfigFormatError: if a syntax error is found.
-
-\end{fulllineitems}
-
-\index{parseMappingBody() (src.pyconf.ConfigReader method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigReader.parseMappingBody}\pysiglinewithargsret{\sphinxbfcode{parseMappingBody}}{\emph{parent}}{}
-Parse the internals of a mapping, and add entries to the provided
-L\{Mapping\}.
-
-@param parent: The mapping to add entries to.
-@type parent: A L\{Mapping\} instance.
-
-\end{fulllineitems}
-
-\index{parseReference() (src.pyconf.ConfigReader method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigReader.parseReference}\pysiglinewithargsret{\sphinxbfcode{parseReference}}{\emph{type}}{}
-Parse a reference.
-
-@return: the parsed reference
-@rtype: L\{Reference\}
-@raise ConfigFormatError: if a syntax error is found.
-
-\end{fulllineitems}
-
-\index{parseScalar() (src.pyconf.ConfigReader method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigReader.parseScalar}\pysiglinewithargsret{\sphinxbfcode{parseScalar}}{}{}
-Parse a scalar - a terminal value such as a string or number, or
-an L\{Expression\} or L\{Reference\}.
-
-@return: the parsed scalar
-@rtype: any scalar
-@raise ConfigFormatError: if a syntax error is found.
-
-\end{fulllineitems}
-
-\index{parseSequence() (src.pyconf.ConfigReader method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigReader.parseSequence}\pysiglinewithargsret{\sphinxbfcode{parseSequence}}{\emph{parent}, \emph{suffix}}{}
-Parse a sequence.
-
-@param parent: The container to which the sequence will be added.
-@type parent: A L\{Container\} instance.
-@param suffix: The suffix for the value.
-@type suffix: str
-@return: a L\{Sequence\} instance representing the sequence.
-@rtype: L\{Sequence\}
-@raise ConfigFormatError: if a syntax error is found.
-
-\end{fulllineitems}
-
-\index{parseSuffix() (src.pyconf.ConfigReader method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigReader.parseSuffix}\pysiglinewithargsret{\sphinxbfcode{parseSuffix}}{\emph{ref}}{}
-Parse a reference suffix.
-
-@param ref: The reference of which this suffix is a part.
-@type ref: L\{Reference\}.
-@raise ConfigFormatError: if a syntax error is found.
-
-\end{fulllineitems}
-
-\index{parseTerm() (src.pyconf.ConfigReader method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigReader.parseTerm}\pysiglinewithargsret{\sphinxbfcode{parseTerm}}{}{}
-Parse a term in an additive expression (a + b, a - b)
-
-@return: the parsed term
-@rtype: any scalar
-@raise ConfigFormatError: if a syntax error is found.
-
-\end{fulllineitems}
-
-\index{parseValue() (src.pyconf.ConfigReader method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigReader.parseValue}\pysiglinewithargsret{\sphinxbfcode{parseValue}}{\emph{parent}, \emph{suffix}}{}
-Parse a value.
-
-@param parent: The container to which the value will be added.
-@type parent: A L\{Container\} instance.
-@param suffix: The suffix for the value.
-@type suffix: str
-@return: The value
-@rtype: any
-@raise ConfigFormatError: if a syntax error is found.
-
-\end{fulllineitems}
-
-\index{setStream() (src.pyconf.ConfigReader method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigReader.setStream}\pysiglinewithargsret{\sphinxbfcode{setStream}}{\emph{stream}}{}
-Set the stream to the specified value, and prepare to read from it.
-
-@param stream: A stream from which to load the configuration.
-@type stream: A stream (file-like object).
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{ConfigResolutionError}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.ConfigResolutionError}\pysigline{\sphinxstrong{exception }\sphinxcode{src.pyconf.}\sphinxbfcode{ConfigResolutionError}}
-Bases: {\hyperref[commands/apidoc/src:src.pyconf.ConfigError]{\sphinxcrossref{\sphinxcode{src.pyconf.ConfigError}}}} (\autopageref*{commands/apidoc/src:src.pyconf.ConfigError})
-
-This is the base class of exceptions raised due to semantic errors in
-configurations.
-
-\end{fulllineitems}
-
-\index{Container (class in src.pyconf)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Container}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.pyconf.}\sphinxbfcode{Container}}{\emph{parent}}{}
-Bases: \sphinxcode{object}
-
-This internal class is the base class for mappings and sequences.
-
-@ivar path: A string which describes how to get
-to this instance from the root of the hierarchy.
-
-Example:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{a}\PYG{o}{.}\PYG{n}{list}\PYG{o}{.}\PYG{n}{of}\PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{o}{.}\PYG{o+ow}{or}\PYG{p}{[}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{more}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{]}\PYG{o}{.}\PYG{n}{elements}
-\end{Verbatim}
-\index{evaluate() (src.pyconf.Container method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Container.evaluate}\pysiglinewithargsret{\sphinxbfcode{evaluate}}{\emph{item}}{}
-Evaluate items which are instances of L\{Reference\} or L\{Expression\}.
-
-L\{Reference\} instances are evaluated using L\{Reference.resolve\},
-and L\{Expression\} instances are evaluated using
-L\{Expression.evaluate\}.
-
-@param item: The item to be evaluated.
-@type item: any
-@return: If the item is an instance of L\{Reference\} or L\{Expression\},
-the evaluated value is returned, otherwise the item is returned
-unchanged.
-
-\end{fulllineitems}
-
-\index{setPath() (src.pyconf.Container method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Container.setPath}\pysiglinewithargsret{\sphinxbfcode{setPath}}{\emph{path}}{}
-Set the path for this instance.
-@param path: The path - a string which describes how to get
-to this instance from the root of the hierarchy.
-@type path: str
-
-\end{fulllineitems}
-
-\index{writeToStream() (src.pyconf.Container method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Container.writeToStream}\pysiglinewithargsret{\sphinxbfcode{writeToStream}}{\emph{stream}, \emph{indent}, \emph{container}}{}
-Write this instance to a stream at the specified indentation level.
-
-Should be redefined in subclasses.
-
-@param stream: The stream to write to
-@type stream: A writable stream (file-like object)
-@param indent: The indentation level
-@type indent: int
-@param container: The container of this instance
-@type container: L\{Container\}
-@raise NotImplementedError: If a subclass does not override this
-
-\end{fulllineitems}
-
-\index{writeValue() (src.pyconf.Container method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Container.writeValue}\pysiglinewithargsret{\sphinxbfcode{writeValue}}{\emph{value}, \emph{stream}, \emph{indent}}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{Expression (class in src.pyconf)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Expression}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.pyconf.}\sphinxbfcode{Expression}}{\emph{op}, \emph{lhs}, \emph{rhs}}{}
-Bases: \sphinxcode{object}
-
-This internal class implements a value which is obtained by evaluating an expression.
-\index{evaluate() (src.pyconf.Expression method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Expression.evaluate}\pysiglinewithargsret{\sphinxbfcode{evaluate}}{\emph{container}}{}
-Evaluate this instance in the context of a container.
-
-@param container: The container to evaluate in from.
-@type container: L\{Container\}
-@return: The evaluated value.
-@rtype: any
-@raise ConfigResolutionError: If evaluation fails.
-@raise ZeroDivideError: If division by zero occurs.
-@raise TypeError: If the operation is invalid, e.g.
-subtracting one string from another.
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{Mapping (class in src.pyconf)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Mapping}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.pyconf.}\sphinxbfcode{Mapping}}{\emph{parent=None}}{}
-Bases: {\hyperref[commands/apidoc/src:src.pyconf.Container]{\sphinxcrossref{\sphinxcode{src.pyconf.Container}}}} (\autopageref*{commands/apidoc/src:src.pyconf.Container})
-
-This internal class implements key-value mappings in configurations.
-\index{addMapping() (src.pyconf.Mapping method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Mapping.addMapping}\pysiglinewithargsret{\sphinxbfcode{addMapping}}{\emph{key}, \emph{value}, \emph{comment}, \emph{setting=False}}{}
-Add a key-value mapping with a comment.
-
-@param key: The key for the mapping.
-@type key: str
-@param value: The value for the mapping.
-@type value: any
-@param comment: The comment for the key (can be None).
-@type comment: str
-@param setting: If True, ignore clashes. This is set
-to true when called from L\{\_\_setattr\_\_\}.
-@raise ConfigFormatError: If an existing key is seen
-again and setting is False.
-
-\end{fulllineitems}
-
-\index{get() (src.pyconf.Mapping method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Mapping.get}\pysiglinewithargsret{\sphinxbfcode{get}}{\emph{key}, \emph{default=None}}{}
-Allows a dictionary-style get operation.
-
-\end{fulllineitems}
-
-\index{iteritems() (src.pyconf.Mapping method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Mapping.iteritems}\pysiglinewithargsret{\sphinxbfcode{iteritems}}{}{}
-\end{fulllineitems}
-
-\index{iterkeys() (src.pyconf.Mapping method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Mapping.iterkeys}\pysiglinewithargsret{\sphinxbfcode{iterkeys}}{}{}
-\end{fulllineitems}
-
-\index{keys() (src.pyconf.Mapping method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Mapping.keys}\pysiglinewithargsret{\sphinxbfcode{keys}}{}{}
-Return the keys in a similar way to a dictionary.
-
-\end{fulllineitems}
-
-\index{writeToStream() (src.pyconf.Mapping method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Mapping.writeToStream}\pysiglinewithargsret{\sphinxbfcode{writeToStream}}{\emph{stream}, \emph{indent}, \emph{container}}{}
-Write this instance to a stream at the specified indentation level.
-
-Should be redefined in subclasses.
-
-@param stream: The stream to write to
-@type stream: A writable stream (file-like object)
-@param indent: The indentation level
-@type indent: int
-@param container: The container of this instance
-@type container: L\{Container\}
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{Reference (class in src.pyconf)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Reference}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.pyconf.}\sphinxbfcode{Reference}}{\emph{config}, \emph{type}, \emph{ident}}{}
-Bases: \sphinxcode{object}
-
-This internal class implements a value which is a reference to another value.
-\index{addElement() (src.pyconf.Reference method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Reference.addElement}\pysiglinewithargsret{\sphinxbfcode{addElement}}{\emph{type}, \emph{ident}}{}
-Add an element to the reference.
-
-@param type: The type of reference.
-@type type: BACKTICK or DOLLAR
-@param ident: The identifier which continues the reference.
-@type ident: str
-
-\end{fulllineitems}
-
-\index{findConfig() (src.pyconf.Reference method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Reference.findConfig}\pysiglinewithargsret{\sphinxbfcode{findConfig}}{\emph{container}}{}
-Find the closest enclosing configuration to the specified container.
-
-@param container: The container to start from.
-@type container: L\{Container\}
-@return: The closest enclosing configuration, or None.
-@rtype: L\{Config\}
-
-\end{fulllineitems}
-
-\index{resolve() (src.pyconf.Reference method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Reference.resolve}\pysiglinewithargsret{\sphinxbfcode{resolve}}{\emph{container}}{}
-Resolve this instance in the context of a container.
-
-@param container: The container to resolve from.
-@type container: L\{Container\}
-@return: The resolved value.
-@rtype: any
-@raise ConfigResolutionError: If resolution fails.
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{Sequence (class in src.pyconf)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Sequence}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.pyconf.}\sphinxbfcode{Sequence}}{\emph{parent=None}}{}
-Bases: {\hyperref[commands/apidoc/src:src.pyconf.Container]{\sphinxcrossref{\sphinxcode{src.pyconf.Container}}}} (\autopageref*{commands/apidoc/src:src.pyconf.Container})
-
-This internal class implements a value which is a sequence of other values.
-\index{Sequence.SeqIter (class in src.pyconf)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Sequence.SeqIter}\pysiglinewithargsret{\sphinxstrong{class }\sphinxbfcode{SeqIter}}{\emph{seq}}{}
-Bases: \sphinxcode{object}
-
-This internal class implements an iterator for a L\{Sequence\} instance.
-\index{next() (src.pyconf.Sequence.SeqIter method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Sequence.SeqIter.next}\pysiglinewithargsret{\sphinxbfcode{next}}{}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{append() (src.pyconf.Sequence method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Sequence.append}\pysiglinewithargsret{\sphinxcode{Sequence.}\sphinxbfcode{append}}{\emph{item}, \emph{comment}}{}
-Add an item to the sequence.
-
-@param item: The item to add.
-@type item: any
-@param comment: A comment for the item.
-@type comment: str
-
-\end{fulllineitems}
-
-\index{writeToStream() (src.pyconf.Sequence method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.Sequence.writeToStream}\pysiglinewithargsret{\sphinxcode{Sequence.}\sphinxbfcode{writeToStream}}{\emph{stream}, \emph{indent}, \emph{container}}{}
-Write this instance to a stream at the specified indentation level.
-
-Should be redefined in subclasses.
-
-@param stream: The stream to write to
-@type stream: A writable stream (file-like object)
-@param indent: The indentation level
-@type indent: int
-@param container: The container of this instance
-@type container: L\{Container\}
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{deepCopyMapping() (in module src.pyconf)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.deepCopyMapping}\pysiglinewithargsret{\sphinxcode{src.pyconf.}\sphinxbfcode{deepCopyMapping}}{\emph{inMapping}}{}
-\end{fulllineitems}
-
-\index{defaultMergeResolve() (in module src.pyconf)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.defaultMergeResolve}\pysiglinewithargsret{\sphinxcode{src.pyconf.}\sphinxbfcode{defaultMergeResolve}}{\emph{map1}, \emph{map2}, \emph{key}}{}
-A default resolver for merge conflicts. 
-Returns a string indicating what action to take to resolve the conflict.
-
-@param map1: The map being merged into.
-@type map1: L\{Mapping\}.
-@param map2: The map being used as the merge operand.
-@type map2: L\{Mapping\}.
-@param key: The key in map2 (which also exists in map1).
-@type key: str
-@return: One of ``merge'', ``append'', ``mismatch'' or ``overwrite'' 
-indicating what action should be taken. This should
-be appropriate to the objects being merged - e.g.
-there is no point returning ``merge'' if the two objects
-are instances of L\{Sequence\}.
-@rtype: str
-
-\end{fulllineitems}
-
-\index{defaultStreamOpener() (in module src.pyconf)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.defaultStreamOpener}\pysiglinewithargsret{\sphinxcode{src.pyconf.}\sphinxbfcode{defaultStreamOpener}}{\emph{name}}{}
-This function returns a read-only stream, given its name. The name passed
-in should correspond to an existing stream, otherwise an exception will be
-raised.
-
-This is the default value of L\{streamOpener\}; assign your own callable to
-streamOpener to return streams based on names. For example, you could use
-urllib2.urlopen().
-
-@param name: The name of a stream, most commonly a file name.
-@type name: str
-@return: A stream with the specified name.
-@rtype: A read-only stream (file-like object)
-
-\end{fulllineitems}
-
-\index{isWord() (in module src.pyconf)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.isWord}\pysiglinewithargsret{\sphinxcode{src.pyconf.}\sphinxbfcode{isWord}}{\emph{s}}{}
-See if a passed-in value is an identifier. If the value passed in is not a
-string, False is returned. An identifier consists of alphanumerics or
-underscore characters.
-
-Examples:
-
-\begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n}{isWord}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{a word}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZgt{}}\PYG{k+kc}{False}
-\PYG{n}{isWord}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{award}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZgt{}} \PYG{k+kc}{True}
-\PYG{n}{isWord}\PYG{p}{(}\PYG{l+m+mi}{9}\PYG{p}{)} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZgt{}} \PYG{k+kc}{False}
-\PYG{n}{isWord}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{a\PYGZus{}b\PYGZus{}c\PYGZus{}}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZgt{}}\PYG{k+kc}{True}
-\end{Verbatim}
-
-@note: isWord(`9abc') will return True - not exactly correct, but adequate
-for the way it's used here.
-
-@param s: The name to be tested
-@type s: any
-@return: True if a word, else False
-@rtype: bool
-
-\end{fulllineitems}
-
-\index{makePath() (in module src.pyconf)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.makePath}\pysiglinewithargsret{\sphinxcode{src.pyconf.}\sphinxbfcode{makePath}}{\emph{prefix}, \emph{suffix}}{}
-Make a path from a prefix and suffix.
-
-Examples::
-makePath(`', `suffix') -\textgreater{} `suffix'
-makePath(`prefix', `suffix') -\textgreater{} `prefix.suffix'
-makePath(`prefix', `{[}1{]}') -\textgreater{} `prefix{[}1{]}'
-
-@param prefix:  The prefix to use. If it evaluates as false, the suffix is returned.
-@type prefix:   str
-@param suffix:  The suffix to use. It is either an identifier or an index in brackets.
-@type suffix:   str
-@return:        The path concatenation of prefix and suffix, with a dot if the suffix is not a bracketed index.
-@rtype:         str
-
-\end{fulllineitems}
-
-\index{overwriteMergeResolve() (in module src.pyconf)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.pyconf.overwriteMergeResolve}\pysiglinewithargsret{\sphinxcode{src.pyconf.}\sphinxbfcode{overwriteMergeResolve}}{\emph{map1}, \emph{map2}, \emph{key}}{}
-An overwriting resolver for merge conflicts. Calls L\{defaultMergeResolve\},
-but where a ``mismatch'' is detected, returns ``overwrite'' instead.
-
-@param map1: The map being merged into.
-@type map1: L\{Mapping\}.
-@param map2: The map being used as the merge operand.
-@type map2: L\{Mapping\}.
-@param key: The key in map2 (which also exists in map1).
-@type key: str
-
-\end{fulllineitems}
-
-
-
-\subsubsection{src.returnCode module}
-\label{commands/apidoc/src:module-src.returnCode}\label{commands/apidoc/src:src-returncode-module}\index{src.returnCode (module)}
-This file contains ReturnCode class
-usage:
-\textgreater{}\textgreater{} import returnCode as RCO
-\index{ReturnCode (class in src.returnCode)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.returnCode.}\sphinxbfcode{ReturnCode}}{\emph{status=None}, \emph{why=None}, \emph{value=None}}{}
-Bases: \sphinxcode{object}
-
-assume simple return code for methods, with explanation as `why'
-obviously why is why it is not OK, 
-but also why is why it is OK (if you want). 
-and optionnaly contains a return value as self.getValue()
-\begin{description}
-\item[{usage:}] \leavevmode
-\textgreater{}\textgreater{} import returnCode as RCO
-
-\textgreater{}\textgreater{} aValue = doSomethingToReturn()
-\textgreater{}\textgreater{} return RCO.ReturnCode(``KO'', ``there is no problem here'', aValue)
-\textgreater{}\textgreater{} return RCO.ReturnCode(``KO'', ``there is a problem here because etc'', None)
-\textgreater{}\textgreater{} return RCO.ReturnCode(``TIMEOUT\_STATUS'', ``too long here because etc'')
-\textgreater{}\textgreater{} return RCO.ReturnCode(``NA'', ``not applicable here because etc'')
-
-\textgreater{}\textgreater{} rc = doSomething()
-\textgreater{}\textgreater{} print(``short returnCode string'', str(rc))
-\textgreater{}\textgreater{} print(``long returnCode string with value'', repr(rc))
-
-\textgreater{}\textgreater{} rc1 = RCO.ReturnCode(``OK'', ...)
-\textgreater{}\textgreater{} rc2 = RCO.ReturnCode(``KO'', ...)
-\textgreater{}\textgreater{} rcFinal = rc1 + rc2
-\textgreater{}\textgreater{} print(``long returnCode string with value'', repr(rcFinal)) \# KO!
-
-\end{description}
-\index{KFSYS (src.returnCode.ReturnCode attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode.KFSYS}\pysigline{\sphinxbfcode{KFSYS}\sphinxstrong{ = 4}}
-\end{fulllineitems}
-
-\index{KNOWNFAILURE\_STATUS (src.returnCode.ReturnCode attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode.KNOWNFAILURE_STATUS}\pysigline{\sphinxbfcode{KNOWNFAILURE\_STATUS}\sphinxstrong{ = `KF'}}
-\end{fulllineitems}
-
-\index{KOSYS (src.returnCode.ReturnCode attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode.KOSYS}\pysigline{\sphinxbfcode{KOSYS}\sphinxstrong{ = 1}}
-\end{fulllineitems}
-
-\index{KO\_STATUS (src.returnCode.ReturnCode attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode.KO_STATUS}\pysigline{\sphinxbfcode{KO\_STATUS}\sphinxstrong{ = `KO'}}
-\end{fulllineitems}
-
-\index{NASYS (src.returnCode.ReturnCode attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode.NASYS}\pysigline{\sphinxbfcode{NASYS}\sphinxstrong{ = 2}}
-\end{fulllineitems}
-
-\index{NA\_STATUS (src.returnCode.ReturnCode attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode.NA_STATUS}\pysigline{\sphinxbfcode{NA\_STATUS}\sphinxstrong{ = `NA'}}
-\end{fulllineitems}
-
-\index{NDSYS (src.returnCode.ReturnCode attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode.NDSYS}\pysigline{\sphinxbfcode{NDSYS}\sphinxstrong{ = 3}}
-\end{fulllineitems}
-
-\index{OKSYS (src.returnCode.ReturnCode attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode.OKSYS}\pysigline{\sphinxbfcode{OKSYS}\sphinxstrong{ = 0}}
-\end{fulllineitems}
-
-\index{OK\_STATUS (src.returnCode.ReturnCode attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode.OK_STATUS}\pysigline{\sphinxbfcode{OK\_STATUS}\sphinxstrong{ = `OK'}}
-\end{fulllineitems}
-
-\index{TIMEOUT\_STATUS (src.returnCode.ReturnCode attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode.TIMEOUT_STATUS}\pysigline{\sphinxbfcode{TIMEOUT\_STATUS}\sphinxstrong{ = `TIMEOUT'}}
-\end{fulllineitems}
-
-\index{TOSYS (src.returnCode.ReturnCode attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode.TOSYS}\pysigline{\sphinxbfcode{TOSYS}\sphinxstrong{ = 5}}
-\end{fulllineitems}
-
-\index{UNKNOWN\_STATUS (src.returnCode.ReturnCode attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode.UNKNOWN_STATUS}\pysigline{\sphinxbfcode{UNKNOWN\_STATUS}\sphinxstrong{ = `ND'}}
-\end{fulllineitems}
-
-\index{getValue() (src.returnCode.ReturnCode method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode.getValue}\pysiglinewithargsret{\sphinxbfcode{getValue}}{}{}
-\end{fulllineitems}
-
-\index{getWhy() (src.returnCode.ReturnCode method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode.getWhy}\pysiglinewithargsret{\sphinxbfcode{getWhy}}{}{}
-\end{fulllineitems}
-
-\index{indent() (src.returnCode.ReturnCode method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode.indent}\pysiglinewithargsret{\sphinxbfcode{indent}}{\emph{text}, \emph{amount=5}, \emph{ch=' `}}{}
-indent multi lines message
-
-\end{fulllineitems}
-
-\index{isOk() (src.returnCode.ReturnCode method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode.isOk}\pysiglinewithargsret{\sphinxbfcode{isOk}}{}{}
-\end{fulllineitems}
-
-\index{setStatus() (src.returnCode.ReturnCode method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode.setStatus}\pysiglinewithargsret{\sphinxbfcode{setStatus}}{\emph{status}, \emph{why=None}, \emph{value=None}}{}
-\end{fulllineitems}
-
-\index{setValue() (src.returnCode.ReturnCode method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode.setValue}\pysiglinewithargsret{\sphinxbfcode{setValue}}{\emph{value}}{}
-\end{fulllineitems}
-
-\index{setWhy() (src.returnCode.ReturnCode method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode.setWhy}\pysiglinewithargsret{\sphinxbfcode{setWhy}}{\emph{why}}{}
-\end{fulllineitems}
-
-\index{toSys() (src.returnCode.ReturnCode method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.returnCode.ReturnCode.toSys}\pysiglinewithargsret{\sphinxbfcode{toSys}}{}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-
-
-\subsubsection{src.salomeTools module}
-\label{commands/apidoc/src:src-salometools-module}\label{commands/apidoc/src:module-src.salomeTools}\index{src.salomeTools (module)}
-This file is the main entry file to salomeTools
-NO \_\_main\_\_ entry allowed, use `sat' (in parent directory)
-\index{Sat (class in src.salomeTools)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.salomeTools.Sat}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.salomeTools.}\sphinxbfcode{Sat}}{\emph{logger}}{}
-Bases: \sphinxcode{object}
-
-The main class that stores all the commands of salomeTools
-(usually known as `runner' argument in Command classes)
-\index{assumeAsList() (src.salomeTools.Sat method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.salomeTools.Sat.assumeAsList}\pysiglinewithargsret{\sphinxbfcode{assumeAsList}}{\emph{strOrList}}{}
-\end{fulllineitems}
-
-\index{execute\_cli() (src.salomeTools.Sat method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.salomeTools.Sat.execute_cli}\pysiglinewithargsret{\sphinxbfcode{execute\_cli}}{\emph{cli\_arguments}}{}
-select first argument as a command in directory `commands', and launch on arguments
-
-:param args str or list, The sat cli arguments (as sys.argv)
-
-\end{fulllineitems}
-
-\index{getColoredVersion() (src.salomeTools.Sat method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.salomeTools.Sat.getColoredVersion}\pysiglinewithargsret{\sphinxbfcode{getColoredVersion}}{}{}
-get colored salomeTools version message
-
-\end{fulllineitems}
-
-\index{getCommandAndAppli() (src.salomeTools.Sat method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.salomeTools.Sat.getCommandAndAppli}\pysiglinewithargsret{\sphinxbfcode{getCommandAndAppli}}{\emph{arguments}}{}
-\end{fulllineitems}
-
-\index{getCommandInstance() (src.salomeTools.Sat method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.salomeTools.Sat.getCommandInstance}\pysiglinewithargsret{\sphinxbfcode{getCommandInstance}}{\emph{name}}{}
-returns inherited instance of Command(\_BaseCmd) for command `name'
-if module not loaded yet, load it.
-
-\end{fulllineitems}
-
-\index{getConfig() (src.salomeTools.Sat method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.salomeTools.Sat.getConfig}\pysiglinewithargsret{\sphinxbfcode{getConfig}}{}{}
-\end{fulllineitems}
-
-\index{getConfigManager() (src.salomeTools.Sat method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.salomeTools.Sat.getConfigManager}\pysiglinewithargsret{\sphinxbfcode{getConfigManager}}{}{}
-\end{fulllineitems}
-
-\index{getLogger() (src.salomeTools.Sat method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.salomeTools.Sat.getLogger}\pysiglinewithargsret{\sphinxbfcode{getLogger}}{}{}
-\end{fulllineitems}
-
-\index{getModule() (src.salomeTools.Sat method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.salomeTools.Sat.getModule}\pysiglinewithargsret{\sphinxbfcode{getModule}}{\emph{name}}{}
-returns only-one-time loaded module Command `name'
-assume load if not done yet
-
-\end{fulllineitems}
-
-\index{get\_help() (src.salomeTools.Sat method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.salomeTools.Sat.get_help}\pysiglinewithargsret{\sphinxbfcode{get\_help}}{}{}
-get general help colored string
-
-\end{fulllineitems}
-
-\index{parseArguments() (src.salomeTools.Sat method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.salomeTools.Sat.parseArguments}\pysiglinewithargsret{\sphinxbfcode{parseArguments}}{\emph{arguments}}{}
-\end{fulllineitems}
-
-\index{print\_help() (src.salomeTools.Sat method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.salomeTools.Sat.print_help}\pysiglinewithargsret{\sphinxbfcode{print\_help}}{}{}
-prints salomeTools general help
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{assumeAsList() (in module src.salomeTools)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.salomeTools.assumeAsList}\pysiglinewithargsret{\sphinxcode{src.salomeTools.}\sphinxbfcode{assumeAsList}}{\emph{strOrList}}{}
-return a list as sys.argv if string
-
-\end{fulllineitems}
-
-\index{find\_command\_list() (in module src.salomeTools)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.salomeTools.find_command_list}\pysiglinewithargsret{\sphinxcode{src.salomeTools.}\sphinxbfcode{find\_command\_list}}{\emph{dirPath}}{}
-Parse files in dirPath that end with `.py' : it gives commands list
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{dirPath}}) -- The directory path where to search the commands
-
-\item[{Returns}] \leavevmode
-cmd\_list : the list containing the commands name
-
-\item[{Return type}] \leavevmode
-{\hyperref[commands/apidoc/src:src.utilsSat.Path.list]{\sphinxcrossref{list}}} (\autopageref*{commands/apidoc/src:src.utilsSat.Path.list})
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{getCommandsList() (in module src.salomeTools)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.salomeTools.getCommandsList}\pysiglinewithargsret{\sphinxcode{src.salomeTools.}\sphinxbfcode{getCommandsList}}{}{}
-Gives commands list (as basename of files .py in directory commands
-
-\end{fulllineitems}
-
-\index{getVersion() (in module src.salomeTools)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.salomeTools.getVersion}\pysiglinewithargsret{\sphinxcode{src.salomeTools.}\sphinxbfcode{getVersion}}{}{}
-get version number as string
-
-\end{fulllineitems}
-
-\index{launchSat() (in module src.salomeTools)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.salomeTools.launchSat}\pysiglinewithargsret{\sphinxcode{src.salomeTools.}\sphinxbfcode{launchSat}}{\emph{command}}{}
-launch sat as subprocess popen
-command as string (`sat --help' for example)
-used for unittest, or else...
-returns tuple (stdout, stderr)
-
-\end{fulllineitems}
-
-\index{setLocale() (in module src.salomeTools)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.salomeTools.setLocale}\pysiglinewithargsret{\sphinxcode{src.salomeTools.}\sphinxbfcode{setLocale}}{}{}
-reset initial locale at any moment 
-`fr' or else (TODO) from initial environment var `\$LANG'
-`i18n' as `internationalization'
-
-\end{fulllineitems}
-
-\index{setNotLocale() (in module src.salomeTools)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.salomeTools.setNotLocale}\pysiglinewithargsret{\sphinxcode{src.salomeTools.}\sphinxbfcode{setNotLocale}}{}{}
-force english at any moment
-
-\end{fulllineitems}
-
-
-
-\subsubsection{src.system module}
-\label{commands/apidoc/src:src-system-module}\label{commands/apidoc/src:module-src.system}\index{src.system (module)}
-All utilities method doing a system call, 
-like open a browser or an editor, or call a git command
-\begin{description}
-\item[{usage:}] \leavevmode
-\textgreater{}\textgreater{} import src.system as SYSS
-
-\end{description}
-\index{archive\_extract() (in module src.system)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.system.archive_extract}\pysiglinewithargsret{\sphinxcode{src.system.}\sphinxbfcode{archive\_extract}}{\emph{from\_what}, \emph{where}, \emph{logger}}{}
-Extracts sources from an archive.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{where}}) -- The path to the archive.
-
-\item {} 
-\textbf{\texttt{str}} -- The path where to extract.
-
-\item {} 
-\textbf{\texttt{Logger}} (\emph{\texttt{logger}}) -- The logger instance to use.
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-True if the extraction is successful
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{cvs\_extract() (in module src.system)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.system.cvs_extract}\pysiglinewithargsret{\sphinxcode{src.system.}\sphinxbfcode{cvs\_extract}}{\emph{protocol}, \emph{user}, \emph{server}, \emph{base}, \emph{tag}, \emph{product}, \emph{where}, \emph{logger}, \emph{checkout=False}, \emph{environment=None}}{}
-Extracts sources from a cvs repository.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{where}}) -- The cvs protocol.
-
-\item {} 
-\textbf{\texttt{str}} -- The user to be used.
-
-\item {} 
-\textbf{\texttt{str}} -- The remote cvs server.
-
-\item {} 
-\textbf{\texttt{str}} -- 
-.
-
-
-\item {} 
-\textbf{\texttt{str}} -- The tag.
-
-\item {} 
-\textbf{\texttt{str}} -- The product.
-
-\item {} 
-\textbf{\texttt{str}} -- The path where to extract.
-
-\item {} 
-\textbf{\texttt{Logger}} (\emph{\texttt{logger}}) -- The logger instance to use.
-
-\item {} 
-\textbf{\texttt{boolean}} (\emph{\texttt{checkout}}) -- If true use checkout cvs.
-
-\item {} 
-\textbf{\texttt{src.environment.Environ}} ({\hyperref[commands/apidoc/src:module\string-src.environment]{\sphinxcrossref{\emph{\texttt{environment}}}}} (\autopageref*{commands/apidoc/src:module-src.environment})) -- The environment to source when
-extracting.
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-True if the extraction is successful
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{git\_extract() (in module src.system)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.system.git_extract}\pysiglinewithargsret{\sphinxcode{src.system.}\sphinxbfcode{git\_extract}}{\emph{from\_what}, \emph{tag}, \emph{where}, \emph{logger}, \emph{environment=None}}{}
-Extracts sources from a git repository.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{where}}) -- The remote git repository.
-
-\item {} 
-\textbf{\texttt{str}} -- The tag.
-
-\item {} 
-\textbf{\texttt{str}} -- The path where to extract.
-
-\item {} 
-\textbf{\texttt{Logger}} (\emph{\texttt{logger}}) -- The logger instance to use.
-
-\item {} 
-\textbf{\texttt{src.environment.Environ}} ({\hyperref[commands/apidoc/src:module\string-src.environment]{\sphinxcrossref{\emph{\texttt{environment}}}}} (\autopageref*{commands/apidoc/src:module-src.environment})) -- The environment to source when
-extracting.
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-True if the extraction is successful
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{show\_in\_editor() (in module src.system)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.system.show_in_editor}\pysiglinewithargsret{\sphinxcode{src.system.}\sphinxbfcode{show\_in\_editor}}{\emph{editor}, \emph{filePath}, \emph{logger}}{}
-open filePath using editor.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{filePath}}) -- The editor to use.
-
-\item {} 
-\textbf{\texttt{str}} -- The path to the file to open.
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{svn\_extract() (in module src.system)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.system.svn_extract}\pysiglinewithargsret{\sphinxcode{src.system.}\sphinxbfcode{svn\_extract}}{\emph{user}, \emph{from\_what}, \emph{tag}, \emph{where}, \emph{logger}, \emph{checkout=False}, \emph{environment=None}}{}
-Extracts sources from a svn repository.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{where}}) -- The user to be used.
-
-\item {} 
-\textbf{\texttt{str}} -- The remote git repository.
-
-\item {} 
-\textbf{\texttt{str}} -- The tag.
-
-\item {} 
-\textbf{\texttt{str}} -- The path where to extract.
-
-\item {} 
-\textbf{\texttt{Logger}} (\emph{\texttt{logger}}) -- The logger instance to use.
-
-\item {} 
-\textbf{\texttt{boolean}} (\emph{\texttt{checkout}}) -- If true use checkout svn.
-
-\item {} 
-\textbf{\texttt{src.environment.Environ}} ({\hyperref[commands/apidoc/src:module\string-src.environment]{\sphinxcrossref{\emph{\texttt{environment}}}}} (\autopageref*{commands/apidoc/src:module-src.environment})) -- The environment to source when
-extracting.
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-True if the extraction is successful
-
-\item[{Return type}] \leavevmode
-boolean
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-
-
-\subsubsection{src.template module}
-\label{commands/apidoc/src:module-src.template}\label{commands/apidoc/src:src-template-module}\index{src.template (module)}\index{MyTemplate (class in src.template)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.template.MyTemplate}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.template.}\sphinxbfcode{MyTemplate}}{\emph{template}}{}
-Bases: \sphinxcode{string.Template}
-\index{delimiter (src.template.MyTemplate attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.template.MyTemplate.delimiter}\pysigline{\sphinxbfcode{delimiter}\sphinxstrong{ = `\textbackslash{}xc2\textbackslash{}xa4'}}
-\end{fulllineitems}
-
-\index{pattern (src.template.MyTemplate attribute)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.template.MyTemplate.pattern}\pysigline{\sphinxbfcode{pattern}\sphinxstrong{ = \textless{}\_sre.SRE\_Pattern object\textgreater{}}}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{substitute() (in module src.template)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.template.substitute}\pysiglinewithargsret{\sphinxcode{src.template.}\sphinxbfcode{substitute}}{\emph{template\_file}, \emph{subst\_dic}}{}
-\end{fulllineitems}
-
-
-
-\subsubsection{src.test\_module module}
-\label{commands/apidoc/src:module-src.test_module}\label{commands/apidoc/src:src-test-module-module}\index{src.test\_module (module)}\index{Test (class in src.test\_module)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.test_module.Test}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.test\_module.}\sphinxbfcode{Test}}{\emph{config}, \emph{logger}, \emph{tmp\_working\_dir}, \emph{testbase='`}, \emph{grids=None}, \emph{sessions=None}, \emph{launcher='`}, \emph{show\_desktop=True}}{}~\index{generate\_launching\_commands() (src.test\_module.Test method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.test_module.Test.generate_launching_commands}\pysiglinewithargsret{\sphinxbfcode{generate\_launching\_commands}}{}{}
-\end{fulllineitems}
-
-\index{generate\_script() (src.test\_module.Test method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.test_module.Test.generate_script}\pysiglinewithargsret{\sphinxbfcode{generate\_script}}{\emph{listTest}, \emph{script\_path}, \emph{ignoreList}}{}
-\end{fulllineitems}
-
-\index{get\_test\_timeout() (src.test\_module.Test method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.test_module.Test.get_test_timeout}\pysiglinewithargsret{\sphinxbfcode{get\_test\_timeout}}{\emph{test\_name}, \emph{default\_value}}{}
-\end{fulllineitems}
-
-\index{get\_tmp\_dir() (src.test\_module.Test method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.test_module.Test.get_tmp_dir}\pysiglinewithargsret{\sphinxbfcode{get\_tmp\_dir}}{}{}
-\end{fulllineitems}
-
-\index{prepare\_testbase() (src.test\_module.Test method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.test_module.Test.prepare_testbase}\pysiglinewithargsret{\sphinxbfcode{prepare\_testbase}}{\emph{test\_base\_name}}{}
-\end{fulllineitems}
-
-\index{prepare\_testbase\_from\_dir() (src.test\_module.Test method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.test_module.Test.prepare_testbase_from_dir}\pysiglinewithargsret{\sphinxbfcode{prepare\_testbase\_from\_dir}}{\emph{testbase\_name}, \emph{testbase\_dir}}{}
-\end{fulllineitems}
-
-\index{prepare\_testbase\_from\_git() (src.test\_module.Test method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.test_module.Test.prepare_testbase_from_git}\pysiglinewithargsret{\sphinxbfcode{prepare\_testbase\_from\_git}}{\emph{testbase\_name}, \emph{testbase\_base}, \emph{testbase\_tag}}{}
-\end{fulllineitems}
-
-\index{prepare\_testbase\_from\_svn() (src.test\_module.Test method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.test_module.Test.prepare_testbase_from_svn}\pysiglinewithargsret{\sphinxbfcode{prepare\_testbase\_from\_svn}}{\emph{user}, \emph{testbase\_name}, \emph{testbase\_base}}{}
-\end{fulllineitems}
-
-\index{read\_results() (src.test\_module.Test method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.test_module.Test.read_results}\pysiglinewithargsret{\sphinxbfcode{read\_results}}{\emph{listTest}, \emph{has\_timed\_out}}{}
-\end{fulllineitems}
-
-\index{run\_all\_tests() (src.test\_module.Test method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.test_module.Test.run_all_tests}\pysiglinewithargsret{\sphinxbfcode{run\_all\_tests}}{}{}
-\end{fulllineitems}
-
-\index{run\_grid\_tests() (src.test\_module.Test method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.test_module.Test.run_grid_tests}\pysiglinewithargsret{\sphinxbfcode{run\_grid\_tests}}{}{}
-\end{fulllineitems}
-
-\index{run\_script() (src.test\_module.Test method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.test_module.Test.run_script}\pysiglinewithargsret{\sphinxbfcode{run\_script}}{\emph{script\_name}}{}
-\end{fulllineitems}
-
-\index{run\_session\_tests() (src.test\_module.Test method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.test_module.Test.run_session_tests}\pysiglinewithargsret{\sphinxbfcode{run\_session\_tests}}{}{}
-\end{fulllineitems}
-
-\index{run\_testbase\_tests() (src.test\_module.Test method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.test_module.Test.run_testbase_tests}\pysiglinewithargsret{\sphinxbfcode{run\_testbase\_tests}}{}{}
-Runs test testbase
-
-\end{fulllineitems}
-
-\index{run\_tests() (src.test\_module.Test method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.test_module.Test.run_tests}\pysiglinewithargsret{\sphinxbfcode{run\_tests}}{\emph{listTest}, \emph{ignoreList}}{}
-\end{fulllineitems}
-
-\index{search\_known\_errors() (src.test\_module.Test method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.test_module.Test.search_known_errors}\pysiglinewithargsret{\sphinxbfcode{search\_known\_errors}}{\emph{status}, \emph{test\_grid}, \emph{test\_session}, \emph{test}}{}
-\end{fulllineitems}
-
-\index{write\_test\_margin() (src.test\_module.Test method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.test_module.Test.write_test_margin}\pysiglinewithargsret{\sphinxbfcode{write\_test\_margin}}{\emph{tab}}{}
-indent with `\textbar{} ... +' to show test results.
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{getTmpDirDEFAULT() (in module src.test\_module)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.test_module.getTmpDirDEFAULT}\pysiglinewithargsret{\sphinxcode{src.test\_module.}\sphinxbfcode{getTmpDirDEFAULT}}{}{}
-\end{fulllineitems}
-
-
-
-\subsubsection{src.utilsSat module}
-\label{commands/apidoc/src:src-utilssat-module}\label{commands/apidoc/src:module-src.utilsSat}\index{src.utilsSat (module)}
-utilities for sat
-general useful simple methods
-all-in-one import srs.utilsSat as UTS
-
-usage:
-\textgreater{}\textgreater{} import srsc.utilsSat as UTS
-\textgreater{}\textgreater{} UTS.ensure\_path\_exists(path)
-\index{Path (class in src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.Path}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.utilsSat.}\sphinxbfcode{Path}}{\emph{path}}{}~\index{base() (src.utilsSat.Path method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.Path.base}\pysiglinewithargsret{\sphinxbfcode{base}}{}{}
-\end{fulllineitems}
-
-\index{chmod() (src.utilsSat.Path method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.Path.chmod}\pysiglinewithargsret{\sphinxbfcode{chmod}}{\emph{mode}}{}
-\end{fulllineitems}
-
-\index{copy() (src.utilsSat.Path method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.Path.copy}\pysiglinewithargsret{\sphinxbfcode{copy}}{\emph{path}, \emph{smart=False}}{}
-\end{fulllineitems}
-
-\index{copydir() (src.utilsSat.Path method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.Path.copydir}\pysiglinewithargsret{\sphinxbfcode{copydir}}{\emph{dst}, \emph{smart=False}}{}
-\end{fulllineitems}
-
-\index{copyfile() (src.utilsSat.Path method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.Path.copyfile}\pysiglinewithargsret{\sphinxbfcode{copyfile}}{\emph{path}}{}
-\end{fulllineitems}
-
-\index{copylink() (src.utilsSat.Path method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.Path.copylink}\pysiglinewithargsret{\sphinxbfcode{copylink}}{\emph{path}}{}
-\end{fulllineitems}
-
-\index{dir() (src.utilsSat.Path method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.Path.dir}\pysiglinewithargsret{\sphinxbfcode{dir}}{}{}
-\end{fulllineitems}
-
-\index{exists() (src.utilsSat.Path method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.Path.exists}\pysiglinewithargsret{\sphinxbfcode{exists}}{}{}
-\end{fulllineitems}
-
-\index{isdir() (src.utilsSat.Path method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.Path.isdir}\pysiglinewithargsret{\sphinxbfcode{isdir}}{}{}
-\end{fulllineitems}
-
-\index{isfile() (src.utilsSat.Path method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.Path.isfile}\pysiglinewithargsret{\sphinxbfcode{isfile}}{}{}
-\end{fulllineitems}
-
-\index{islink() (src.utilsSat.Path method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.Path.islink}\pysiglinewithargsret{\sphinxbfcode{islink}}{}{}
-\end{fulllineitems}
-
-\index{list() (src.utilsSat.Path method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.Path.list}\pysiglinewithargsret{\sphinxbfcode{list}}{}{}
-\end{fulllineitems}
-
-\index{make() (src.utilsSat.Path method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.Path.make}\pysiglinewithargsret{\sphinxbfcode{make}}{\emph{mode=None}}{}
-\end{fulllineitems}
-
-\index{readlink() (src.utilsSat.Path method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.Path.readlink}\pysiglinewithargsret{\sphinxbfcode{readlink}}{}{}
-\end{fulllineitems}
-
-\index{rm() (src.utilsSat.Path method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.Path.rm}\pysiglinewithargsret{\sphinxbfcode{rm}}{}{}
-\end{fulllineitems}
-
-\index{smartcopy() (src.utilsSat.Path method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.Path.smartcopy}\pysiglinewithargsret{\sphinxbfcode{smartcopy}}{\emph{path}}{}
-\end{fulllineitems}
-
-\index{symlink() (src.utilsSat.Path method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.Path.symlink}\pysiglinewithargsret{\sphinxbfcode{symlink}}{\emph{path}}{}
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{black() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.black}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{black}}{\emph{msg}}{}
-\end{fulllineitems}
-
-\index{blue() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.blue}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{blue}}{\emph{msg}}{}
-\end{fulllineitems}
-
-\index{check\_config\_has\_application() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.check_config_has_application}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{check\_config\_has\_application}}{\emph{config}, \emph{details=None}}{}
-check that the config has the key APPLICATION. Else raise an exception.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{class 'common.pyconf.Config'}} (\emph{\texttt{config}}) -- The config.
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{check\_config\_has\_profile() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.check_config_has_profile}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{check\_config\_has\_profile}}{\emph{config}, \emph{details=None}}{}~\begin{description}
-\item[{check that the config has the key APPLICATION.profile.}] \leavevmode
-Else, raise an exception.
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{class 'common.pyconf.Config'}} (\emph{\texttt{config}}) -- The config.
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{config\_has\_application() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.config_has_application}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{config\_has\_application}}{\emph{config}}{}
-\end{fulllineitems}
-
-\index{critical() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.critical}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{critical}}{\emph{msg}}{}
-\end{fulllineitems}
-
-\index{cyan() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.cyan}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{cyan}}{\emph{msg}}{}
-\end{fulllineitems}
-
-\index{date\_to\_datetime() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.date_to_datetime}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{date\_to\_datetime}}{\emph{date}}{}
-From a string date in format YYYYMMDD\_HHMMSS
-returns list year, mon, day, hour, minutes, seconds
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{date}}) -- The date in format YYYYMMDD\_HHMMSS
-
-\item[{Returns}] \leavevmode
-the same date and time in separate variables.
-
-\item[{Return type}] \leavevmode
-(str,str,str,str,str,str)
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{deepcopy\_list() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.deepcopy_list}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{deepcopy\_list}}{\emph{input\_list}}{}
-Do a deep copy of a list
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{List}} (\emph{\texttt{input\_list}}) -- The list to copy
-
-\item[{Returns}] \leavevmode
-The copy of the list
-
-\item[{Return type}] \leavevmode
-List
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{ensure\_path\_exists() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.ensure_path_exists}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{ensure\_path\_exists}}{\emph{p}}{}
-Create a path if not existing
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{p}}) -- The path.
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{error() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.error}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{error}}{\emph{msg}}{}
-\end{fulllineitems}
-
-\index{find\_file\_in\_lpath() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.find_file_in_lpath}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{find\_file\_in\_lpath}}{\emph{file\_name}, \emph{lpath}, \emph{additional\_dir='`}}{}~\begin{description}
-\item[{Find in all the directories in lpath list the file that has the same name}] \leavevmode
-as file\_name. If it is found, return the full path of the file, else,
-return False. 
-The additional\_dir (optional) is the name of the directory to add to all 
-paths in lpath.
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{additional\_dir}}) -- The file name to search
-
-\item {} 
-\textbf{\texttt{List}} (\emph{\texttt{lpath}}) -- The list of directories where to search
-
-\item {} 
-\textbf{\texttt{str}} -- The name of the additional directory
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-the full path of the file or False if not found
-
-\item[{Return type}] \leavevmode
-str
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{formatTuples() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.formatTuples}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{formatTuples}}{\emph{tuples}}{}
-format `label = value' the tuples in a tabulated way.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{list}} (\emph{\texttt{tuples}}) -- The list of tuples to format
-
-\item[{Returns}] \leavevmode
-The tabulated text. (mutiples lines)
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{formatValue() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.formatValue}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{formatValue}}{\emph{label}, \emph{value}, \emph{suffix='`}}{}
-format `label = value' with the info color
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{int}} ({\hyperref[commands/apidoc/src:src.utilsSat.label]{\sphinxcrossref{\emph{\texttt{label}}}}} (\autopageref*{commands/apidoc/src:src.utilsSat.label})) -- the label to print.
-
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{suffix}}) -- the value to print.
-
-\item {} 
-\textbf{\texttt{str}} -- the optionnal suffix to add at the end.
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_base\_path() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.get_base_path}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{get\_base\_path}}{\emph{config}}{}
-Returns the path of the products base.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{config}}) -- The global Config instance.
-
-\item[{Returns}] \leavevmode
-The path of the products base.
-
-\item[{Return type}] \leavevmode
-str
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_cfg\_param() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.get_cfg_param}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{get\_cfg\_param}}{\emph{config}, \emph{param\_name}, \emph{default}}{}~\begin{description}
-\item[{Search for param\_name value in config.}] \leavevmode
-If param\_name is not in config, then return default,
-else, return the found value
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{class 'common.pyconf.Config'}} (\emph{\texttt{config}}) -- The config.
-
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{default}}) -- the name of the parameter to get the value
-
-\item {} 
-\textbf{\texttt{str}} -- The value to return if param\_name is not in config
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-see initial description of the function
-
-\item[{Return type}] \leavevmode
-str
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_launcher\_name() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.get_launcher_name}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{get\_launcher\_name}}{\emph{config}}{}
-Returns the name of salome launcher.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{config}}) -- The global Config instance.
-
-\item[{Returns}] \leavevmode
-The name of salome launcher.
-
-\item[{Return type}] \leavevmode
-str
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_log\_path() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.get_log_path}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{get\_log\_path}}{\emph{config}}{}
-Returns the path of the logs.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{Config}} (\emph{\texttt{config}}) -- The global Config instance.
-
-\item[{Returns}] \leavevmode
-The path of the logs.
-
-\item[{Return type}] \leavevmode
-str
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_property\_in\_product\_cfg() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.get_property_in_product_cfg}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{get\_property\_in\_product\_cfg}}{\emph{product\_cfg}, \emph{pprty}}{}
-\end{fulllineitems}
-
-\index{get\_salome\_version() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.get_salome_version}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{get\_salome\_version}}{\emph{config}}{}
-\end{fulllineitems}
-
-\index{get\_tmp\_filename() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.get_tmp_filename}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{get\_tmp\_filename}}{\emph{config}, \emph{name}}{}
-\end{fulllineitems}
-
-\index{green() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.green}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{green}}{\emph{msg}}{}
-\end{fulllineitems}
-
-\index{handleRemoveReadonly() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.handleRemoveReadonly}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{handleRemoveReadonly}}{\emph{func}, \emph{path}, \emph{exc}}{}
-\end{fulllineitems}
-
-\index{header() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.header}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{header}}{\emph{msg}}{}
-\end{fulllineitems}
-
-\index{info() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.info}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{info}}{\emph{msg}}{}
-\end{fulllineitems}
-
-\index{label() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.label}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{label}}{\emph{msg}}{}
-\end{fulllineitems}
-
-\index{list\_log\_file() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.list_log_file}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{list\_log\_file}}{\emph{dirPath}, \emph{expression}}{}
-Find all files corresponding to expression in dirPath
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{expression}}) -- the directory where to search the files
-
-\item {} 
-\textbf{\texttt{str}} -- the regular expression of files to find
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-the list of files path and informations about it
-
-\item[{Return type}] \leavevmode
-{\hyperref[commands/apidoc/src:src.utilsSat.Path.list]{\sphinxcrossref{list}}} (\autopageref*{commands/apidoc/src:src.utilsSat.Path.list})
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{logger\_info\_tuples() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.logger_info_tuples}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{logger\_info\_tuples}}{\emph{logger}, \emph{tuples}}{}
-for convenience
-format as formatTuples() and call logger.info()
-
-\end{fulllineitems}
-
-\index{magenta() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.magenta}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{magenta}}{\emph{msg}}{}
-\end{fulllineitems}
-
-\index{merge\_dicts() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.merge_dicts}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{merge\_dicts}}{\emph{*dict\_args}}{}
-Given any number of dicts, shallow copy and merge into a new dict,
-precedence goes to key value pairs in latter dicts.
-
-\end{fulllineitems}
-
-\index{normal() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.normal}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{normal}}{\emph{msg}}{}
-\end{fulllineitems}
-
-\index{only\_numbers() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.only_numbers}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{only\_numbers}}{\emph{str\_num}}{}
-\end{fulllineitems}
-
-\index{parse\_date() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.parse_date}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{parse\_date}}{\emph{date}}{}
-Transform YYYYMMDD\_hhmmss into YYYY-MM-DD hh:mm:ss.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{date}}) -- The date to transform
-
-\item[{Returns}] \leavevmode
-The date in the new format
-
-\item[{Return type}] \leavevmode
-str
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{read\_config\_from\_a\_file() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.read_config_from_a_file}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{read\_config\_from\_a\_file}}{\emph{filePath}}{}
-\end{fulllineitems}
-
-\index{red() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.red}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{red}}{\emph{msg}}{}
-\end{fulllineitems}
-
-\index{remove\_item\_from\_list() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.remove_item_from_list}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{remove\_item\_from\_list}}{\emph{input\_list}, \emph{item}}{}
-Remove all occurences of item from input\_list
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{List}} (\emph{\texttt{input\_list}}) -- The list to modify
-
-\item[{Returns}] \leavevmode
-The without any item
-
-\item[{Return type}] \leavevmode
-List
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{replace\_in\_file() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.replace_in_file}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{replace\_in\_file}}{\emph{filein}, \emph{strin}, \emph{strout}}{}
-Replace \textless{}strin\textgreater{} by \textless{}strout\textgreater{} in file \textless{}filein\textgreater{}
-
-\end{fulllineitems}
-
-\index{reset() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.reset}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{reset}}{\emph{msg}}{}
-\end{fulllineitems}
-
-\index{show\_command\_log() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.show_command_log}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{show\_command\_log}}{\emph{logFilePath}, \emph{cmd}, \emph{application}, \emph{notShownCommands}}{}
-Used in updateHatXml. 
-Determine if the log xml file logFilePath 
-has to be shown or not in the hat log.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{application}}) -- the path to the command xml log file
-
-\item {} 
-\textbf{\texttt{str}} -- the command of the log file
-
-\item {} 
-\textbf{\texttt{str}} -- the application passed as parameter 
-to the salomeTools command
-
-\item {} 
-\textbf{\texttt{list}} (\emph{\texttt{notShownCommands}}) -- the list of commands 
-that are not shown by default
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-RCO.ReturnCode(``OK'') if cmd is not in notShownCommands and the application 
-in the log file corresponds to application
-ReturnCode value is tuple (appliLog, launched\_cmd)
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{success() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.success}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{success}}{\emph{msg}}{}
-\end{fulllineitems}
-
-\index{timedelta\_total\_seconds() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.timedelta_total_seconds}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{timedelta\_total\_seconds}}{\emph{timedelta}}{}
-Replace total\_seconds from datetime module 
-in order to be compatible with old python versions
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{datetime.timedelta}} (\emph{\texttt{timedelta}}) -- The delta between two dates
-
-\item[{Returns}] \leavevmode
-The number of seconds corresponding to timedelta.
-
-\item[{Return type}] \leavevmode
-float
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{update\_hat\_xml() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.update_hat_xml}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{update\_hat\_xml}}{\emph{logDir}, \emph{application=None}, \emph{notShownCommands={[}{]}}}{}
-Create the xml file in logDir that contain all the xml file 
-and have a name like YYYYMMDD\_HHMMSS\_namecmd.xml
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{application}}) -- the directory to parse
-
-\item {} 
-\textbf{\texttt{str}} -- the name of the application if there is any
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{warning() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.warning}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{warning}}{\emph{msg}}{}
-\end{fulllineitems}
-
-\index{white() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.white}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{white}}{\emph{msg}}{}
-\end{fulllineitems}
-
-\index{yellow() (in module src.utilsSat)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.utilsSat.yellow}\pysiglinewithargsret{\sphinxcode{src.utilsSat.}\sphinxbfcode{yellow}}{\emph{msg}}{}
-\end{fulllineitems}
-
-
-
-\subsubsection{src.xmlManager module}
-\label{commands/apidoc/src:src-xmlmanager-module}\label{commands/apidoc/src:module-src.xmlManager}\index{src.xmlManager (module)}
-Utilities to read xml logging files
-\begin{description}
-\item[{usage:}] \leavevmode
-\textgreater{}\textgreater{} import src.xmlManager as XMLMGR
-
-\end{description}
-\index{ReadXmlFile (class in src.xmlManager)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.xmlManager.ReadXmlFile}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.xmlManager.}\sphinxbfcode{ReadXmlFile}}{\emph{filePath}}{}
-Bases: \sphinxcode{object}
-
-Class to manage reading of an xml log file
-\index{getRootAttrib() (src.xmlManager.ReadXmlFile method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.xmlManager.ReadXmlFile.getRootAttrib}\pysiglinewithargsret{\sphinxbfcode{getRootAttrib}}{}{}
-Get the attibutes of the self.xmlroot
-\begin{quote}\begin{description}
-\item[{Returns}] \leavevmode
-The attributes of the root node
-
-\item[{Return type}] \leavevmode
-dict
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_attrib() (src.xmlManager.ReadXmlFile method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.xmlManager.ReadXmlFile.get_attrib}\pysiglinewithargsret{\sphinxbfcode{get\_attrib}}{\emph{node\_name}}{}
-Get the attibutes of the node node\_name in self.xmlroot
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{node\_name}}) -- the name of the node
-
-\item[{Returns}] \leavevmode
-the attibutes of the node node\_name in self.xmlroot
-
-\item[{Return type}] \leavevmode
-dict
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{get\_node\_text() (src.xmlManager.ReadXmlFile method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.xmlManager.ReadXmlFile.get_node_text}\pysiglinewithargsret{\sphinxbfcode{get\_node\_text}}{\emph{node}}{}~\begin{description}
-\item[{Get the text of the first node that has name }] \leavevmode
-that corresponds to the parameter node
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{node}}) -- the name of the node from which get the text
-
-\item[{Returns}] \leavevmode
-the text of the first node that has name 
-that corresponds to the parameter node
-
-\item[{Return type}] \leavevmode
-str
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{XmlLogFile (class in src.xmlManager)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.xmlManager.XmlLogFile}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{src.xmlManager.}\sphinxbfcode{XmlLogFile}}{\emph{filePath}, \emph{rootname}, \emph{attrib=\{\}}}{}
-Bases: \sphinxcode{object}
-
-Class to manage writing in salomeTools xml log file
-\index{add\_simple\_node() (src.xmlManager.XmlLogFile method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.xmlManager.XmlLogFile.add_simple_node}\pysiglinewithargsret{\sphinxbfcode{add\_simple\_node}}{\emph{node\_name}, \emph{text=None}, \emph{attrib=\{\}}}{}
-Add a node with some attibutes and text to the root node.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{text}}) -- the name of the node to add
-
-\item {} 
-\textbf{\texttt{str}} -- the text of the node
-
-\item {} 
-\textbf{\texttt{dict}} (\emph{\texttt{attrib}}) -- the dictionary containing the 
-attribute of the new node
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{append\_node\_attrib() (src.xmlManager.XmlLogFile method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.xmlManager.XmlLogFile.append_node_attrib}\pysiglinewithargsret{\sphinxbfcode{append\_node\_attrib}}{\emph{node\_name}, \emph{attrib}}{}
-Append a new attributes to the node that has node\_name as name
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{node\_name}}) -- The name of the node on which append text
-
-\item {} 
-\textbf{\texttt{dixt}} (\emph{\texttt{attrib}}) -- The attrib to append
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{append\_node\_text() (src.xmlManager.XmlLogFile method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.xmlManager.XmlLogFile.append_node_text}\pysiglinewithargsret{\sphinxbfcode{append\_node\_text}}{\emph{node\_name}, \emph{text}}{}
-Append a new text to the node that has node\_name as name
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{text}}) -- The name of the node on which append text
-
-\item {} 
-\textbf{\texttt{str}} -- The text to append
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{write\_tree() (src.xmlManager.XmlLogFile method)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.xmlManager.XmlLogFile.write_tree}\pysiglinewithargsret{\sphinxbfcode{write\_tree}}{\emph{stylesheet=None}, \emph{file\_path=None}}{}
-Write the xml tree in the log file path. Add the stylesheet if asked.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode
-\textbf{\texttt{str}} (\emph{\texttt{stylesheet}}) -- The stylesheet to apply to the xml file
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-
-\end{fulllineitems}
-
-\index{add\_simple\_node() (in module src.xmlManager)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.xmlManager.add_simple_node}\pysiglinewithargsret{\sphinxcode{src.xmlManager.}\sphinxbfcode{add\_simple\_node}}{\emph{root\_node}, \emph{node\_name}, \emph{text=None}, \emph{attrib=\{\}}}{}
-Add a node with some attibutes and text to the root node.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{etree.Element}} (\emph{\texttt{root\_node}}) -- the Etree element where to add the new node
-
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{text}}) -- the name of the node to add
-
-\item {} 
-\textbf{\texttt{str}} -- the text of the node
-
-\item {} 
-\textbf{\texttt{dict}} (\emph{\texttt{attrib}}) -- the dictionary containing the 
-attribute of the new node
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{append\_node\_attrib() (in module src.xmlManager)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.xmlManager.append_node_attrib}\pysiglinewithargsret{\sphinxcode{src.xmlManager.}\sphinxbfcode{append\_node\_attrib}}{\emph{root\_node}, \emph{attrib}}{}
-Append a new attributes to the node that has node\_name as name
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{etree.Element}} (\emph{\texttt{root\_node}}) -- the Etree element 
-where to append the new attibutes
-
-\item {} 
-\textbf{\texttt{dixt}} (\emph{\texttt{attrib}}) -- The attrib to append
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{find\_node\_by\_attrib() (in module src.xmlManager)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.xmlManager.find_node_by_attrib}\pysiglinewithargsret{\sphinxcode{src.xmlManager.}\sphinxbfcode{find\_node\_by\_attrib}}{\emph{xmlroot}, \emph{name\_node}, \emph{key}, \emph{value}}{}~\begin{description}
-\item[{Find the nfirst ode from xmlroot that has name name\_node and that has in }] \leavevmode
-its attributes \{key : value\}. Return the node
-
-\end{description}
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{etree.Element}} (\emph{\texttt{xmlroot}}) -- the Etree element where to search
-
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{value}}) -- the name of node to search
-
-\item {} 
-\textbf{\texttt{str}} -- the key to search
-
-\item {} 
-\textbf{\texttt{str}} -- the value to search
-
-\end{itemize}
-
-\item[{Returns}] \leavevmode
-the found node
-
-\item[{Return type}] \leavevmode
-xmlroot etree.Element
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-\index{write\_report() (in module src.xmlManager)}
-
-\begin{fulllineitems}
-\phantomsection\label{commands/apidoc/src:src.xmlManager.write_report}\pysiglinewithargsret{\sphinxcode{src.xmlManager.}\sphinxbfcode{write\_report}}{\emph{filename}, \emph{xmlroot}, \emph{stylesheet}}{}
-Writes a report file from a XML tree.
-\begin{quote}\begin{description}
-\item[{Parameters}] \leavevmode\begin{itemize}
-\item {} 
-\textbf{\texttt{str}} (\emph{\texttt{stylesheet}}) -- The path to the file to create
-
-\item {} 
-\textbf{\texttt{etree.Element}} (\emph{\texttt{xmlroot}}) -- the Etree element to write to the file
-
-\item {} 
-\textbf{\texttt{str}} -- The stylesheet to add to the begin of the file
-
-\end{itemize}
-
-\end{description}\end{quote}
-
-\end{fulllineitems}
-
-
-
-\subsubsection{Module contents}
-\label{commands/apidoc/src:module-src}\label{commands/apidoc/src:module-contents}\index{src (module)}
-
-\chapter{Release Notes}
-\label{index:release-notes}
-
-\section{Release notes}
-\label{release_notes/release_notes_5.0.0:release-notes}\label{release_notes/release_notes_5.0.0::doc}
-In construction.
-
-
-\renewcommand{\indexname}{Python Module Index}
-\begin{theindex}
-\def\bigletter#1{{\Large\sffamily#1}\nopagebreak\vspace{1mm}}
-\bigletter{s}
-\item {\texttt{src}}, \pageref{commands/apidoc/src:module-src}
-\item {\texttt{src.architecture}}, \pageref{commands/apidoc/src:module-src.architecture}
-\item {\texttt{src.catchAll}}, \pageref{commands/apidoc/src:module-src.catchAll}
-\item {\texttt{src.colorama}}, \pageref{commands/apidoc/src.colorama:module-src.colorama}
-\item {\texttt{src.colorama.ansi}}, \pageref{commands/apidoc/src.colorama:module-src.colorama.ansi}
-\item {\texttt{src.colorama.ansitowin32}}, \pageref{commands/apidoc/src.colorama:module-src.colorama.ansitowin32}
-\item {\texttt{src.colorama.initialise}}, \pageref{commands/apidoc/src.colorama:module-src.colorama.initialise}
-\item {\texttt{src.colorama.win32}}, \pageref{commands/apidoc/src.colorama:module-src.colorama.win32}
-\item {\texttt{src.colorama.winterm}}, \pageref{commands/apidoc/src.colorama:module-src.colorama.winterm}
-\item {\texttt{src.coloringSat}}, \pageref{commands/apidoc/src:module-src.coloringSat}
-\item {\texttt{src.compilation}}, \pageref{commands/apidoc/src:module-src.compilation}
-\item {\texttt{src.configManager}}, \pageref{commands/apidoc/src:module-src.configManager}
-\item {\texttt{src.debug}}, \pageref{commands/apidoc/src:module-src.debug}
-\item {\texttt{src.ElementTree}}, \pageref{commands/apidoc/src:module-src.ElementTree}
-\item {\texttt{src.environment}}, \pageref{commands/apidoc/src:module-src.environment}
-\item {\texttt{src.environs}}, \pageref{commands/apidoc/src:module-src.environs}
-\item {\texttt{src.example}}, \pageref{commands/apidoc/src.example:module-src.example}
-\item {\texttt{src.example.essai\_logging\_1}}, \pageref{commands/apidoc/src.example:module-src.example.essai_logging_1}
-\item {\texttt{src.example.essai\_logging\_2}}, \pageref{commands/apidoc/src.example:module-src.example.essai_logging_2}
-\item {\texttt{src.exceptionSat}}, \pageref{commands/apidoc/src:module-src.exceptionSat}
-\item {\texttt{src.fileEnviron}}, \pageref{commands/apidoc/src:module-src.fileEnviron}
-\item {\texttt{src.fork}}, \pageref{commands/apidoc/src:module-src.fork}
-\item {\texttt{src.loggingSat}}, \pageref{commands/apidoc/src:module-src.loggingSat}
-\item {\texttt{src.options}}, \pageref{commands/apidoc/src:module-src.options}
-\item {\texttt{src.product}}, \pageref{commands/apidoc/src:module-src.product}
-\item {\texttt{src.pyconf}}, \pageref{commands/apidoc/src:module-src.pyconf}
-\item {\texttt{src.returnCode}}, \pageref{commands/apidoc/src:module-src.returnCode}
-\item {\texttt{src.salomeTools}}, \pageref{commands/apidoc/src:module-src.salomeTools}
-\item {\texttt{src.system}}, \pageref{commands/apidoc/src:module-src.system}
-\item {\texttt{src.template}}, \pageref{commands/apidoc/src:module-src.template}
-\item {\texttt{src.test\_module}}, \pageref{commands/apidoc/src:module-src.test_module}
-\item {\texttt{src.utilsSat}}, \pageref{commands/apidoc/src:module-src.utilsSat}
-\item {\texttt{src.xmlManager}}, \pageref{commands/apidoc/src:module-src.xmlManager}
-\end{theindex}
-
-\renewcommand{\indexname}{Index}
-\printindex
-\end{document}
diff --git a/doc/build/latex/sat_about.png b/doc/build/latex/sat_about.png
deleted file mode 100644 (file)
index 600d3d8..0000000
Binary files a/doc/build/latex/sat_about.png and /dev/null differ
diff --git a/doc/build/latex/sphinx.sty b/doc/build/latex/sphinx.sty
deleted file mode 100644 (file)
index d025a07..0000000
+++ /dev/null
@@ -1,917 +0,0 @@
-%
-% sphinx.sty
-%
-% Adapted from the old python.sty, mostly written by Fred Drake,
-% by Georg Brandl.
-%
-
-\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{sphinx}[2010/01/15 LaTeX package (Sphinx markup)]
-
-% this is the \ltx@ifundefined of ltxcmds.sty, which is loaded by
-% hyperref.sty, but we need it before, and initial ltxcmds.sty
-% as in TL2009/Debian had wrong definition.
-\newcommand{\spx@ifundefined}[1]{%
-    \ifcsname #1\endcsname
-      \expandafter\ifx\csname #1\endcsname\relax
-        \expandafter\expandafter\expandafter\@firstoftwo
-      \else
-        \expandafter\expandafter\expandafter\@secondoftwo
-      \fi
-    \else
-      \expandafter\@firstoftwo
-    \fi
-}
-
-\@ifclassloaded{memoir}{}{\RequirePackage{fancyhdr}}
-
-% for \text macro and \iffirstchoice@ conditional even if amsmath not loaded
-\RequirePackage{amstext}
-\RequirePackage{textcomp}
-% fancybox not used anymore and will be removed at Sphinx-1.5
-\RequirePackage{fancybox}
-\RequirePackage{titlesec}
-\RequirePackage{tabulary}
-\RequirePackage{makeidx}
-% For framing code-blocks and warning type notices, and shadowing topics
-\RequirePackage{framed}
-\newif\ifspx@inframed % flag set if we are in a framed environment
-% ifthen not used anymore and will be removed at Sphinx-1.5
-\RequirePackage{ifthen}
-% The xcolor package draws better fcolorboxes around verbatim code
-\IfFileExists{xcolor.sty}{
-    \RequirePackage{xcolor}
-}{
-    \RequirePackage{color}
-}
-% For highlighted code.
-\RequirePackage{fancyvrb}
-% For table captions.
-\RequirePackage{threeparttable}
-% Handle footnotes in tables.
-\RequirePackage{footnote}
-\makesavenoteenv{tabulary}
-% For floating figures in the text.
-\RequirePackage{wrapfig}
-% Separate paragraphs by space by default.
-\RequirePackage{parskip}
-% For parsed-literal blocks.
-\RequirePackage{alltt}
-% Display "real" single quotes in literal blocks.
-\RequirePackage{upquote}
-% For the H specifier. Do not \restylefloat{figure}, it breaks Sphinx code
-% for allowing figures in tables.
-\RequirePackage{float}
-
-% Redefine these colors to your liking in the preamble.
-\definecolor{TitleColor}{rgb}{0.126,0.263,0.361}
-\definecolor{InnerLinkColor}{rgb}{0.208,0.374,0.486}
-\definecolor{OuterLinkColor}{rgb}{0.216,0.439,0.388}
-% Redefine these colors to something if you want to have colored
-% background and border for code examples.
-\definecolor{VerbatimColor}{rgb}{1,1,1}
-\definecolor{VerbatimBorderColor}{rgb}{0,0,0}
-
-% Uncomment these two lines to ignore the paper size and make the page 
-% size more like a typical published manual.
-%\renewcommand{\paperheight}{9in}
-%\renewcommand{\paperwidth}{8.5in}   % typical squarish manual
-%\renewcommand{\paperwidth}{7in}     % O'Reilly ``Programmming Python''
-
-% use pdfoutput for pTeX and dvipdfmx
-% when pTeX (\kanjiskip is defined), set pdfoutput to evade \include{pdfcolor}
-\ifx\kanjiskip\undefined\else
-  \newcount\pdfoutput\pdfoutput=0
-\fi
-
-\RequirePackage{graphicx}
-
-% for PDF output, use colors and maximal compression
-\newif\ifsphinxpdfoutput % used in \maketitle
-\ifx\pdfoutput\undefined\else
- \ifnum\pdfoutput=\z@
-  \let\py@NormalColor\relax
-  \let\py@TitleColor\relax
- \else
-  \sphinxpdfoutputtrue
-  \input{pdfcolor}
-  \def\py@NormalColor{\color[rgb]{0.0,0.0,0.0}}
-  \def\py@TitleColor{\color{TitleColor}}
-  \pdfcompresslevel=9
- \fi
-\fi
-
-% XeLaTeX can do colors, too
-\ifx\XeTeXrevision\undefined\else
-  \def\py@NormalColor{\color[rgb]{0.0,0.0,0.0}}
-  \def\py@TitleColor{\color{TitleColor}}
-\fi
-
-% Increase printable page size (copied from fullpage.sty)
-\topmargin 0pt
-\advance \topmargin by -\headheight
-\advance \topmargin by -\headsep
-
-% attempt to work a little better for A4 users
-\textheight \paperheight
-\advance\textheight by -2in
-
-\oddsidemargin 0pt
-\evensidemargin 0pt
-%\evensidemargin -.25in  % for ``manual size'' documents
-\marginparwidth 0.5in
-
-\textwidth \paperwidth
-\advance\textwidth by -2in
-
-
-% Style parameters and macros used by most documents here
-\raggedbottom
-\sloppy
-\hbadness = 5000                % don't print trivial gripes
-
-\pagestyle{empty}               % start this way
-
-% Use this to set the font family for headers and other decor:
-\newcommand{\py@HeaderFamily}{\sffamily\bfseries}
-\newcommand{\sphinxSetHeaderFamily}[1]{\renewcommand{\py@HeaderFamily}{#1}}
-
-% Redefine the 'normal' header/footer style when using "fancyhdr" package:
-\spx@ifundefined{fancyhf}{}{
-  % Use \pagestyle{normal} as the primary pagestyle for text.
-  \fancypagestyle{normal}{
-    \fancyhf{}
-    \fancyfoot[LE,RO]{{\py@HeaderFamily\thepage}}
-    \fancyfoot[LO]{{\py@HeaderFamily\nouppercase{\rightmark}}}
-    \fancyfoot[RE]{{\py@HeaderFamily\nouppercase{\leftmark}}}
-    \fancyhead[LE,RO]{{\py@HeaderFamily \@title, \py@release}}
-    \renewcommand{\headrulewidth}{0.4pt}
-    \renewcommand{\footrulewidth}{0.4pt}
-    % define chaptermark with \@chappos when \@chappos is available for Japanese
-    \spx@ifundefined{@chappos}{}
-      {\def\chaptermark##1{\markboth{\@chapapp\space\thechapter\space\@chappos\space ##1}{}}}
-  }
-  % Update the plain style so we get the page number & footer line,
-  % but not a chapter or section title.  This is to keep the first
-  % page of a chapter and the blank page between chapters `clean.'
-  \fancypagestyle{plain}{
-    \fancyhf{}
-    \fancyfoot[LE,RO]{{\py@HeaderFamily\thepage}}
-    \renewcommand{\headrulewidth}{0pt}
-    \renewcommand{\footrulewidth}{0.4pt}
-  }
-}
-
-% Some custom font markup commands.
-% *** the macros without \sphinx prefix are still defined at bottom of file ***
-\newcommand{\sphinxstrong}[1]{{\textbf{#1}}}
-% let \sphinxcode and \sphinxbfcode use straight quotes. \@noligs patched by upquote,
-% but needs protection in "moving arguments" such as for captions.
-% Use \scantokens to handle e.g. \item[{\sphinxcode{'fontenc'}}]
-\DeclareRobustCommand{\sphinxcode}[1]{{\@noligs\scantokens{\texttt{#1}\relax}}}
-\newcommand{\sphinxbfcode}[1]{\sphinxcode{\bfseries#1}}
-\newcommand{\sphinxemail}[1]{\textsf{#1}}
-\newcommand{\sphinxtablecontinued}[1]{\textsf{#1}}
-\newcommand{\sphinxtitleref}[1]{\emph{#1}}
-\newcommand{\sphinxmenuselection}[1]{\emph{#1}}
-\newcommand{\sphinxaccelerator}[1]{\underline{#1}}
-\newcommand{\sphinxcrossref}[1]{\emph{#1}}
-\newcommand{\sphinxtermref}[1]{\emph{#1}}
-
-% miscellaneous related to footnotes
-\newcommand*{\sphinxAtStartFootnote}{\mbox{ }}
-% Support large numbered footnotes in minipage (cf. admonitions)
-\def\thempfootnote{\arabic{mpfootnote}}
-
-% Redefine the Verbatim environment to allow border and background colors
-% and to handle the top caption in a non separable by pagebreak way.
-% The original environment is still used for verbatims within tables.
-\let\OriginalVerbatim=\Verbatim
-\let\endOriginalVerbatim=\endVerbatim
-
-\newcommand\spx@colorbox [2]{%
-% #1 will be \fcolorbox or, for first part of frame: \spx@fcolorbox
-% let the framing obey the current indentation (adapted from framed.sty's code).
-  \hskip\@totalleftmargin
-  \hskip-\fboxsep\hskip-\fboxrule
-  #1{VerbatimBorderColor}{VerbatimColor}{#2}%
-  \hskip-\fboxsep\hskip-\fboxrule
-  \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth
-}
-% use of \color@b@x here is compatible with both xcolor.sty and color.sty
-\def\spx@fcolorbox #1#2%
-  {\color@b@x {\fboxsep\z@\color{#1}\spx@VerbatimFBox}{\color{#2}}}%
-
-% The title is specified from outside as macro \sphinxVerbatimTitle.
-% \sphinxVerbatimTitle is reset to empty after each use of Verbatim.
-\newcommand*\sphinxVerbatimTitle {}
-% Holder macro for labels of literal blocks. Set-up by LaTeX writer.
-\newcommand*\sphinxLiteralBlockLabel {}
-\newcommand*\sphinxSetupCaptionForVerbatim [2]
-{%
-    \needspace{\sphinxliteralblockneedspace}%
-% insert a \label via \sphinxLiteralBlockLabel
-% reset to normal the color for the literal block caption
-% the caption inserts \abovecaptionskip whitespace above itself (usually 10pt)
-% there is also \belowcaptionskip but it is usually zero, hence the \smallskip
-    \def\sphinxVerbatimTitle
-       {\py@NormalColor\captionof{#1}{\sphinxLiteralBlockLabel #2}\smallskip }%
-}
-
-% Inspired and adapted from framed.sty's \CustomFBox with extra handling
-% of a non separable by pagebreak caption, and controlled counter stepping.
-\newif\ifspx@myfirstframedpass
-\long\def\spx@VerbatimFBox#1{%
-  \leavevmode
-  \begingroup
-  % framed.sty does some measuring but this macro adds possibly a caption
-  % use amsmath conditional to inhibit the caption counter stepping after
-  % first pass
-  \ifspx@myfirstframedpass\else\firstchoice@false\fi
-  \setbox\@tempboxa\hbox{\kern\fboxsep{#1}\kern\fboxsep}%
-   \hbox
-   {\lower\dimexpr\fboxrule+\fboxsep+\dp\@tempboxa
-    \hbox{%
-      \vbox{\ifx\sphinxVerbatimTitle\empty\else
-            % add the caption in a centered way above possibly indented frame
-            % hide its width from framed.sty's measuring step
-            % note that the caption brings \abovecaptionskip top vertical space
-            \moveright\dimexpr\fboxrule+.5\wd\@tempboxa
-                  \hb@xt@\z@{\hss\begin{minipage}{\wd\@tempboxa}%
-                                  \sphinxVerbatimTitle
-                                 \end{minipage}\hss}\fi
-            % draw frame border _latest_ to avoid pdf viewer issue
-            \kern\fboxrule
-            \hbox{\kern\fboxrule
-                  \vbox{\vskip\fboxsep\copy\@tempboxa\vskip\fboxsep}%
-                  \kern-\wd\@tempboxa\kern-\fboxrule
-                  \vrule\@width\fboxrule
-                  \kern\wd\@tempboxa
-                  \vrule\@width\fboxrule}%
-            \kern-\dimexpr\fboxsep+\ht\@tempboxa+\dp\@tempboxa
-                                  +\fboxsep+\fboxrule\relax
-            \hrule\@height\fboxrule
-            \kern\dimexpr\fboxsep+\ht\@tempboxa+\dp\@tempboxa+\fboxsep\relax
-            \hrule\@height\fboxrule}%
-   }}%
-  \endgroup
-  \global\spx@myfirstframedpassfalse
-}
-
-% For linebreaks inside Verbatim environment from package fancyvrb.
-\newbox\sphinxcontinuationbox
-\newbox\sphinxvisiblespacebox
-% These are user customizable e.g. from latex_elements's preamble key.
-% Use of \textvisiblespace for compatibility with XeTeX/LuaTeX/fontspec.
-\newcommand*\sphinxvisiblespace {\textcolor{red}{\textvisiblespace}}
-\newcommand*\sphinxcontinuationsymbol {\textcolor{red}{\llap{\tiny$\m@th\hookrightarrow$}}}
-\newcommand*\sphinxcontinuationindent {3ex }
-\newcommand*\sphinxafterbreak {\kern\sphinxcontinuationindent\copy\sphinxcontinuationbox}
-
-% Take advantage of the already applied Pygments mark-up to insert
-% potential linebreaks for TeX processing.
-%        {, <, #, %, $, ' and ": go to next line.
-%        _, }, ^, &, >, - and ~: stay at end of broken line.
-% Use of \textquotesingle for straight quote.
-\newcommand*\sphinxbreaksatspecials {%
-    \def\PYGZus{\discretionary{\char`\_}{\sphinxafterbreak}{\char`\_}}%
-    \def\PYGZob{\discretionary{}{\sphinxafterbreak\char`\{}{\char`\{}}%
-    \def\PYGZcb{\discretionary{\char`\}}{\sphinxafterbreak}{\char`\}}}%
-    \def\PYGZca{\discretionary{\char`\^}{\sphinxafterbreak}{\char`\^}}%
-    \def\PYGZam{\discretionary{\char`\&}{\sphinxafterbreak}{\char`\&}}%
-    \def\PYGZlt{\discretionary{}{\sphinxafterbreak\char`\<}{\char`\<}}%
-    \def\PYGZgt{\discretionary{\char`\>}{\sphinxafterbreak}{\char`\>}}%
-    \def\PYGZsh{\discretionary{}{\sphinxafterbreak\char`\#}{\char`\#}}%
-    \def\PYGZpc{\discretionary{}{\sphinxafterbreak\char`\%}{\char`\%}}%
-    \def\PYGZdl{\discretionary{}{\sphinxafterbreak\char`\$}{\char`\$}}%
-    \def\PYGZhy{\discretionary{\char`\-}{\sphinxafterbreak}{\char`\-}}%
-    \def\PYGZsq{\discretionary{}{\sphinxafterbreak\textquotesingle}{\textquotesingle}}%
-    \def\PYGZdq{\discretionary{}{\sphinxafterbreak\char`\"}{\char`\"}}%
-    \def\PYGZti{\discretionary{\char`\~}{\sphinxafterbreak}{\char`\~}}%
-}
-
-\def\sphinx@verbatim@nolig@list {\do \`}%
-% Some characters . , ; ? ! / are not pygmentized.
-% This macro makes them "active" and they will insert potential linebreaks
-\newcommand*\sphinxbreaksatpunct {%
-   \lccode`\~`\.\lowercase{\def~}{\discretionary{\char`\.}{\sphinxafterbreak}{\char`\.}}%
-   \lccode`\~`\,\lowercase{\def~}{\discretionary{\char`\,}{\sphinxafterbreak}{\char`\,}}%
-   \lccode`\~`\;\lowercase{\def~}{\discretionary{\char`\;}{\sphinxafterbreak}{\char`\;}}%
-   \lccode`\~`\:\lowercase{\def~}{\discretionary{\char`\:}{\sphinxafterbreak}{\char`\:}}%
-   \lccode`\~`\?\lowercase{\def~}{\discretionary{\char`\?}{\sphinxafterbreak}{\char`\?}}%
-   \lccode`\~`\!\lowercase{\def~}{\discretionary{\char`\!}{\sphinxafterbreak}{\char`\!}}%
-   \lccode`\~`\/\lowercase{\def~}{\discretionary{\char`\/}{\sphinxafterbreak}{\char`\/}}%
-   \catcode`\.\active
-   \catcode`\,\active
-   \catcode`\;\active
-   \catcode`\:\active
-   \catcode`\?\active
-   \catcode`\!\active
-   \catcode`\/\active
-   \lccode`\~`\~
-}
-
-\renewcommand{\Verbatim}[1][1]{%
-  % quit horizontal mode if we are still in a paragraph
-  \par
-  % list starts new par, but we don't want it to be set apart vertically
-  \parskip\z@skip
-  % first, let's check if there is a caption
-  \ifx\sphinxVerbatimTitle\empty
-      \addvspace\z@% counteract possible previous negative skip (French lists!)
-      \smallskip
-      % there was no caption. Check if nevertheless a label was set.
-      \ifx\sphinxLiteralBlockLabel\empty\else
-      % we require some space to be sure hyperlink target from \phantomsection
-      % will not be separated from upcoming verbatim by a page break
-          \needspace{\sphinxliteralblockwithoutcaptionneedspace}%
-          \phantomsection\sphinxLiteralBlockLabel
-      \fi
-  \fi
-  % non-empty \sphinxVerbatimTitle has label inside it (in case there is one)
-  % Customize framed.sty \MakeFramed to glue caption to literal block
-  \global\spx@myfirstframedpasstrue
-  % via \spx@fcolorbox, will use \spx@VerbatimFBox which inserts title
-  \def\FrameCommand   {\spx@colorbox\spx@fcolorbox }%
-  \let\FirstFrameCommand\FrameCommand
-  % for mid pages and last page portion of (long) split frame:
-  \def\MidFrameCommand{\spx@colorbox\fcolorbox }%
-  \let\LastFrameCommand\MidFrameCommand
-  % fancyvrb's Verbatim puts each input line in (unbreakable) horizontal boxes.
-  % This customization wraps each line from the input in a \vtop, thus
-  % allowing it to wrap and display on two or more lines in the latex output.
-  %     - The codeline counter will be increased only once.
-  %     - The wrapped material will not break across pages, it is impossible
-  %       to achieve this without extensive rewrite of fancyvrb.
-  %     - The (not used in sphinx) obeytabs option to Verbatim is
-  %       broken by this change (showtabs and tabspace work).
-  \sbox\sphinxcontinuationbox {\sphinxcontinuationsymbol}%
-  \sbox\sphinxvisiblespacebox {\FV@SetupFont\sphinxvisiblespace}%
-  \def\FancyVerbFormatLine ##1{\hsize\linewidth
-          \vtop{\raggedright\hyphenpenalty\z@\exhyphenpenalty\z@
-                \doublehyphendemerits\z@\finalhyphendemerits\z@
-                \strut ##1\strut}%
-          }%
-  % If the linebreak is at a space, the latter will be displayed as visible
-  % space at end of first line, and a continuation symbol starts next line.
-  % Stretch/shrink are however usually zero for typewriter font.
-  \def\FV@Space {%
-       \nobreak\hskip\z@ plus\fontdimen3\font minus\fontdimen4\font
-       \discretionary{\copy\sphinxvisiblespacebox}{\sphinxafterbreak}
-                     {\kern\fontdimen2\font}%
-       }%
-  % go around fancyvrb's check of @currenvir (for case of minipage below)
-  \renewcommand*{\VerbatimEnvironment}{\gdef\FV@EnvironName{Verbatim}}%
-  % go around fancyvrb's check of current list depth
-  \def\@toodeep {\advance\@listdepth\@ne}%
-  % Allow breaks at special characters using \PYG... macros.
-  \sphinxbreaksatspecials
-  % The list environment is needed to control perfectly the vertical space.
-  % Note: \OuterFrameSep used by framed.sty is later set to \topsep hence 0pt.
-  % - if caption: vertical space above caption = (\abovecaptionskip + D) with
-  %   D = \baselineskip-\FrameHeightAdjust, and then \smallskip above frame.
-  % - if no caption: (\smallskip + D) above frame. By default D=6pt.
-  % Use trivlist rather than list to avoid possible "too deeply nested" error.
-  \itemsep   \z@skip
-  \topsep    \z@skip
-  \partopsep \z@skip% trivlist will set \parsep to \parskip = zero (see above)
-  % \leftmargin will be set to zero by trivlist
-  \rightmargin\z@
-  \parindent  \z@% becomes \itemindent. Default zero, but perhaps overwritten.
-  \trivlist\item\relax
-  % use a minipage if we are already inside a framed environment
-     \ifspx@inframed\noindent\begin{minipage}{\linewidth}\fi
-     \MakeFramed {% adapted over from framed.sty's snugshade environment
-     \advance\hsize-\width\@totalleftmargin\z@\linewidth\hsize
-     \@setminipage  }%
-     \small
-     % For grid placement from \strut's in \FancyVerbFormatLine
-     \lineskip\z@skip
-     % Breaks at punctuation characters . , ; ? ! and / need catcode=\active
-     % and the active comma should not be overwritten by \@noligs
-     \let\verbatim@nolig@list \sphinx@verbatim@nolig@list
-     \OriginalVerbatim[#1,codes*=\sphinxbreaksatpunct]%
-}
-\renewcommand{\endVerbatim}{%
-  \endOriginalVerbatim
-  \par\unskip\@minipagefalse\endMakeFramed
-  \ifspx@inframed\end{minipage}\fi
-  \endtrivlist
-}
-
-% define macro to frame contents and add shadow on right and bottom
-% use public names for customizable lengths
-\newlength\sphinxshadowsep  \setlength\sphinxshadowsep  {5pt}
-\newlength\sphinxshadowsize \setlength\sphinxshadowsize {4pt}
-\newlength\sphinxshadowrule
-% this uses \fboxrule value at loading time of sphinx.sty (0.4pt normally)
-\setlength\sphinxshadowrule {\fboxrule}
-
-\long\def\spx@ShadowFBox#1{%
-  \leavevmode\begingroup
-  % first we frame the box #1
-  \setbox\@tempboxa
-   \hbox{\vrule\@width\sphinxshadowrule
-         \vbox{\hrule\@height\sphinxshadowrule
-               \kern\sphinxshadowsep
-               \hbox{\kern\sphinxshadowsep #1\kern\sphinxshadowsep}%
-               \kern\sphinxshadowsep
-               \hrule\@height\sphinxshadowrule}%
-         \vrule\@width\sphinxshadowrule}%
-  % Now we add the shadow, like \shadowbox from fancybox.sty would do
-  \dimen@\dimexpr.5\sphinxshadowrule+\sphinxshadowsize\relax
-  \hbox{\vbox{\offinterlineskip
-              \hbox{\copy\@tempboxa\kern-.5\sphinxshadowrule
-                    % add shadow on right side
-                    \lower\sphinxshadowsize
-                          \hbox{\vrule\@height\ht\@tempboxa \@width\dimen@}%
-                    }%
-              \kern-\dimen@ % shift back vertically to bottom of frame
-              % and add shadow at bottom
-              \moveright\sphinxshadowsize
-                    \vbox{\hrule\@width\wd\@tempboxa \@height\dimen@}%
-              }%
-        % move left by the size of right shadow so shadow adds no width
-        \kern-\sphinxshadowsize
-       }%
-  \endgroup
-}
-
-% use framed.sty to allow page breaks in frame+shadow
-% works well inside Lists and Quote-like environments
-% produced by ``topic'' directive (or local contents)
-% could nest if LaTeX writer authorized it
-\newenvironment{sphinxShadowBox}
-  {\def\FrameCommand {\spx@ShadowFBox }%
-   % configure framed.sty not to add extra vertical spacing
-   \spx@ifundefined{OuterFrameSep}{}{\OuterFrameSep\z@skip}%
-   % the \trivlist will add the vertical spacing on top and bottom which is
-   % typical of center environment as used in Sphinx <= 1.4.1
-   % the \noindent has the effet of an extra blank line on top, to
-   % imitate closely the layout from Sphinx <= 1.4.1; the \FrameHeightAdjust
-   % will put top part of frame on this baseline.
-   \def\FrameHeightAdjust {\baselineskip}%
-   \trivlist\item\noindent
-    % use a minipage if we are already inside a framed environment
-    \ifspx@inframed\begin{minipage}{\linewidth}\fi
-    \MakeFramed {\spx@inframedtrue
-    % framed.sty puts into "\width" the added width (=2shadowsep+2shadowrule)
-    % adjust \hsize to what the contents must use
-    \advance\hsize-\width
-    % adjust LaTeX parameters to behave properly in indented/quoted contexts
-    \FrameRestore
-    % typeset the contents as in a minipage (Sphinx <= 1.4.1 used a minipage and
-    % itemize/enumerate are therein typeset more tightly, we want to keep
-    % that). We copy-paste from LaTeX source code but don't do a real minipage.
-    \@pboxswfalse
-       % for footnotes, but Sphinx inactivates footnotes in topics
-       \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
-       \let\@footnotetext\@mpfootnotetext
-    \let\@listdepth\@mplistdepth \@mplistdepth\z@
-    \@minipagerestore
-    \@setminipage
-    }%
-  }%
-  {% insert the "endminipage" code
-    \par\unskip
-    % handle (currently non existing) minipage style footnotes
-    \ifvoid\@mpfootins\else
-      \vskip\skip\@mpfootins\normalcolor\footnoterule\unvbox\@mpfootins
-    \fi
-    \@minipagefalse
-   \endMakeFramed
-     \ifspx@inframed\end{minipage}\fi
-   \endtrivlist
-  }
-
-
-% \moduleauthor{name}{email}
-\newcommand{\moduleauthor}[2]{}
-
-% \sectionauthor{name}{email}
-\newcommand{\sectionauthor}[2]{}
-
-% Augment the sectioning commands used to get our own font family in place,
-% and reset some internal data items:
-\titleformat{\section}{\Large\py@HeaderFamily}%
-            {\py@TitleColor\thesection}{0.5em}{\py@TitleColor}{\py@NormalColor}
-\titleformat{\subsection}{\large\py@HeaderFamily}%
-            {\py@TitleColor\thesubsection}{0.5em}{\py@TitleColor}{\py@NormalColor}
-\titleformat{\subsubsection}{\py@HeaderFamily}%
-            {\py@TitleColor\thesubsubsection}{0.5em}{\py@TitleColor}{\py@NormalColor}
-% By default paragraphs (and subsubsections) will not be numbered because
-% sphinxmanual.cls and sphinxhowto.cls set secnumdepth to 2
-\titleformat{\paragraph}{\py@HeaderFamily}%
-            {\py@TitleColor\theparagraph}{0.5em}{\py@TitleColor}{\py@NormalColor}
-\titleformat{\subparagraph}{\py@HeaderFamily}%
-            {\py@TitleColor\thesubparagraph}{0.5em}{\py@TitleColor}{\py@NormalColor}
-
-% {fulllineitems} is the main environment for object descriptions.
-%
-\newcommand{\py@itemnewline}[1]{%
-  \@tempdima\linewidth%
-  \advance\@tempdima \leftmargin\makebox[\@tempdima][l]{#1}%
-}
-
-\newenvironment{fulllineitems}{
-  \begin{list}{}{\labelwidth \leftmargin \labelsep 0pt
-                 \rightmargin 0pt \topsep -\parskip \partopsep \parskip
-                 \itemsep -\parsep
-                 \let\makelabel=\py@itemnewline}
-}{\end{list}}
-
-% \optional is used for ``[, arg]``, i.e. desc_optional nodes.
-\newcommand{\sphinxoptional}[1]{%
-  {\textnormal{\Large[}}{#1}\hspace{0.5mm}{\textnormal{\Large]}}}
-
-\newlength{\py@argswidth}
-\newcommand{\py@sigparams}[2]{%
-  \parbox[t]{\py@argswidth}{#1\sphinxcode{)}#2}}
-\newcommand{\pysigline}[1]{\item[#1]\nopagebreak}
-\newcommand{\pysiglinewithargsret}[3]{%
-  \settowidth{\py@argswidth}{#1\sphinxcode{(}}%
-  \addtolength{\py@argswidth}{-2\py@argswidth}%
-  \addtolength{\py@argswidth}{\linewidth}%
-  \item[#1\sphinxcode{(}\py@sigparams{#2}{#3}]}
-
-% Production lists
-%
-\newenvironment{productionlist}{
-%  \def\sphinxoptional##1{{\Large[}##1{\Large]}}
-  \def\production##1##2{\\\sphinxcode{##1}&::=&\sphinxcode{##2}}
-  \def\productioncont##1{\\& &\sphinxcode{##1}}
-  \parindent=2em
-  \indent
-  \setlength{\LTpre}{0pt}
-  \setlength{\LTpost}{0pt}
-  \begin{longtable}[l]{lcl}
-}{%
-  \end{longtable}
-}
-
-% Notices / Admonitions
-%
-
-% Code adapted from framed.sty's "snugshade" environment.
-% Nesting works (inner frames do not allow page breaks).
-\newcommand{\py@heavybox}{\par
-   \setlength{\FrameRule}{\p@}% 1pt
-   \setlength{\FrameSep}{\dimexpr.6\baselineskip-\FrameRule\relax}
-   % configure framed.sty's parameters to obtain same vertical spacing
-   % as for "light" boxes. We need for this to manually insert parskip glue and
-   % revert a skip done by framed before the frame.
-    \spx@ifundefined{OuterFrameSep}{}{\OuterFrameSep\z@skip}%
-    \vspace{\FrameHeightAdjust}
-   % copied/adapted from framed.sty's snugshade
-   \def\FrameCommand##1{\hskip\@totalleftmargin
-       \fboxsep\FrameSep \fboxrule\FrameRule\fbox{##1}%
-       \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}%
-   % use a minipage if we are already inside a framed environment
-   \ifspx@inframed
-       \noindent\begin{minipage}{\linewidth}
-   \else
-       % handle case where notice is first thing in a list item (or is quoted)
-       \if@inlabel
-        \noindent\par\vspace{-\baselineskip}
-       \else
-        \vspace{\parskip}
-       \fi
-   \fi
-   \MakeFramed {\spx@inframedtrue
-     \advance\hsize-\width \@totalleftmargin\z@ \linewidth\hsize
-     % minipage initialization copied from LaTeX source code.
-     \@pboxswfalse
-       % for footnotes
-       \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
-       \let\@footnotetext\@mpfootnotetext
-     \let\@listdepth\@mplistdepth \@mplistdepth\z@
-     \@minipagerestore
-     \@setminipage }%
-   }
-\newcommand{\py@endheavybox}{%
-   \par\unskip
-   % handles footnotes
-   \ifvoid\@mpfootins\else
-      \vskip\skip\@mpfootins\normalcolor\footnoterule\unvbox\@mpfootins
-   \fi
-   \@minipagefalse
-   \endMakeFramed
-   \ifspx@inframed\end{minipage}\fi
-   % arrange for similar spacing below frame as for "light" boxes.
-   \vskip .4\baselineskip
-   }
-
-\newcommand{\py@lightbox}{%
-  \par\allowbreak
-  \noindent\rule{\linewidth}{0.5pt}\par\nobreak
-  {\parskip\z@skip\noindent}%
-  }
-\newcommand{\py@endlightbox}{%
-  \par
-  % counteract previous possible negative skip (French lists!):
-  % (we can't cancel that any earlier \vskip introduced a potential pagebreak)
-  \ifdim\lastskip<\z@\vskip-\lastskip\fi
-  \nobreak\vbox{\noindent\kern\@totalleftmargin
-           \rule[.4\baselineskip]{\linewidth}{0.5pt}\hss}\allowbreak
-  }
-
-% Some are quite plain:
-\newcommand{\py@noticestart@note}{\py@lightbox}
-\newcommand{\py@noticeend@note}{\py@endlightbox}
-\newcommand{\py@noticestart@hint}{\py@lightbox}
-\newcommand{\py@noticeend@hint}{\py@endlightbox}
-\newcommand{\py@noticestart@important}{\py@lightbox}
-\newcommand{\py@noticeend@important}{\py@endlightbox}
-\newcommand{\py@noticestart@tip}{\py@lightbox}
-\newcommand{\py@noticeend@tip}{\py@endlightbox}
-
-% Others gets more visible distinction:
-\newcommand{\py@noticestart@warning}{\py@heavybox}
-\newcommand{\py@noticeend@warning}{\py@endheavybox}
-\newcommand{\py@noticestart@caution}{\py@heavybox}
-\newcommand{\py@noticeend@caution}{\py@endheavybox}
-\newcommand{\py@noticestart@attention}{\py@heavybox}
-\newcommand{\py@noticeend@attention}{\py@endheavybox}
-\newcommand{\py@noticestart@danger}{\py@heavybox}
-\newcommand{\py@noticeend@danger}{\py@endheavybox}
-\newcommand{\py@noticestart@error}{\py@heavybox}
-\newcommand{\py@noticeend@error}{\py@endheavybox}
-
-\newenvironment{notice}[2]{
-  \def\py@noticetype{#1}
-  \csname py@noticestart@#1\endcsname
-  \sphinxstrong{#2} % <- legacy code creates a space after {#2}
-}{\csname py@noticeend@\py@noticetype\endcsname}
-
-% Allow the release number to be specified independently of the
-% \date{}.  This allows the date to reflect the document's date and
-% release to specify the release that is documented.
-%
-\newcommand{\py@release}{}
-\newcommand{\version}{}
-\newcommand{\shortversion}{}
-\newcommand{\releaseinfo}{}
-\newcommand{\releasename}{Release}
-\newcommand{\release}[1]{%
-  \renewcommand{\py@release}{\releasename\space\version}%
-  \renewcommand{\version}{#1}}
-\newcommand{\setshortversion}[1]{%
-  \renewcommand{\shortversion}{#1}}
-\newcommand{\setreleaseinfo}[1]{%
-  \renewcommand{\releaseinfo}{#1}}
-
-% Allow specification of the author's address separately from the
-% author's name.  This can be used to format them differently, which
-% is a good thing.
-%
-\newcommand{\py@authoraddress}{}
-\newcommand{\authoraddress}[1]{\renewcommand{\py@authoraddress}{#1}}
-
-% This sets up the fancy chapter headings that make the documents look
-% at least a little better than the usual LaTeX output.
-%
-\spx@ifundefined{ChTitleVar}{}{
-  \ChNameVar{\raggedleft\normalsize\py@HeaderFamily}
-  \ChNumVar{\raggedleft \bfseries\Large\py@HeaderFamily}
-  \ChTitleVar{\raggedleft \textrm{\Huge\py@HeaderFamily}}
-  % This creates chapter heads without the leading \vspace*{}:
-  \def\@makechapterhead#1{%
-    {\parindent \z@ \raggedright \normalfont
-      \ifnum \c@secnumdepth >\m@ne
-        \DOCH
-      \fi
-      \interlinepenalty\@M
-      \DOTI{#1}
-    }
-  }
-}
-
-% Redefine description environment so that it is usable inside fulllineitems.
-%
-\renewcommand{\description}{%
-  \list{}{\labelwidth\z@%
-          \itemindent-\leftmargin%
-         \labelsep5pt%
-          \let\makelabel=\descriptionlabel}}
-
-% Definition lists; requested by AMK for HOWTO documents.  Probably useful
-% elsewhere as well, so keep in in the general style support.
-%
-\newenvironment{definitions}{%
-  \begin{description}%
-  \def\term##1{\item[##1]\mbox{}\\*[0mm]}
-}{%
-  \end{description}%
-}
-
-% Tell TeX about pathological hyphenation cases:
-\hyphenation{Base-HTTP-Re-quest-Hand-ler}
-
-
-% The following is stuff copied from docutils' latex writer.
-%
-\newcommand{\optionlistlabel}[1]{\normalfont\bfseries #1 \hfill}% \bf deprecated
-\newenvironment{optionlist}[1]
-{\begin{list}{}
-  {\setlength{\labelwidth}{#1}
-   \setlength{\rightmargin}{1cm}
-   \setlength{\leftmargin}{\rightmargin}
-   \addtolength{\leftmargin}{\labelwidth}
-   \addtolength{\leftmargin}{\labelsep}
-   \renewcommand{\makelabel}{\optionlistlabel}}
-}{\end{list}}
-
-\newlength{\lineblockindentation}
-\setlength{\lineblockindentation}{2.5em}
-\newenvironment{lineblock}[1]
-{\begin{list}{}
-  {\setlength{\partopsep}{\parskip}
-   \addtolength{\partopsep}{\baselineskip}
-   \topsep0pt\itemsep0.15\baselineskip\parsep0pt
-   \leftmargin#1}
- \raggedright}
-{\end{list}}
-
-% Re-define \includegraphics to resize images larger than the line width
-% if the size is not specified.
-% Warning: future version of Sphinx will not modify original \includegraphics,
-% Below custom code will be direct definition of \sphinxincludegraphics, with
-% \py@Oldincludegraphics replaced by direct use of original \includegraphics.
-\let\py@Oldincludegraphics\includegraphics
-\newbox\spx@image@box
-\renewcommand*{\includegraphics}[2][\@empty]{%
-  \ifx\@empty #1% attention, #1 could be bb.., bad if first after \ifx
-    \setbox\spx@image@box=\hbox{\py@Oldincludegraphics{#2}}%
-    \ifdim \wd\spx@image@box>\linewidth
-      \py@Oldincludegraphics[width=\linewidth]{#2}%
-    \else
-      \leavevmode\box\spx@image@box
-    \fi
-  \else
-    \py@Oldincludegraphics[#1]{#2}%
-  \fi
-}
-% Writer will put \sphinxincludegraphics in LaTeX source, and with this,
-% documents which used their own modified \includegraphics will compile
-% as before. But see warning above.
-\newcommand*{\sphinxincludegraphics}{\includegraphics}
-
-% to make pdf with correct encoded bookmarks in Japanese
-% this should precede the hyperref package
-\ifx\kanjiskip\undefined
-% for non-Japanese: make sure bookmarks are ok also with lualatex
-  \PassOptionsToPackage{pdfencoding=unicode}{hyperref}
-\else
-  \usepackage{atbegshi}
-  \ifx\ucs\undefined
-    \ifnum 42146=\euc"A4A2
-      \AtBeginShipoutFirst{\special{pdf:tounicode EUC-UCS2}}
-    \else
-      \AtBeginShipoutFirst{\special{pdf:tounicode 90ms-RKSJ-UCS2}}
-    \fi
-  \else
-    \AtBeginShipoutFirst{\special{pdf:tounicode UTF8-UCS2}}
-  \fi
-\fi
-
-% Include hyperref last.
-\RequirePackage[colorlinks,breaklinks,
-                linkcolor=InnerLinkColor,filecolor=OuterLinkColor,
-                menucolor=OuterLinkColor,urlcolor=OuterLinkColor,
-                citecolor=InnerLinkColor]{hyperref}
-% Fix anchor placement for figures with captions.
-% (Note: we don't use a package option here; instead, we give an explicit
-% \capstart for figures that actually have a caption.)
-\RequirePackage{hypcap}
-
-% Set up styles of URL: it should be placed after hyperref
-\urlstyle{same}
-
-% From docutils.writers.latex2e
-% inline markup (custom roles)
-% \DUrole{#1}{#2} tries \DUrole#1{#2}
-\providecommand*{\DUrole}[2]{%
-  \ifcsname DUrole#1\endcsname%
-    \csname DUrole#1\endcsname{#2}%
-  \else% backwards compatibility: try \docutilsrole#1{#2}
-    \ifcsname docutilsrole#1\endcsname%
-      \csname docutilsrole#1\endcsname{#2}%
-    \else%
-      #2%
-    \fi%
-  \fi%
-}
-
-\providecommand*{\DUprovidelength}[2]{%
-  \ifdefined#1\else\newlength{#1}\setlength{#1}{#2}\fi
-}
-
-\DUprovidelength{\DUlineblockindent}{2.5em}
-\ifdefined\DUlineblock\else
-  \newenvironment{DUlineblock}[1]{%
-    \list{}{\setlength{\partopsep}{\parskip}
-            \addtolength{\partopsep}{\baselineskip}
-            \setlength{\topsep}{0pt}
-            \setlength{\itemsep}{0.15\baselineskip}
-            \setlength{\parsep}{0pt}
-            \setlength{\leftmargin}{#1}}
-    \raggedright
-  }
-  {\endlist}
-\fi
-
-% From footmisc.sty: allows footnotes in titles
-\let\FN@sf@@footnote\footnote
-\def\footnote{\ifx\protect\@typeset@protect
-    \expandafter\FN@sf@@footnote
-  \else
-    \expandafter\FN@sf@gobble@opt
-  \fi
-}
-\edef\FN@sf@gobble@opt{\noexpand\protect
-  \expandafter\noexpand\csname FN@sf@gobble@opt \endcsname}
-\expandafter\def\csname FN@sf@gobble@opt \endcsname{%
-  \@ifnextchar[%]
-    \FN@sf@gobble@twobracket
-    \@gobble
-}
-\def\FN@sf@gobble@twobracket[#1]#2{}
-
-% adjust the margins for footer,
-% this works with the jsclasses only (Japanese standard document classes)
-\ifx\@jsc@uplatextrue\undefined\else
-  \hypersetup{setpagesize=false}
-  \setlength\footskip{2\baselineskip}
-  \addtolength{\textheight}{-2\baselineskip}
-\fi
-
-% fix the double index and bibliography on the table of contents
-% in jsclasses (Japanese standard document classes)
-\ifx\@jsc@uplatextrue\undefined\else
-  \renewcommand{\theindex}{
-    \cleardoublepage
-    \phantomsection
-    \py@OldTheindex
-  }
-  \renewcommand{\thebibliography}[1]{
-    \cleardoublepage
-    \phantomsection
-    \py@OldThebibliography{1}
-  }
-\fi
-
-% disable \@chappos in Appendix in pTeX
-\ifx\kanjiskip\undefined\else
-  \let\py@OldAppendix=\appendix
-  \renewcommand{\appendix}{
-    \py@OldAppendix
-    \gdef\@chappos{}
-  }
-\fi
-
-% Define literal-block environment
-\RequirePackage{newfloat}
-\DeclareFloatingEnvironment{literal-block}
-\spx@ifundefined{c@chapter}
-  {\SetupFloatingEnvironment{literal-block}{within=section,placement=h}}
-  {\SetupFloatingEnvironment{literal-block}{within=chapter,placement=h}}
-\SetupFloatingEnvironment{literal-block}{name=List}
-% control caption around literal-block
-\RequirePackage{capt-of}
-\RequirePackage{needspace}
-% if the left page space is less than \literalblockneedspace, insert page-break
-\newcommand{\sphinxliteralblockneedspace}{5\baselineskip}
-\newcommand{\sphinxliteralblockwithoutcaptionneedspace}{1.5\baselineskip}
-
-% figure in table
-\newenvironment{sphinxfigure-in-table}[1][\linewidth]{%
-  \def\@captype{figure}%
-  \begin{minipage}{#1}%
-}{\end{minipage}}
-% store original \caption macro for use with figures in longtable and tabulary
-\AtBeginDocument{\let\spx@originalcaption\caption}
-\newcommand*\sphinxfigcaption
-  {\ifx\equation$%$% this is trick to identify tabulary first pass
-       \firstchoice@false\else\firstchoice@true\fi
-   \spx@originalcaption }
-
-% by default, also define macros with the no-prefix names
-\ifsphinxKeepOldNames
-  \typeout{** (sphinx) defining (legacy) text style macros without \string\sphinx\space prefix}
-  \typeout{** if clashes with packages, set latex_keep_old_macro_names=False in conf.py}
-  \@for\@tempa:=strong,bfcode,email,tablecontinued,titleref,%
-                menuselection,accelerator,crossref,termref,optional\do
-{% first, check if command with no prefix already exists
-  \expandafter\newcommand\csname\@tempa\endcsname{}%
-  % if no error give it the meaning defined so far with \sphinx prefix
-  \expandafter\let\csname\@tempa\expandafter\endcsname
-                  \csname sphinx\@tempa\endcsname
-  % redefine the \sphinx prefixed macro to expand to non-prefixed one
-  \expandafter\def\csname sphinx\@tempa\expandafter\endcsname
-                  \expandafter{\csname\@tempa\endcsname}%
-}
-  % robustified case needs special treatment
-  \newcommand\code{}\let\code\relax
-  \DeclareRobustCommand{\code}[1]{{\@noligs\scantokens{\texttt{#1}\relax}}}
-  \def\sphinxcode{\code}%
-\fi
diff --git a/doc/build/latex/sphinxhowto.cls b/doc/build/latex/sphinxhowto.cls
deleted file mode 100644 (file)
index 8d5c592..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-%
-% sphinxhowto.cls for Sphinx (http://sphinx-doc.org/)
-%
-
-\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesClass{sphinxhowto}[2009/06/02 Document class (Sphinx HOWTO)]
-
-\ifx\directlua\undefined\else
-% if compiling with lualatex 0.85 or later load compatibility patch issued by
-% the LaTeX team for older packages relying on \pdf<name> named primitives.
-    \IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
-\fi
-
-% 'oneside' option overriding the 'twoside' default
-\newif\if@oneside
-\DeclareOption{oneside}{\@onesidetrue}
-% Pass remaining document options to the parent class.
-\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\sphinxdocclass}}
-\ProcessOptions\relax
-
-% Default to two-side document
-\if@oneside
-% nothing to do (oneside is the default)
-\else
-\PassOptionsToClass{twoside}{\sphinxdocclass}
-\fi
-
-\LoadClass{\sphinxdocclass}
-
-% Set some sane defaults for section numbering depth and TOC depth.  You can
-% reset these counters in your preamble.
-%
-\setcounter{secnumdepth}{2}
-
-% Change the title page to look a bit better, and fit in with the fncychap
-% ``Bjarne'' style a bit better.
-%
-\renewcommand{\maketitle}{%
-  \noindent\rule{\textwidth}{1pt}\ifsphinxpdfoutput\newline\null\fi\par
-  \ifsphinxpdfoutput
-    \begingroup
-    % These \defs are required to deal with multi-line authors; it
-    % changes \\ to ', ' (comma-space), making it pass muster for
-    % generating document info in the PDF file.
-    \def\\{, }%
-    \def\and{and }%
-    \pdfinfo{
-      /Author (\@author)
-      /Title (\@title)
-    }%
-    \endgroup
-  \fi
-  \begin{flushright}
-    \sphinxlogo
-    \py@HeaderFamily
-    {\Huge \@title }\par
-    {\itshape\large \py@release \releaseinfo}\par
-    \vspace{25pt}
-    {\Large
-      \begin{tabular}[t]{c}
-        \@author
-      \end{tabular}}\par
-    \vspace{25pt}
-    \@date \par
-    \py@authoraddress \par
-  \end{flushright}
-  \@thanks
-  \setcounter{footnote}{0}
-  \let\thanks\relax\let\maketitle\relax
-  %\gdef\@thanks{}\gdef\@author{}\gdef\@title{}
-}
-
-\let\py@OldTableofcontents=\tableofcontents
-\renewcommand{\tableofcontents}{
-  \begingroup
-    \parskip = 0mm
-    \py@OldTableofcontents
-  \endgroup
-  \rule{\textwidth}{1pt}
-  \vspace{12pt}
-}  
-
-\@ifundefined{fancyhf}{
-  \pagestyle{plain}}{
-  \pagestyle{normal}}          % start this way; change for
-\pagenumbering{arabic}         % ToC & chapters
-
-\thispagestyle{empty}
-
-% Fix the bibliography environment to add an entry to the Table of
-% Contents.
-% For an article document class this environment is a section,
-% so no page break before it.
-\let\py@OldThebibliography=\thebibliography
-\renewcommand{\thebibliography}[1]{
-  \phantomsection
-  \py@OldThebibliography{1}
-  \addcontentsline{toc}{section}{\bibname}
-}
-
-% Same for the indices.
-% The memoir class already does this, so we don't duplicate it in that case.
-%
-\@ifclassloaded{memoir}{}{
-  \let\py@OldTheindex=\theindex
-  \renewcommand{\theindex}{
-    \phantomsection
-    \py@OldTheindex
-    \addcontentsline{toc}{section}{\indexname}
-  }
-}
diff --git a/doc/build/latex/sphinxmanual.cls b/doc/build/latex/sphinxmanual.cls
deleted file mode 100644 (file)
index f204494..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-%
-% sphinxmanual.cls for Sphinx (http://sphinx-doc.org/)
-%
-
-\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesClass{sphinxmanual}[2009/06/02 Document class (Sphinx manual)]
-
-\ifx\directlua\undefined\else
-% if compiling with lualatex 0.85 or later load compatibility patch issued by
-% the LaTeX team for older packages relying on \pdf<name> named primitives.
-    \IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
-\fi
-
-% chapters starting at odd pages (overridden by 'openany' document option)
-\PassOptionsToClass{openright}{\sphinxdocclass}
-
-% 'oneside' option overriding the 'twoside' default
-\newif\if@oneside
-\DeclareOption{oneside}{\@onesidetrue}
-% Pass remaining document options to the parent class.
-\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\sphinxdocclass}}
-\ProcessOptions\relax
-
-% Defaults two-side document
-\if@oneside
-% nothing to do (oneside is the default)
-\else
-\PassOptionsToClass{twoside}{\sphinxdocclass}
-\fi
-
-\LoadClass{\sphinxdocclass}
-
-% Set some sane defaults for section numbering depth and TOC depth.  You can
-% reset these counters in your preamble.
-%
-\setcounter{secnumdepth}{2}
-\setcounter{tocdepth}{1}
-
-% Change the title page to look a bit better, and fit in with the fncychap
-% ``Bjarne'' style a bit better.
-%
-\renewcommand{\maketitle}{%
-  \begin{titlepage}%
-    \let\footnotesize\small
-    \let\footnoterule\relax
-    \noindent\rule{\textwidth}{1pt}\ifsphinxpdfoutput\newline\null\fi\par
-    \ifsphinxpdfoutput
-      \begingroup
-      % These \defs are required to deal with multi-line authors; it
-      % changes \\ to ', ' (comma-space), making it pass muster for
-      % generating document info in the PDF file.
-      \def\\{, }%
-      \def\and{and }%
-      \pdfinfo{
-        /Author (\@author)
-        /Title (\@title)
-      }%
-      \endgroup
-    \fi
-    \begin{flushright}%
-      \sphinxlogo
-      \py@HeaderFamily
-      {\Huge \@title \par}
-      {\itshape\LARGE \py@release\releaseinfo \par}
-      \vfill
-      {\LARGE
-        \begin{tabular}[t]{c}
-          \@author
-        \end{tabular}
-        \par}
-      \vfill\vfill
-      {\large
-       \@date \par
-       \vfill
-       \py@authoraddress \par
-      }%
-    \end{flushright}%\par
-    \@thanks
-  \end{titlepage}%
-  \setcounter{footnote}{0}%
-  \let\thanks\relax\let\maketitle\relax
-  %\gdef\@thanks{}\gdef\@author{}\gdef\@title{}
-}
-
-\let\py@OldTableofcontents=\tableofcontents
-\renewcommand{\tableofcontents}{%
-  % before resetting page counter, let's do the right thing.
-  \if@openright\cleardoublepage\else\clearpage\fi
-  \pagenumbering{roman}%
-  \pagestyle{plain}%
-  \begingroup
-    \parskip \z@skip
-    \py@OldTableofcontents
-  \endgroup
-  % before resetting page counter, let's do the right thing.
-  \if@openright\cleardoublepage\else\clearpage\fi
-  \pagenumbering{arabic}%
-  \ifdefined\fancyhf\pagestyle{normal}\fi
-}
-\pagenumbering{alph}% avoid hyperref "duplicate destination" warnings
-
-% This is needed to get the width of the section # area wide enough in the
-% library reference.  Doing it here keeps it the same for all the manuals.
-%
-\renewcommand*\l@section{\@dottedtocline{1}{1.5em}{2.6em}}
-\renewcommand*\l@subsection{\@dottedtocline{2}{4.1em}{3.5em}}
-
-% Fix the bibliography environment to add an entry to the Table of
-% Contents.
-% For a report document class this environment is a chapter.
-\let\py@OldThebibliography=\thebibliography
-\renewcommand{\thebibliography}[1]{
-  \if@openright\cleardoublepage\else\clearpage\fi
-  \phantomsection
-  \py@OldThebibliography{1}
-  \addcontentsline{toc}{chapter}{\bibname}
-}
-
-% Same for the indices.
-% The memoir class already does this, so we don't duplicate it in that case.
-%
-\@ifclassloaded{memoir}{}{
-  \let\py@OldTheindex=\theindex
-  \renewcommand{\theindex}{
-    \if@openright\cleardoublepage\else\clearpage\fi
-    \phantomsection
-    \py@OldTheindex
-    \addcontentsline{toc}{chapter}{\indexname}
-  }
-}
diff --git a/doc/build/latex/tabulary.sty b/doc/build/latex/tabulary.sty
deleted file mode 100644 (file)
index 11fdf74..0000000
+++ /dev/null
@@ -1,452 +0,0 @@
-%%
-%% This is file `tabulary.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% tabulary.dtx  (with options: `package')
-%% DRAFT VERSION
-%%
-%% File `tabulary.dtx'.
-%% Copyright (C) 1995 1996 2003 2008 David Carlisle
-%% This file may be distributed under the terms of the LPPL.
-%% See 00readme.txt for details.
-%%
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{tabulary}
-          [2008/12/01 v0.9 tabulary package (DPC)]
-\RequirePackage{array}
-\catcode`\Z=14
-\DeclareOption{debugshow}{\catcode`\Z=9\relax}
-\ProcessOptions
-\def\arraybackslash{\let\\=\@arraycr}
-\def\@finalstrut#1{%
-  \unskip\ifhmode\nobreak\fi\vrule\@width\z@\@height\z@\@depth\dp#1}
-\newcount\TY@count
-\def\tabulary{%
-  \let\TY@final\tabular
-  \let\endTY@final\endtabular
-  \TY@tabular}
-\def\TY@tabular#1{%
-  \edef\TY@{\@currenvir}%
-  {\ifnum0=`}\fi
-  \@ovxx\TY@linewidth
-  \@ovyy\TY@tablewidth
-  \count@\z@
-  \@tempswatrue
-  \@whilesw\if@tempswa\fi{%
-  \advance\count@\@ne
-  \expandafter\ifx\csname TY@F\the\count@\endcsname\relax
-    \@tempswafalse
-  \else
-    \expandafter\let\csname TY@SF\the\count@\expandafter\endcsname
-                     \csname TY@F\the\count@\endcsname
-    \global\expandafter\let\csname TY@F\the\count@\endcsname\relax
-    \expandafter\let\csname TY@S\the\count@\expandafter\endcsname
-                     \csname TY@\the\count@\endcsname
-  \fi}%
-    \global\TY@count\@ne
-    \TY@width\xdef{0pt}%
-    \global\TY@tablewidth\z@
-    \global\TY@linewidth#1\relax
-Z\message{^^J^^JTable^^J%
-Z        Target Width: \the\TY@linewidth^^J%
-Z        \string\tabcolsep: \the\tabcolsep\space
-Z        \string\arrayrulewidth: \the\arrayrulewidth\space
-Z        \string\doublerulesep: \the\doublerulesep^^J%
-Z        \string\tymin: \the\tymin\space
-Z        \string\tymax: \the\tymax^^J}%
-    \let\@classz\TY@classz
-    \let\verb\TX@verb
-    \toks@{}\TY@get@body}
-\let\TY@@mkpream\@mkpream
-\def\TY@mkpream{%
-    \def\@addamp{%
-      \if@firstamp \@firstampfalse \else
-      \global\advance\TY@count\@ne
-      \edef\@preamble{\@preamble &}\fi
-      \TY@width\xdef{0pt}}%
-    \def\@acol{%
-      \TY@subwidth\col@sep
-      \@addtopreamble{\hskip\col@sep}}%
-    \let\@arrayrule\TY@arrayrule
-    \let\@classvi\TY@classvi
-    \def\@classv{\save@decl
-      \expandafter\NC@ecs\@nextchar\extracolsep{}\extracolsep\@@@
-      \sbox\z@{\d@llarbegin\@nextchar\d@llarend}%
-      \TY@subwidth{\wd\z@}%
-      \@addtopreamble{\d@llarbegin\the@toks\the\count@\relax\d@llarend}%
-      \prepnext@tok}%
-  \global\let\@mkpream\TY@@mkpream
-  \TY@@mkpream}
-\def\TY@arrayrule{%
-  \TY@subwidth\arrayrulewidth
-  \@addtopreamble \vline}
-\def\TY@classvi{\ifcase \@lastchclass
-  \@acol \or
-  \TY@subwidth\doublerulesep
-  \@addtopreamble{\hskip \doublerulesep}\or
-  \@acol \or
-  \@classvii
-  \fi}
-\def\TY@tab{%
-  \setbox\z@\hbox\bgroup
-  \let\[$\let\]$%
-  \let\equation$\let\endequation$%
-    \col@sep\tabcolsep
-    \let\d@llarbegin\begingroup\let\d@llarend\endgroup
-    \let\@mkpream\TY@mkpream
-      \def\multicolumn##1##2##3{\multispan##1\relax}%
-    \CT@start\TY@tabarray}
-\def\TY@tabarray{\@ifnextchar[{\TY@array}{\@array[t]}}
-\def\TY@array[#1]{\@array[t]}
-\def\TY@width#1{%
-  \expandafter#1\csname TY@\the\TY@count\endcsname}
-\def\TY@subwidth#1{%
-  \TY@width\dimen@
-  \advance\dimen@-#1\relax
-  \TY@width\xdef{\the\dimen@}%
-  \global\advance\TY@linewidth-#1\relax}
-\def\endtabulary{%
-  \gdef\@halignto{}%
-  \let\TY@footnote\footnote%
-  \def\footnote{}% prevent footnotes from doing anything
-  \expandafter\TY@tab\the\toks@
-  \crcr\omit
-  {\xdef\TY@save@row{}%
-     \loop
-    \advance\TY@count\m@ne
-    \ifnum\TY@count>\z@
-    \xdef\TY@save@row{\TY@save@row&\omit}%
-    \repeat}\TY@save@row
-  \endarray\global\setbox1=\lastbox\setbox0=\vbox{\unvbox1
-    \unskip\global\setbox1=\lastbox}\egroup
-  \dimen@\TY@linewidth
-  \divide\dimen@\TY@count
-  \ifdim\dimen@<\tymin
-    \TY@warn{tymin too large (\the\tymin), resetting to \the\dimen@}%
-    \tymin\dimen@
-  \fi
-  \setbox\tw@=\hbox{\unhbox\@ne
-    \loop
-\@tempdima=\lastskip
-\ifdim\@tempdima>\z@
-Z   \message{ecs=\the\@tempdima^^J}%
-   \global\advance\TY@linewidth-\@tempdima
-\fi
-    \unskip
-    \setbox\tw@=\lastbox
-    \ifhbox\tw@
-Z     \message{Col \the\TY@count: Initial=\the\wd\tw@\space}%
-      \ifdim\wd\tw@>\tymax
-        \wd\tw@\tymax
-Z       \message{> max\space}%
-Z     \else
-Z       \message{ \@spaces\space}%
-      \fi
-  \TY@width\dimen@
-Z \message{\the\dimen@\space}%
-  \advance\dimen@\wd\tw@
-Z \message{Final=\the\dimen@\space}%
-   \TY@width\xdef{\the\dimen@}%
-      \ifdim\dimen@<\tymin
-Z        \message{< tymin}%
-         \global\advance\TY@linewidth-\dimen@
-         \expandafter\xdef\csname TY@F\the\TY@count\endcsname
-                                                        {\the\dimen@}%
-       \else
-      \expandafter\ifx\csname TY@F\the\TY@count\endcsname\z@
-Z        \message{***}%
-         \global\advance\TY@linewidth-\dimen@
-         \expandafter\xdef\csname TY@F\the\TY@count\endcsname
-                                                        {\the\dimen@}%
-        \else
-Z        \message{> tymin}%
-         \global\advance\TY@tablewidth\dimen@
-         \global\expandafter\let\csname TY@F\the\TY@count\endcsname
-                                                               \maxdimen
-       \fi\fi
-       \advance\TY@count\m@ne
-    \repeat}%
-    \TY@checkmin
-    \TY@checkmin
-    \TY@checkmin
-    \TY@checkmin
-    \TY@count\z@
-    \let\TY@box\TY@box@v
-    \let\footnote\TY@footnote % restore footnotes
-  {\expandafter\TY@final\the\toks@\endTY@final}%
-  \count@\z@
-  \@tempswatrue
-  \@whilesw\if@tempswa\fi{%
-  \advance\count@\@ne
-  \expandafter\ifx\csname TY@SF\the\count@\endcsname\relax
-    \@tempswafalse
-  \else
-    \global\expandafter\let\csname TY@F\the\count@\expandafter\endcsname
-                   \csname TY@SF\the\count@\endcsname
-    \global\expandafter\let\csname TY@\the\count@\expandafter\endcsname
-                   \csname TY@S\the\count@\endcsname
-  \fi}%
-  \TY@linewidth\@ovxx
-  \TY@tablewidth\@ovyy
-    \ifnum0=`{\fi}}
-\def\TY@checkmin{%
-  \let\TY@checkmin\relax
-\ifdim\TY@tablewidth>\z@
-  \Gscale@div\TY@ratio\TY@linewidth\TY@tablewidth
- \ifdim\TY@tablewidth <\TY@linewidth
-   \def\TY@ratio{1}%
- \fi
-\else
-  \TY@warn{No suitable columns!}%
-  \def\TY@ratio{1}%
-\fi
-\count@\z@
-Z \message{^^JLine Width: \the\TY@linewidth,
-Z             Natural Width: \the\TY@tablewidth,
-Z             Ratio: \TY@ratio^^J}%
-\@tempdima\z@
-\loop
-\ifnum\count@<\TY@count
-\advance\count@\@ne
-  \ifdim\csname TY@F\the\count@\endcsname>\tymin
-    \dimen@\csname TY@\the\count@\endcsname
-    \dimen@\TY@ratio\dimen@
-    \ifdim\dimen@<\tymin
-Z     \message{Column \the\count@\space ->}%
-      \global\expandafter\let\csname TY@F\the\count@\endcsname\tymin
-      \global\advance\TY@linewidth-\tymin
-      \global\advance\TY@tablewidth-\csname TY@\the\count@\endcsname
-      \let\TY@checkmin\TY@@checkmin
-    \else
-      \expandafter\xdef\csname TY@F\the\count@\endcsname{\the\dimen@}%
-      \advance\@tempdima\csname TY@F\the\count@\endcsname
-    \fi
-  \fi
-Z \dimen@\csname TY@F\the\count@\endcsname\message{\the\dimen@, }%
-\repeat
-Z \message{^^JTotal:\the\@tempdima^^J}%
-}
-\let\TY@@checkmin\TY@checkmin
-\newdimen\TY@linewidth
-\def\tyformat{\everypar{{\nobreak\hskip\z@skip}}}
-\newdimen\tymin
-\tymin=10pt
-\newdimen\tymax
-\tymax=2\textwidth
-\def\@testpach{\@chclass
- \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else
-  \ifnum \@lastchclass=7 5 \else
-   \ifnum \@lastchclass=8 \tw@ \else
-    \ifnum \@lastchclass=9 \thr@@
-   \else \z@
-   \ifnum \@lastchclass = 10 \else
-   \edef\@nextchar{\expandafter\string\@nextchar}%
-   \@chnum
-   \if \@nextchar c\z@ \else
-    \if \@nextchar l\@ne \else
-     \if \@nextchar r\tw@ \else
-   \if \@nextchar C7 \else
-    \if \@nextchar L8 \else
-     \if \@nextchar R9 \else
-     \if \@nextchar J10 \else
-   \z@ \@chclass
-   \if\@nextchar |\@ne \else
-    \if \@nextchar !6 \else
-     \if \@nextchar @7 \else
-      \if \@nextchar <8 \else
-       \if \@nextchar >9 \else
-  10
-  \@chnum
-  \if \@nextchar m\thr@@\else
-   \if \@nextchar p4 \else
-    \if \@nextchar b5 \else
-   \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi\fi \fi \fi\fi \fi
-     \fi  \fi  \fi  \fi  \fi  \fi \fi \fi \fi \fi \fi}
-\def\TY@classz{%
-  \@classx
-  \@tempcnta\count@
-  \ifx\TY@box\TY@box@v
-    \global\advance\TY@count\@ne
-  \fi
-  \let\centering c%
-  \let\raggedright\noindent
-  \let\raggedleft\indent
-  \let\arraybackslash\relax
-  \prepnext@tok
-  \ifnum\@chnum<4
-    \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@
-  \fi
-  \ifnum\@chnum=6
-    \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@
-  \fi
-  \@addtopreamble{%
-    \ifcase\@chnum
-      \hfil \d@llarbegin\insert@column\d@llarend \hfil \or
-      \kern\z@
-       \d@llarbegin \insert@column \d@llarend \hfil \or
-      \hfil\kern\z@ \d@llarbegin \insert@column \d@llarend \or
-      $\vcenter\@startpbox{\@nextchar}\insert@column \@endpbox $\or
-      \vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or
-      \vbox \@startpbox{\@nextchar}\insert@column \@endpbox \or
-      \d@llarbegin \insert@column \d@llarend \or% dubious "s" case
-      \TY@box\centering\or
-      \TY@box\raggedright\or
-      \TY@box\raggedleft\or
-      \TY@box\relax
-    \fi}\prepnext@tok}
-\def\TY@box#1{%
-  \ifx\centering#1%
-      \hfil \d@llarbegin\insert@column\d@llarend \hfil \else
-  \ifx\raggedright#1%
-        \kern\z@%<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-      \d@llarbegin \insert@column \d@llarend \hfil \else
-  \ifx\raggedleft#1%
-      \hfil\kern\z@ \d@llarbegin \insert@column \d@llarend \else
-  \ifx\relax#1%
-       \d@llarbegin \insert@column \d@llarend
-  \fi  \fi  \fi  \fi}
-\def\TY@box@v#1{%
-      \vtop \@startpbox{\csname TY@F\the\TY@count\endcsname}%
-              #1\arraybackslash\tyformat
-                              \insert@column\@endpbox}
-\newdimen\TY@tablewidth
-\def\Gscale@div#1#2#3{%
-  \setlength\dimen@{#3}%
-  \ifdim\dimen@=\z@
-    \PackageError{graphics}{Division by 0}\@eha
-    \dimen@#2%
-  \fi
-  \edef\@tempd{\the\dimen@}%
-  \setlength\dimen@{#2}%
-  \count@65536\relax
-  \ifdim\dimen@<\z@
-    \dimen@-\dimen@
-    \count@-\count@
-  \fi
-  \loop
-    \ifdim\dimen@<8192\p@
-      \dimen@\tw@\dimen@
-      \divide\count@\tw@
-  \repeat
-  \dimen@ii=\@tempd\relax
-  \divide\dimen@ii\count@
-  \divide\dimen@\dimen@ii
-  \edef#1{\strip@pt\dimen@}}
-\long\def\TY@get@body#1\end
-  {\toks@\expandafter{\the\toks@#1}\TY@find@end}
-\def\TY@find@end#1{%
-  \def\@tempa{#1}%
-  \ifx\@tempa\TY@\def\@tempa{\end{#1}}\expandafter\@tempa
-  \else\toks@\expandafter
-    {\the\toks@\end{#1}}\expandafter\TY@get@body\fi}
-\def\TY@warn{%
-  \PackageWarning{tabulary}}
-\catcode`\Z=11
-\AtBeginDocument{
-\@ifpackageloaded{colortbl}{%
-\expandafter\def\expandafter\@mkpream\expandafter#\expandafter1%
-  \expandafter{%
-    \expandafter\let\expandafter\CT@setup\expandafter\relax
-    \expandafter\let\expandafter\CT@color\expandafter\relax
-    \expandafter\let\expandafter\CT@do@color\expandafter\relax
-    \expandafter\let\expandafter\color\expandafter\relax
-    \expandafter\let\expandafter\CT@column@color\expandafter\relax
-    \expandafter\let\expandafter\CT@row@color\expandafter\relax
-    \@mkpream{#1}}
-\let\TY@@mkpream\@mkpream
-\def\TY@classz{%
-  \@classx
-  \@tempcnta\count@
-  \ifx\TY@box\TY@box@v
-    \global\advance\TY@count\@ne
-  \fi
-  \let\centering c%
-  \let\raggedright\noindent
-  \let\raggedleft\indent
-  \let\arraybackslash\relax
-  \prepnext@tok
-\expandafter\CT@extract\the\toks\@tempcnta\columncolor!\@nil
-  \ifnum\@chnum<4
-    \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@
-  \fi
-  \ifnum\@chnum=6
-    \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@
-  \fi
-  \@addtopreamble{%
-    \setbox\z@\hbox\bgroup\bgroup
-    \ifcase\@chnum
-      \hskip\stretch{.5}\kern\z@
-      \d@llarbegin\insert@column\d@llarend\hskip\stretch{.5}\or
-      \kern\z@%<<<<<<<<<<<<<<<<<<<<<<<<<<<
-       \d@llarbegin \insert@column \d@llarend \hfill \or
-      \hfill\kern\z@ \d@llarbegin \insert@column \d@llarend \or
-      $\vcenter\@startpbox{\@nextchar}\insert@column \@endpbox $\or
-      \vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or
-      \vbox \@startpbox{\@nextchar}\insert@column \@endpbox \or
-      \d@llarbegin \insert@column \d@llarend \or% dubious s case
-      \TY@box\centering\or
-      \TY@box\raggedright\or
-      \TY@box\raggedleft\or
-      \TY@box\relax
-    \fi
- \egroup\egroup
-\begingroup
-  \CT@setup
-  \CT@column@color
-  \CT@row@color
-  \CT@do@color
-\endgroup
-        \@tempdima\ht\z@
-        \advance\@tempdima\minrowclearance
-        \vrule\@height\@tempdima\@width\z@
-\unhbox\z@
-}\prepnext@tok}%
-    \def\TY@arrayrule{%
-      \TY@subwidth\arrayrulewidth
-      \@addtopreamble{{\CT@arc@\vline}}}%
-    \def\TY@classvi{\ifcase \@lastchclass
-      \@acol \or
-      \TY@subwidth\doublerulesep
-      \ifx\CT@drsc@\relax
-        \@addtopreamble{\hskip\doublerulesep}%
-      \else
-        \@addtopreamble{{\CT@drsc@\vrule\@width\doublerulesep}}%
-      \fi\or
-      \@acol \or
-      \@classvii
-      \fi}%
-}{%
-\let\CT@start\relax
-}
-}
-{\uccode`\*=`\ %
-\uppercase{\gdef\TX@verb{%
-  \leavevmode\null\TX@vwarn
-  {\ifnum0=`}\fi\ttfamily\let\\\ignorespaces
-  \@ifstar{\let~*\TX@vb}{\TX@vb}}}}
-\def\TX@vb#1{\def\@tempa##1#1{\toks@{##1}\edef\@tempa{\the\toks@}%
-    \expandafter\TX@v\meaning\@tempa\\ \\\ifnum0=`{\fi}}\@tempa!}
-\def\TX@v#1!{\afterassignment\TX@vfirst\let\@tempa= }
-\begingroup
-\catcode`\*=\catcode`\#
-\catcode`\#=12
-\gdef\TX@vfirst{%
-  \if\@tempa#%
-    \def\@tempb{\TX@v@#}%
-  \else
-    \let\@tempb\TX@v@
-    \if\@tempa\space~\else\@tempa\fi
-  \fi
-  \@tempb}
-\gdef\TX@v@*1 *2{%
-  \TX@v@hash*1##\relax\if*2\\\else~\expandafter\TX@v@\fi*2}
-\gdef\TX@v@hash*1##*2{*1\ifx*2\relax\else#\expandafter\TX@v@hash\fi*2}
-\endgroup
-\def\TX@vwarn{%
-  \@warning{\noexpand\verb may be unreliable inside tabularx/y}%
-  \global\let\TX@vwarn\@empty}
-\endinput
-%%
-%% End of file `tabulary.sty'.
diff --git a/doc/src/apidoc_commands/commands.rst b/doc/src/apidoc_commands/commands.rst
new file mode 100644 (file)
index 0000000..d9a4c75
--- /dev/null
@@ -0,0 +1,222 @@
+commands package
+================
+
+Submodules
+----------
+
+commands.application module
+---------------------------
+
+.. automodule:: commands.application
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.check module
+---------------------
+
+.. automodule:: commands.check
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.clean module
+---------------------
+
+.. automodule:: commands.clean
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.compile module
+-----------------------
+
+.. automodule:: commands.compile
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.config module
+----------------------
+
+.. automodule:: commands.config
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.configure module
+-------------------------
+
+.. automodule:: commands.configure
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.environ module
+-----------------------
+
+.. automodule:: commands.environ
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.find_duplicates module
+-------------------------------
+
+.. automodule:: commands.find_duplicates
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.generate module
+------------------------
+
+.. automodule:: commands.generate
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.init module
+--------------------
+
+.. automodule:: commands.init
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.job module
+-------------------
+
+.. automodule:: commands.job
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.jobs module
+--------------------
+
+.. automodule:: commands.jobs
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.launcher module
+------------------------
+
+.. automodule:: commands.launcher
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.log module
+-------------------
+
+.. automodule:: commands.log
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.make module
+--------------------
+
+.. automodule:: commands.make
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.makeinstall module
+---------------------------
+
+.. automodule:: commands.makeinstall
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.package module
+-----------------------
+
+.. automodule:: commands.package
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.patch module
+---------------------
+
+.. automodule:: commands.patch
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.prepare module
+-----------------------
+
+.. automodule:: commands.prepare
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.profile module
+-----------------------
+
+.. automodule:: commands.profile
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.run module
+-------------------
+
+.. automodule:: commands.run
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.script module
+----------------------
+
+.. automodule:: commands.script
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.shell module
+---------------------
+
+.. automodule:: commands.shell
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.source module
+----------------------
+
+.. automodule:: commands.source
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.template module
+------------------------
+
+.. automodule:: commands.template
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+commands.test module
+--------------------
+
+.. automodule:: commands.test
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: commands
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/doc/src/apidoc_commands/modules.rst b/doc/src/apidoc_commands/modules.rst
new file mode 100644 (file)
index 0000000..6a11c3d
--- /dev/null
@@ -0,0 +1,7 @@
+commands
+========
+
+.. toctree::
+   :maxdepth: 4
+
+   commands
diff --git a/doc/src/apidoc_src/modules.rst b/doc/src/apidoc_src/modules.rst
new file mode 100644 (file)
index 0000000..e9ff8ac
--- /dev/null
@@ -0,0 +1,7 @@
+src
+===
+
+.. toctree::
+   :maxdepth: 4
+
+   src
diff --git a/doc/src/apidoc_src/src.colorama.rst b/doc/src/apidoc_src/src.colorama.rst
new file mode 100644 (file)
index 0000000..65cd0c2
--- /dev/null
@@ -0,0 +1,54 @@
+src.colorama package
+====================
+
+Submodules
+----------
+
+src.colorama.ansi module
+------------------------
+
+.. automodule:: src.colorama.ansi
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.colorama.ansitowin32 module
+-------------------------------
+
+.. automodule:: src.colorama.ansitowin32
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.colorama.initialise module
+------------------------------
+
+.. automodule:: src.colorama.initialise
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.colorama.win32 module
+-------------------------
+
+.. automodule:: src.colorama.win32
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.colorama.winterm module
+---------------------------
+
+.. automodule:: src.colorama.winterm
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: src.colorama
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/doc/src/apidoc_src/src.example.rst b/doc/src/apidoc_src/src.example.rst
new file mode 100644 (file)
index 0000000..1000632
--- /dev/null
@@ -0,0 +1,30 @@
+src.example package
+===================
+
+Submodules
+----------
+
+src.example.essai_logging_1 module
+----------------------------------
+
+.. automodule:: src.example.essai_logging_1
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.example.essai_logging_2 module
+----------------------------------
+
+.. automodule:: src.example.essai_logging_2
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: src.example
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/doc/src/apidoc_src/src.rst b/doc/src/apidoc_src/src.rst
new file mode 100644 (file)
index 0000000..fd0d004
--- /dev/null
@@ -0,0 +1,206 @@
+src package
+===========
+
+Subpackages
+-----------
+
+.. toctree::
+
+    src.colorama
+    src.example
+
+Submodules
+----------
+
+src.ElementTree module
+----------------------
+
+.. automodule:: src.ElementTree
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.architecture module
+-----------------------
+
+.. automodule:: src.architecture
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.catchAll module
+-------------------
+
+.. automodule:: src.catchAll
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.coloringSat module
+----------------------
+
+.. automodule:: src.coloringSat
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.compilation module
+----------------------
+
+.. automodule:: src.compilation
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.configManager module
+------------------------
+
+.. automodule:: src.configManager
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.debug module
+----------------
+
+.. automodule:: src.debug
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.environment module
+----------------------
+
+.. automodule:: src.environment
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.environs module
+-------------------
+
+.. automodule:: src.environs
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.exceptionSat module
+-----------------------
+
+.. automodule:: src.exceptionSat
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.fileEnviron module
+----------------------
+
+.. automodule:: src.fileEnviron
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.fork module
+---------------
+
+.. automodule:: src.fork
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.loggingSat module
+---------------------
+
+.. automodule:: src.loggingSat
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.options module
+------------------
+
+.. automodule:: src.options
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.product module
+------------------
+
+.. automodule:: src.product
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.pyconf module
+-----------------
+
+.. automodule:: src.pyconf
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.returnCode module
+---------------------
+
+.. automodule:: src.returnCode
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.salomeTools module
+----------------------
+
+.. automodule:: src.salomeTools
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.system module
+-----------------
+
+.. automodule:: src.system
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.template module
+-------------------
+
+.. automodule:: src.template
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.test_module module
+----------------------
+
+.. automodule:: src.test_module
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.utilsSat module
+-------------------
+
+.. automodule:: src.utilsSat
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+src.xmlManager module
+---------------------
+
+.. automodule:: src.xmlManager
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: src
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/doc/src/commands/apidoc/modules.rst b/doc/src/commands/apidoc/modules.rst
deleted file mode 100644 (file)
index e9ff8ac..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-src
-===
-
-.. toctree::
-   :maxdepth: 4
-
-   src
index 0025b6e5e7f34d55c7d68dd34d5093b54ed7b364..3016b642e4589cb2ac7eb743cdde88c19ba848ef 100644 (file)
@@ -17,7 +17,11 @@ import os
 # Append source folder to path in order to enable autodoc
 currentPath = os.path.dirname(__file__)
 print "sphinx on file", __file__
-sys.path.append(os.path.join(currentPath, '..', '..'))
+dirAutodoc = os.path.realpath(os.path.join(currentPath, '..', '..'))
+print "autodoc on dir", dirAutodoc 
+sys.path.append(dirAutodoc)
+sys.path.append(dirAutodoc + "/commands")
+
 
 # https://stackoverflow.com/questions/23462494/how-to-add-a-custom-css-file-to-sphinx
 # this needs realpath(custom), cause problem on relocated git clone, 
index 3428cdfc927d1a3f034aaed68e3fc5647ec2ff9e..11740aad552ac35f84823f253cf20eef4afffd28 100644 (file)
@@ -70,7 +70,8 @@ Code documentation
 .. toctree::
    :maxdepth: 1
 
-   SAT modules <commands/apidoc/modules.rst>
+   SAT src modules <apidoc_src/modules.rst>
+   SAT commands modules <apidoc_commands/modules.rst>
 
 
 Release Notes
index 406238023c65c529ae4b855b46f07b395679e7c2..f238fa24b6cd73b2ad8889c590bc246509287cb2 100644 (file)
 #  License along with this library; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 
-'''
-In this file : all the stuff that can change with the architecture 
+"""
+Contains all the stuff that can change with the architecture 
 on which SAT is running
-'''
+"""
 
 import os
 import sys
 import platform
 
 def is_windows():
-    '''method that checks windows OS
+    """Checks windows OS
       
-    :rtype: boolean
-    '''
+    :return: (bool) True if system is Windows
+    """
     return platform.system() == 'Windows'
 
 def get_user():
-    '''method that gets the username that launched sat  
+    """Gets the username that launched sat  
     
-    :rtype: str
-    '''
+    :return: (str) environ var USERNAME
+    """
     # In windows case, the USERNAME environment variable has to be set
     if is_windows():
         if not os.environ.has_key('USERNAME'):
@@ -47,12 +47,11 @@ def get_user():
         return pwd.getpwuid(os.getuid())[0]
 
 def _lsb_release(args):
-    '''Get system information with lsb_release.
+    """Get system information with lsb_release.
     
-    :param args str: The arguments to give to lsb_release.
-    :return: The distribution.
-    :rtype: str
-    '''
+    :param args: (str) The CLI arguments to give to lsb_release.
+    :return: (str) The distribution.
+    """
     try:
         path = '/usr/local/bin:/usr/bin:/bin'
         lsb_path = os.getenv("LSB_PATH")
@@ -73,13 +72,14 @@ def _lsb_release(args):
         sys.exit(-1)
 
 def get_distribution(codes):
-    '''Gets the code for the distribution
+    """Gets the code for the distribution
     
-    :param codes L{Mapping}: The map containing distribution correlation table.
-    :return: The distribution on which salomeTools is running, regarding the 
-             distribution correlation table contained in codes variable.
-    :rtype: str
-    '''
+    :param codes: (L{Mapping}) 
+      The map containing distribution correlation table.
+    :return: (str)
+      The distribution on which salomeTools is running, regarding the 
+      distribution correlation table contained in codes variable.
+    """
     if is_windows():
         return "Win"
 
@@ -97,15 +97,17 @@ def get_distribution(codes):
 
 
 def get_distrib_version(distrib, codes):
-    '''Gets the version of the distribution
+    """Gets the version of the distribution
     
-    :param distrib str: The distribution on which the version will be found.
-    :param codes L{Mapping}: The map containing distribution correlation table.
-    :return: The version of the distribution on which salomeTools is running, 
-             regarding the distribution correlation table contained in codes 
-             variable.
-    :rtype: str
-    '''
+    :param distrib: (str) 
+      The distribution on which the version will be found.
+    :param codes: (L{Mapping}) 
+      The map containing distribution correlation table.
+    :return: (str)
+      The version of the distribution on which 
+      salomeTools is running, regarding the distribution 
+      correlation table contained in codes variable.
+    """
 
     if is_windows():
         return platform.release()
@@ -121,22 +123,21 @@ def get_distrib_version(distrib, codes):
     return version
 
 def get_python_version():
-    '''Gets the version of the running python.
+    """Gets the version of the running python.
     
-    :return: the version of the running python.
-    :rtype: str
-    '''
+    :return: (str) The version of the running python.
+    """
     
     # The platform python module gives the answer
     return platform.python_version()
 
 def get_nb_proc():
-    '''Gets the number of processors of the machine 
-       on which salomeTools is running.
+    """
+    Gets the number of processors of the machine 
+    on which salomeTools is running.
     
-    :return: the number of processors.
-    :rtype: str
-    '''
+    :return: (str) The number of processors.
+    """
     
     try :
         import multiprocessing
index 898066c6585823696eeb8e4ecec0ce54d6f75348..92f2c054bb409b2e71cdc0094fbbff1d795b885c 100644 (file)
@@ -34,7 +34,8 @@ C_COMPILE_ENV_LIST = ["CC",
                       "LDFLAGS"]
 
 class Builder:
-    """Class to handle all construction steps, like cmake, configure, make, ...
+    """
+    Class to handle all construction steps, like cmake, configure, make, ...
     """
     def __init__(self,
                  config,
@@ -64,7 +65,7 @@ class Builder:
         self.log("> %s\n" % command, 5)
 
     def prepare(self):
-        """\
+        """
         Prepares the environment.
         Build two environment: one for building and one for testing (launch).
         """
@@ -469,16 +470,15 @@ CC=\\"hack_libtool\\"%g" libtool'''
         raise Exception(msg)
     
     def put_txt_log_in_appli_log_dir(self, file_name):
-        '''Put the txt log (that contain the system logs, like make command
-           output) in the directory <APPLICATION DIR>/LOGS/<product_name>/
+        """
+        Put the txt log (that contain the system logs, like make command output)
+        in the directory <APPLICATION DIR>/LOGS/<product_name>/
     
-        :param file_name Str: the name of the file to write
-        '''
+        :param file_name: (str) The name of the file to write
+        """
         if self.logger.logTxtFile == sys.__stdout__:
             return
-        dir_where_to_put = os.path.join(self.config.APPLICATION.workdir,
-                                        "LOGS",
-                                        self.product_info.name)
+        dir_where_to_put = os.path.join(self.config.APPLICATION.workdir, "LOGS", self.product_info.name)
         file_path = os.path.join(dir_where_to_put, file_name)
         UTS.ensure_path_exists(dir_where_to_put)
         # write the logTxtFile copy it to the destination, and then recreate 
index 4fba50ed376211bfaf17b92fafcf30ce5ecfb7a4..0fe3e8d31358f70fe1e48fca72348e196c90f64f 100644 (file)
@@ -35,10 +35,11 @@ class ConfigOpener:
     in all the possible directories (pathList)
     """
     def __init__(self, pathList):
-        '''Initialization
+        """Initialization
         
-        :param pathList list: The list of paths where to search a pyconf.
-        '''
+        :param pathList: (list) 
+          The list of paths where to search a pyconf.
+        """
         self.pathList = pathList
 
     def __call__(self, name):
@@ -49,17 +50,18 @@ class ConfigOpener:
                         open(os.path.join( self.get_path(name), name ), 'rb') )
         raise IOError(_("Configuration file '%s' not found") % name)
 
-    def get_path( self, name ):
-        '''The method that returns the entire path of the pyconf searched
-        :param name str: The name of the searched pyconf.
-        '''
+    def get_path( self, name):
+        """The method that returns the entire path of the pyconf searched
+        
+        :param name: (str) The name of the searched pyconf.
+        """
         for path in self.pathList:
             if os.path.exists(os.path.join(path, name)):
                 return path
         raise IOError(_("Configuration file '%s' not found") % name)
 
 class ConfigManager:
-    """\
+    """
     Class that manages the read of all the config .pyconf files of salomeTools
     """
     def __init__(self, runner):
@@ -68,15 +70,16 @@ class ConfigManager:
         self.datadir = None
 
     def _create_vars(self, application=None, command=None, datadir=None):
-        """\
+        """
         Create a dictionary that stores all information about machine,
         user, date, repositories, etc...
         
-        :param application str: The application for which salomeTools is called.
-        :param command str: The command that is called.
-        :param datadir str: The repository that contain external data for salomeTools.
-        :return: The dictionary that stores all information.
-        :rtype: dict
+        :param application: (str) 
+          The application for which salomeTools is called.
+        :param command: (str) The command that is called.
+        :param datadir: (str) 
+          The repository that contain external data for salomeTools.
+        :return: (dict) The dictionary that stores all information.
         """
         var = {}      
         var['user'] = ARCH.get_user()
@@ -154,14 +157,14 @@ class ConfigManager:
         return var
 
     def get_command_line_overrides(self, options, sections):
-        '''get all the overwrites that are in the command line
-        
-        :param options: the options from salomeTools class 
-                        initialization (like -l5 or --overwrite)
-        :param sections str: The config section to overwrite.
-        :return: The list of all the overwrites to apply.
-        :rtype: list
-        '''
+        """get all the overwrites that are in the command line
+        
+        :param options:
+          The options from salomeTools class initialization 
+          (as '-l5' or '--overwrite')
+        :param sections: (str) The config section to overwrite.
+        :return: (list) The list of all the overwrites to apply.
+        """
         # when there are no options or not the overwrite option, 
         # return an empty list
         if options is None or options.overwrite is None:
@@ -176,15 +179,17 @@ class ConfigManager:
 
     def get_config(self, application=None, options=None, command=None,
                     datadir=None):
-        """\
-        get the config from all the configuration files.
-        
-        :param application str: The application for which salomeTools is called.
-        :param options class Options: The general salomeTools options (--overwrite or -v5, for example)
-        :param command str: The command that is called.
-        :param datadir str: The repository that contain external data for salomeTools.
-        :return: The final config.
-        :rtype: class 'PYCONF.Config'
+        """get the config from all the configuration files.
+        
+        :param application: (str) 
+          The application for which salomeTools is called.
+        :param options: (Options) 
+          The general salomeTools options 
+          (as '--overwrite' or '-v5')
+        :param command: (str) The command that is called.
+        :param datadir: (str) 
+          The repository that contain external data for salomeTools.
+        :return: (Config) The final config.
         """        
         msgPb = _("Problem in configuration file: <red>%s\n<yellow>%s<reset>\n") # % (filename, exception)
         # create a ConfigMerger to handle merge
@@ -411,11 +416,12 @@ class ConfigManager:
         return cfg
 
     def set_user_config_file(self, config):
-        """\
+        """
         Set the user config file name and path.
         If necessary, build it from another one or create it from scratch.
         
-        :param config class 'PYCONF.Config': The global config (containing all pyconf).
+        :param config: (Config) 
+          The global config (containing all pyconf).
         """
         # get the expected name and path of the file
         self.config_file_name = 'SAT.pyconf'
@@ -427,13 +433,13 @@ class ConfigManager:
             self.create_config_file(config)
     
     def create_config_file(self, config):
-        """\
+        """
         This method is called when there are no user config file. 
         It build it from scratch.
         
-        :param config class 'PYCONF.Config': The global config.
-        :return: the config corresponding to the file created.
-        :rtype: config class 'PYCONF.Config'
+        :param config: (Config) The global config.
+        :return: (Config) 
+          The config corresponding to the file created.
         """
         
         cfg_name = self.get_user_config_file()
@@ -463,8 +469,7 @@ class ConfigManager:
     def get_user_config_file(self):
         """Get the user config file
         
-        :return: path to the user config file.
-        :rtype: str
+        :return: (str) path to the user config file.
         """
         if not self.user_config_file_path:
             raise Exception(_("get_user_config_file: missing user config file path"))
@@ -473,10 +478,10 @@ class ConfigManager:
 def check_path(path, ext=[]):
     """Construct a text with the input path and "not found" if it does not exist.
     
-    :param path Str: the path to check.
-    :param ext List: An extension. Verify that the path extension is in the list
-    :return: The string of the path with information
-    :rtype: Str
+    :param path: (str) The path to check.
+    :param ext: (list) 
+      An extension. Verify that the path extension is in the list
+    :return: (str) The string of the path with information
     """
     # check if file exists
     if not os.path.exists(path):
@@ -493,9 +498,9 @@ def check_path(path, ext=[]):
 def show_product_info(config, name, logger):
     """Display on the terminal and logger information about a product.
     
-    :param config Config: the global configuration.
-    :param name Str: The name of the product
-    :param logger Logger: The logger instance to use for the display
+    :param config: (Config) the global configuration.
+    :param name: (str) The name of the product
+    :param logger: (Logger) The logger instance to use for the display
     """
     
     def msgAdd(label, value):
@@ -595,8 +600,9 @@ def show_product_info(config, name, logger):
 def show_patchs(config, logger):
     """Prints all the used patchs in the application.
     
-    :param config Config: the global configuration.
-    :param logger Logger: The logger instance to use for the display
+    :param config: (Config) the global configuration.
+    :param logger: (Logger) 
+      The logger instance to use for the display
     """
     len_max = max([len(p) for p in config.APPLICATION.products]) + 2
     msg = ""
@@ -614,16 +620,18 @@ def show_patchs(config, logger):
     return
 
 def getConfigColored(config, path, stream, show_label=False, level=0, show_full_path=False):
-    """\
+    """
     Get a colored representation value from a config pyconf instance.
     used recursively from the initial path.
     
-    :param config class 'PYCONF.Config': The configuration from which the value is displayed.
-    :param path str: the path in the configuration of the value to print.
-    :param show_label boolean: if True, do a basic display. (useful for bash completion)
-    :param stream: the output stream used
-    :param level int: The number of spaces to add before display.
-    :param show_full_path: display full path, else relative
+    :param config: (Config) 
+      The configuration from which the value is displayed.
+    :param path: (str) The path in the configuration of the value to print.
+    :param show_label: (bool) 
+      If True, do a basic display. (useful for bash completion)
+    :param stream: The output stream used
+    :param level: (int) The number of spaces to add before display.
+    :param show_full_path: (bool) Display full path, else relative
     """           
     
     # Make sure that the path does not ends with a point
@@ -668,11 +676,11 @@ def getConfigColored(config, path, stream, show_label=False, level=0, show_full_
         stream.write("%s\n" % val)
         
 def print_value(config, path, logger, show_label=False, level=0, show_full_path=False):
-    """\
+    """
     print a colored representation value from a config pyconf instance.
     used recursively from the initial path.
     
-    :param see getConfigColored
+    :param: as getConfigColored
     """ 
     outStream = DBG.OutStream()
     getConfigColored(config, path, outStream, show_label, level, show_full_path)
@@ -682,7 +690,7 @@ def print_value(config, path, logger, show_label=False, level=0, show_full_path=
 
      
 def print_debug(config, aPath, logger, show_label=False, level=0, show_full_path=False):
-    """\
+    """
     logger output for debugging a config/pyconf
     lines contains: path : expression --> 'evaluation'
     
@@ -706,11 +714,11 @@ def print_debug(config, aPath, logger, show_label=False, level=0, show_full_path
 
 
 def get_config_children(config, args):
-    """\
+    """
     Gets the names of the children of the given parameter.
     Useful only for completion mechanism
     
-    :param config Config: The configuration where to read the values
+    :param config: (Config) The configuration where to read the values
     :param args: The path in the config from which get the keys
     """
     vals = []
@@ -744,7 +752,7 @@ def get_config_children(config, args):
 
 
 def _getConfig(self, appliToLoad):
-        """\
+        """
         Load the configuration (all pyconf)
         and returns the config from some files .pyconf
         """
@@ -815,15 +823,16 @@ Here is the error:""")
         return config
 
 def get_products_list(self, options, cfg, logger):
-        """\
+        """
         Gives the product list with their informations from 
         configuration regarding the passed options.
         
-        :param options Options: The Options instance that stores the commands arguments
-        :param config Config: The global configuration
-        :param logger Logger: The logger instance to use for the display and logging
-        :return: The list of (product name, product_informations).
-        :rtype: List
+        :param options: (Options) 
+          The Options instance that stores the commands arguments
+        :param config: (Config) The global configuration
+        :param logger: (Logger) 
+          The logger instance to use for the display and logging
+        :return: (list) The list of (product name, product_informations).
         """
         # Get the products to be prepared, regarding the options
         if options.products is None:
index 19a88abb4c7d24ccb78d5fbee6cbcd29060f46b0..3c4b63bc41462c781f7796b52707c0832ca37206 100644 (file)
@@ -24,33 +24,36 @@ import sys
 import src.pyconf as PYCONF
 
 class Environ:
-    '''Class to manage the environment context
-    '''
+    """
+    Class to manage an environment context
+    """
     def __init__(self, environ=None):
-        '''Initialization. If the environ argument is passed, the environment
-           will be add to it, else it is the external environment.
+        """
+        Initialization.
+        If the environ argument is passed, the environment
+        will be add to it, else it is the external environment.
            
-        :param environ dict:  
-        '''
+        :param environ: (dict) as os.environment
+        """
         if environ is not None:
             self.environ = environ
         else:
             self.environ = os.environ
 
     def __repr__(self):
-        """easy non exhaustive quick resume for debug print
+        """
+        easy non exhaustive quick resume for debug print
         """
         res={}
         res["environ"]=self.environ
         return self.__class__.__name__ + str(res)[0:-1] + " ...etc...}"
 
     def _expandvars(self, value):
-        '''replace some $VARIABLE into its actual value in the environment
+        """replace some $VARIABLE into its actual value in the environment
         
-        :param value str: the string to be replaced
-        :return: the replaced variable
-        :rtype: str
-        '''
+        :param value: (str) the string to be replaced
+        :return: (str) the replaced variable
+        """
         if "$" in value:
             # The string.Template class is a string class 
             # for supporting $-substitutions
@@ -63,12 +66,12 @@ class Environ:
         return value
 
     def append_value(self, key, value, sep=os.pathsep):
-        '''append value to key using sep
+        """append value to key using sep
         
-        :param key str: the environment variable to append
-        :param value str: the value to append to key
-        :param sep str: the separator string
-        '''
+        :param key: (str) the environment variable to append
+        :param value: (str) the value to append to key
+        :param sep: (str) the separator string (usually ':')
+        """
         # check if the key is already in the environment
         if key in self.environ:
             value_list = self.environ[key].split(sep)
@@ -82,12 +85,12 @@ class Environ:
             self.set(key, value)
 
     def append(self, key, value, sep=os.pathsep):
-        '''Same as append_value but the value argument can be a list
+        """Same as append_value but the value argument can be a list
         
-        :param key str: the environment variable to append
-        :param value str or list: the value(s) to append to key
-        :param sep str: the separator string
-        '''
+        :param key: (str) the environment variable to append
+        :param value: (str or list) the value(s) to append to key
+        :param sep: (str) the separator string (usually ':')
+        """
         if isinstance(value, list):
             for v in value:
                 self.append_value(key, v, sep)
@@ -95,12 +98,12 @@ class Environ:
             self.append_value(key, value, sep)
 
     def prepend_value(self, key, value, sep=os.pathsep):
-        '''prepend value to key using sep
+        """prepend value to key using sep
         
-        :param key str: the environment variable to prepend
-        :param value str: the value to prepend to key
-        :param sep str: the separator string
-        '''
+        :param key: (str) the environment variable to prepend
+        :param value: (str) the value to prepend to key
+        :param sep: (str) the separator string (usually ':')
+        """
         if key in self.environ:
             value_list = self.environ[key].split(sep)
             if not value in value_list:
@@ -112,12 +115,12 @@ class Environ:
             self.set(key, value)
 
     def prepend(self, key, value, sep=os.pathsep):
-        '''Same as prepend_value but the value argument can be a list
+        """Same as prepend_value but the value argument can be a list
         
-        :param key str: the environment variable to prepend
-        :param value str or list: the value(s) to prepend to key
-        :param sep str: the separator string
-        '''
+        :param key: (str) the environment variable to prepend
+        :param value: (str or list) the value(s) to prepend to key
+        :param sep: (str) the separator string (usually ':')
+        """
         if isinstance(value, list):
             for v in value:
                 self.prepend_value(key, v, sep)
@@ -125,37 +128,38 @@ class Environ:
             self.prepend_value(key, value, sep)
 
     def is_defined(self, key):
-        '''Check if the key exists in the environment
+        """Check if the key exists in the environment
         
-        :param key str: the environment variable to check
-        '''
+        :param key: (str) the environment variable to check
+        """
         return key in self.environ.keys()
 
     def set(self, key, value):
-        '''Set the environment variable "key" to value "value"
+        """Set the environment variable "key" to value "value"
         
-        :param key str: the environment variable to set
-        :param value str: the value
-        '''
+        :param key: (str) the environment variable to set
+        :param value: (str) the value
+        """
         self.environ[key] = self._expandvars(value)
 
     def get(self, key):
-        '''Get the value of the environment variable "key"
+        """Get the value of the environment variable "key"
         
-        :param key str: the environment variable
-        '''
+        :param key: (str) the environment variable
+        """
         if key in self.environ:
             return self.environ[key]
         else:
             return ""
 
     def command_value(self, key, command):
-        '''Get the value given by the system command "command" 
-           and put it in the environment variable key
+        """
+        Get the value given by the system command "command" 
+        and put it in the environment variable key
         
-        :param key str: the environment variable
-        :param command str: the command to execute
-        '''
+        :param key: (str) the environment variable
+        :param command: (str) the command to execute
+        """
         value = subprocess.Popen(command,
                                  shell=True,
                                  stdout=subprocess.PIPE,
@@ -164,25 +168,26 @@ class Environ:
 
 
 class SalomeEnviron:
-    """Class to manage the environment of SALOME.
     """
-
+    Class to manage the environment of SALOME.
+    """
     def __init__(self,
                  cfg,
                  environ,
                  forBuild=False,
                  for_package=None,
                  enable_simple_env_script = True):
-        '''Initialization.
-
-        :param cfg Config: the global config
-        :param environ Environ: the Environ instance where 
-                                to store the environment variables
-        :param forBuild bool: If true, it is a launch environment, 
-                              else a build one
-        :param for_package str: If not None, produce a relative environment 
-                                designed for a package. 
-        '''
+        """Initialization.
+
+        :param cfg: (Config) The global config
+        :param environ: (Environ) 
+          The Environ instance where to store the environment variables
+        :param forBuild: (bool) 
+          If true, it is a launch environment, else a build one
+        :param for_package: (str) 
+          If not None, produce a relative environment,
+          (designed for a package)
+        """
         self.environ = environ
         self.cfg = cfg
         self.forBuild = forBuild
@@ -198,43 +203,43 @@ class SalomeEnviron:
         return self.__class__.__name__ + str(res)[0:-1] + " ...etc...}"
 
     def append(self, key, value, sep=os.pathsep):
-        '''append value to key using sep
+        """append value to key using sep
         
-        :param key str: the environment variable to append
-        :param value str: the value to append to key
-        :param sep str: the separator string
-        '''
+        :param key: (str) the environment variable to append
+        :param value: (str) the value to append to key
+        :param sep: (str) the separator string
+        """
         return self.environ.append(key, value, sep)
 
     def prepend(self, key, value, sep=os.pathsep):
-        '''prepend value to key using sep
+        """prepend value to key using sep
         
-        :param key str: the environment variable to prepend
-        :param value str: the value to prepend to key
-        :param sep str: the separator string
-        '''
+        :param key: (str) the environment variable to prepend
+        :param value: (str) the value to prepend to key
+        :param sep: (str) the separator string
+        """
         return self.environ.prepend(key, value, sep)
 
     def is_defined(self, key):
-        '''Check if the key exists in the environment
+        """Check if the key exists in the environment
         
-        :param key str: the environment variable to check
-        '''
+        :param key: (str) the environment variable to check
+        """
         return self.environ.is_defined(key)
 
     def get(self, key):
-        '''Get the value of the environment variable "key"
+        """Get the value of the environment variable "key"
         
-        :param key str: the environment variable
-        '''
+        :param key: (str) the environment variable
+        """
         return self.environ.get(key)
 
     def set(self, key, value):
-        '''Set the environment variable "key" to value "value"
+        """Set the environment variable "key" to value "value"
         
-        :param key str: the environment variable to set
-        :param value str: the value
-        '''
+        :param key: (str) the environment variable to set
+        :param value: (str) the value
+        """
         # check if value needs to be evaluated
         if value is not None and value.startswith("`") and value.endswith("`"):
             res = subprocess.Popen("echo %s" % value,
@@ -247,7 +252,7 @@ class SalomeEnviron:
     def dump(self, out):
         """Write the environment to out
         
-        :param out file: the stream where to write the environment
+        :param out: (file) the stream where to write the environment
         """
         for k in self.environ.environ.keys():
             try:
@@ -259,7 +264,7 @@ class SalomeEnviron:
     def add_line(self, nb_line):
         """Add empty lines to the out stream (in case of file generation)
         
-        :param nb_line int: the number of empty lines to add
+        :param nb_line: (int) the number of empty lines to add
         """
         if 'add_line' in dir(self.environ):
             self.environ.add_line(nb_line)
@@ -267,7 +272,7 @@ class SalomeEnviron:
     def add_comment(self, comment):
         """Add a commentary to the out stream (in case of file generation)
         
-        :param comment str: the commentary to add
+        :param comment: (str) the commentary to add
         """
         if 'add_comment' in dir(self.environ):
             self.environ.add_comment(comment)
@@ -275,7 +280,7 @@ class SalomeEnviron:
     def add_warning(self, warning):
         """Add a warning to the out stream (in case of file generation)
         
-        :param warning str: the warning to add
+        :param warning: (str) the warning to add
         """
         if 'add_warning' in dir(self.environ):
             self.environ.add_warning(warning)
@@ -283,7 +288,7 @@ class SalomeEnviron:
     def finish(self, required):
         """Add a final instruction in the out file (in case of file generation)
         
-        :param required bool: Do nothing if required is False
+        :param required: (bool) Do nothing if required is False
         """
         if 'finish' in dir(self.environ):
             self.environ.add_line(1)
@@ -305,13 +310,13 @@ class SalomeEnviron:
         self.python_lib1 = self.get('PYTHON_LIBDIR1')
 
     def get_names(self, lProducts):
-        """\
+        """
         Get the products name to add in SALOME_MODULES environment variable
         It is the name of the product, except in the case where the is a 
         component name. And it has to be in SALOME_MODULES variable only 
         if the product has the property has_salome_hui = "yes"
         
-        :param lProducts list: List of products to potentially add
+        :param lProducts: (list) List of products to potentially add
         """
         lProdHasGui = [p for p in lProducts if 'properties' in 
             src.product.get_product_config(self.cfg, p) and
@@ -331,7 +336,7 @@ class SalomeEnviron:
     def set_application_env(self, logger):
         """Sets the environment defined in the APPLICATION file.
         
-        :param logger Logger: The logger instance to display messages
+        :param logger: (Logger) The logger instance to display messages
         """
         
         # Set the variables defined in the "environ" section
@@ -357,12 +362,12 @@ class SalomeEnviron:
                 self.add_line(1)       
 
     def set_salome_minimal_product_env(self, product_info, logger):
-        """\
+        """
         Sets the minimal environment for a SALOME product.
         xxx_ROOT_DIR and xxx_SRC_DIR
         
-        :param product_info Config: The product description
-        :param logger Logger: The logger instance to display messages        
+        :param product_info: (Config) The product description
+        :param logger: (Logger) The logger instance to display messages        
         """
         # set root dir
         root_dir = product_info.name + "_ROOT_DIR"
@@ -387,7 +392,7 @@ class SalomeEnviron:
     def set_salome_generic_product_env(self, pi):
         """Sets the generic environment for a SALOME product.
         
-        :param pi Config: The product description
+        :param pi: (Config) The product description
         """
         # Construct XXX_ROOT_DIR
         env_root_dir = self.get(pi.name + "_ROOT_DIR")
@@ -434,7 +439,7 @@ class SalomeEnviron:
     def set_cpp_env(self, product_info):
         """Sets the generic environment for a SALOME cpp product.
         
-        :param product_info Config: The product description
+        :param product_info: (Config) The product description
         """
         # Construct XXX_ROOT_DIR
         env_root_dir = self.get(product_info.name + "_ROOT_DIR")
@@ -463,7 +468,7 @@ class SalomeEnviron:
     def load_cfg_environment(self, cfg_env):
         """Loads environment defined in cfg_env 
         
-        :param cfg_env Config: A config containing an environment    
+        :param cfg_env: (Config) A config containing an environment    
         """
         # Loop on cfg_env values
         for env_def in cfg_env:
@@ -504,8 +509,8 @@ class SalomeEnviron:
     def set_a_product(self, product, logger):
         """Sets the environment of a product. 
         
-        :param product str: The product name
-        :param logger Logger: The logger instance to display messages
+        :param product: (str) The product name
+        :param logger: (Logger) The logger instance to display messages
         """
 
         # Get the informations corresponding to the product
@@ -578,12 +583,11 @@ class SalomeEnviron:
             
 
     def run_env_script(self, product_info, logger=None, native=False):
-        """\
-        Runs an environment script. 
+        """Runs an environment script. 
         
-        :param product_info Config: The product description
-        :param logger Logger: The logger instance to display messages
-        :param native Boolean: if True load set_native_env instead of set_env
+        :param product_info: (Config) The product description
+        :param logger: (Logger) The logger instance to display messages
+        :param native: (bool) If True load set_native_env instead of set_env
         """
         env_script = product_info.environ.env_script
         # Check that the script exists
@@ -611,11 +615,12 @@ class SalomeEnviron:
             traceback.print_exc()
 
     def run_simple_env_script(self, script_path, logger=None):
-        """Runs an environment script. Same as run_env_script, but with a 
-           script path as parameter.
+        """
+        Runs an environment script. Same as run_env_script, but with a 
+          script path as parameter.
         
-        :param script_path str: a path to an environment script
-        :param logger Logger: The logger instance to display messages
+        :param script_path: (str) A path to an environment script
+        :param logger: (Logger) The logger instance to display messages
         """
         if not self.enable_simple_env_script:
             return
@@ -646,8 +651,8 @@ class SalomeEnviron:
     def set_products(self, logger, src_root=None):
         """Sets the environment for all the products. 
         
-        :param logger Logger: The logger instance to display messages
-        :param src_root src: the application working directory
+        :param logger: (Logger) The logger instance to display messages
+        :param src_root: the application working directory
         """
         self.add_line(1)
         self.add_comment('setting environ for all products')
@@ -665,11 +670,12 @@ class SalomeEnviron:
             self.finish(False)
  
     def set_full_environ(self, logger, env_info):
-        """Sets the full environment for products 
-           specified in env_info dictionary. 
+        """
+        Sets the full environment for products 
+        specified in env_info dictionary. 
         
-        :param logger Logger: The logger instance to display messages
-        :param env_info list: the list of products
+        :param logger: (Logger) The logger instance to display messages
+        :param env_info: (list) the list of products
         """
         # set product environ
         self.set_application_env(logger)
@@ -681,16 +687,17 @@ class SalomeEnviron:
             self.set_a_product(product, logger)
 
 class FileEnvWriter:
-    """Class to dump the environment to a file.
+    """
+    Class to dump the environment to a file.
     """
     def __init__(self, config, logger, out_dir, src_root, env_info=None):
         """Initialization
 
-        :param cfg Config: the global config
-        :param logger Logger: The logger instance to display messages
-        :param out_dir str: The directory path where t put the output files
-        :param src_root str: The application working directory
-        :param env_info str: The list of products to add in the files.
+        :param cfg: (Config) the global config
+        :param logger: (Logger) The logger instance to display messages
+        :param out_dir: (str) The directory path where t put the output files
+        :param src_root: (str) The application working directory
+        :param env_info: (str) The list of products to add in the files.
         """
         self.config = config
         self.logger = logger
@@ -702,11 +709,10 @@ class FileEnvWriter:
     def write_env_file(self, filename, forBuild, shell, for_package = None):
         """Create an environment file.
         
-        :param filename str: the file path
-        :param forBuild bool: if true, the build environment
-        :param shell str: the type of file wanted (.sh, .bat)
-        :return: The path to the generated file
-        :rtype: str
+        :param filename: (str) the file path
+        :param forBuild: (bool) if true, the build environment
+        :param shell: (str) the type of file wanted (.sh, .bat)
+        :return: (str) The path to the generated file
         """
         if not self.silent:
             self.logger.info(_("Create environment file %s\n") % UTS.label(filename))
@@ -742,14 +748,16 @@ class FileEnvWriter:
                             additional_env = {},
                             for_package = None,
                             with_commercial = True):
-        """Append to current opened aFile a cfgForPy 
-           environment (SALOME python launcher).
+        """
+        Append to current opened aFile a cfgForPy 
+        environment (SALOME python launcher).
            
-        :param filename str: the file path
-        :param additional_env dict: a dictionary of additional variables 
-                                    to add to the environment
-        :param for_package str: If not None, produce a relative environment 
-                                designed for a package. 
+        :param filename: (str) the file path
+        :param additional_env: (dict) 
+          a dictionary of additional variables to add to the environment
+        :param for_package: (str) 
+          If not None, produce a relative environment 
+          (designed for a package) 
         """
         if not self.silent:
             self.logger.info(_("Create configuration file %s\n") % UTS.label(filename.name))
@@ -789,14 +797,14 @@ class FileEnvWriter:
         env.finish(True)
 
 class Shell:
-    """\
+    """
     Definition of a Shell.
     """
     def __init__(self, name, extension):
         """Initialization.
 
-        :param name str: the shell name
-        :param extension str: the shell extension
+        :param name: (str) the shell name
+        :param extension: (str) the shell extension
         """
         self.name = name
         self.extension = extension
@@ -804,9 +812,9 @@ class Shell:
 def load_environment(config, build, logger):
     """Loads the environment (used to run the tests, for example).
     
-    :param config Config: the global config
-    :param build bool: build environement if True
-    :param logger Logger: The logger instance to display messages
+    :param config: (Config) the global config
+    :param build: (bool) build environement if True
+    :param logger: (Logger) The logger instance to display messages
     """
     environ = SalomeEnviron(config, Environ(os.environ), build)
     environ.set_application_env(logger)
index dba733f74da3b0f119b87958ab8faefa77ad8737..9d01f5da90cf920e9f1898c9c635877aec1ec78a 100644 (file)
@@ -19,7 +19,8 @@
 
 
 class ExceptionSat(Exception):
-    '''rename Exception Class for sat convenience (for future...)
-    '''
+    """\
+    rename Exception Class for sat convenience (for future...)
+    """
     pass
 
index a641553aedf45d2ceb171f27762d391e8d1d4a29..7d462339ea273d5c19b034056a38b5ab2d85e3e9 100644 (file)
@@ -18,7 +18,8 @@
 
 import os
 
-bat_header="""@echo off
+bat_header="""\
+@echo off
 
 rem The following variables are used only in case of a sat package
 set out_dir_Path=%~dp0
@@ -28,7 +29,8 @@ set prereq_build_Path=%out_dir_Path%\PREREQUISITES\BUILD
 """
 
 
-bash_header="""#!/bin/bash
+bash_header="""\
+#!/bin/bash
 ##########################################################################
 #
 #### cleandup ###
@@ -74,18 +76,18 @@ export PRODUCT_ROOT_DIR=${PRODUCT_OUT_DIR}
 ###########################################################################
 """
 
-cfg_header='''[SALOME Configuration]
-'''
+cfg_header="""[SALOME Configuration]
+"""
 
-Launcher_header='''# a generated SALOME Configuration file using python syntax
-'''
+Launcher_header="""# a generated SALOME Configuration file using python syntax
+"""
 
 def get_file_environ(output, shell, environ=None):
     """Instantiate correct FileEnvironment sub-class.
     
-    :param output file: the output file stream.
-    :param shell str: the type of shell syntax to use.
-    :param environ dict: a potential additional environment.
+    :param output: (file) the output file stream.
+    :param shell: (str) the type of shell syntax to use.
+    :param environ: (dict) a potential additional environment.
     """
     if shell == "bash":
         return BashFileEnviron(output, environ)
@@ -98,21 +100,22 @@ def get_file_environ(output, shell, environ=None):
     raise Exception("FileEnviron: Unknown shell = %s" % shell)
 
 class FileEnviron:
-    """Base class for shell environment
+    """
+    Base class for shell environment
     """
     def __init__(self, output, environ=None):
         """Initialization
         
-        :param output file: the output file stream.
-        :param environ dict: a potential additional environment.
+        :param output: (file) the output file stream.
+        :param environ: (dict) a potential additional environment.
         """
         self._do_init(output, environ)
 
     def _do_init(self, output, environ=None):
         """Initialization
         
-        :param output file: the output file stream.
-        :param environ dict: a potential additional environment.
+        :param output: (file) the output file stream.
+        :param environ: (dict) a potential additional environment.
         """
         self.output = output
         self.toclean = []
@@ -124,156 +127,159 @@ class FileEnviron:
     def add_line(self, number):
         """Add some empty lines in the shell file
         
-        :param number int: the number of lines to add
+        :param number: (int) the number of lines to add
         """
         self.output.write("\n" * number)
 
     def add_comment(self, comment):
         """Add a comment in the shell file
         
-        :param comment str: the comment to add
+        :param comment: (str) the comment to add
         """
         self.output.write("# %s\n" % comment)
 
     def add_echo(self, text):
-        """Add a "echo" in the shell file
+        """Add a 'echo' in the shell file
         
-        :param text str: the text to echo
+        :param text: (str) the text to echo
         """
         self.output.write('echo %s"\n' % text)
 
     def add_warning(self, warning):
         """Add a warning "echo" in the shell file
         
-        :param warning str: the text to echo
+        :param warning: (str) the text to echo
         """
         self.output.write('echo "WARNING %s"\n' % warning)
 
     def append_value(self, key, value, sep=os.pathsep):
-        '''append value to key using sep
+        """append value to key using sep
         
-        :param key str: the environment variable to append
-        :param value str: the value to append to key
-        :param sep str: the separator string
-        '''
+        :param key: (str) the environment variable to append
+        :param value: (str) the value to append to key
+        :param sep: (str) the separator string
+        """
         self.set(key, self.get(key) + sep + value)
         if (key, sep) not in self.toclean:
             self.toclean.append((key, sep))
 
     def append(self, key, value, sep=os.pathsep):
-        '''Same as append_value but the value argument can be a list
+        """Same as append_value but the value argument can be a list
         
-        :param key str: the environment variable to append
-        :param value str or list: the value(s) to append to key
-        :param sep str: the separator string
-        '''
+        :param key: (str) the environment variable to append
+        :param value: (str or list) the value(s) to append to key
+        :param sep: (str) the separator string
+        """
         if isinstance(value, list):
             self.append_value(key, sep.join(value), sep)
         else:
             self.append_value(key, value, sep)
 
     def prepend_value(self, key, value, sep=os.pathsep):
-        '''prepend value to key using sep
+        """prepend value to key using sep
         
-        :param key str: the environment variable to prepend
-        :param value str: the value to prepend to key
-        :param sep str: the separator string
-        '''
+        :param key: (str) the environment variable to prepend
+        :param value: str) the value to prepend to key
+        :param sep: (str) the separator string
+        """
         self.set(key, value + sep + self.get(key))
         if (key, sep) not in self.toclean:
             self.toclean.append((key, sep))
 
     def prepend(self, key, value, sep=os.pathsep):
-        '''Same as prepend_value but the value argument can be a list
+        """Same as prepend_value but the value argument can be a list
         
-        :param key str: the environment variable to prepend
-        :param value str or list: the value(s) to prepend to key
-        :param sep str: the separator string
-        '''
+        :param key: (str) the environment variable to prepend
+        :param value: (str or list) the value(s) to prepend to key
+        :param sep: (str) the separator string
+        """
         if isinstance(value, list):
             self.prepend_value(key, sep.join(value), sep)
         else:
             self.prepend_value(key, value, sep)
 
     def is_defined(self, key):
-        '''Check if the key exists in the environment
+        """Check if the key exists in the environment
         
-        :param key str: the environment variable to check
-        '''
+        :param key: (str) the environment variable to check
+        """
         return (key in self.environ)
 
     def set(self, key, value):
-        '''Set the environment variable "key" to value "value"
+        """Set the environment variable "key" to value "value"
         
-        :param key str: the environment variable to set
-        :param value str: the value
-        '''
+        :param key: (str) the environment variable to set
+        :param value: (str) the value
+        """
         raise NotImplementedError("set is not implement for this shell!")
 
     def get(self, key):
-        '''Get the value of the environment variable "key"
+        """Get the value of the environment variable "key"
         
-        :param key str: the environment variable
-        '''
+        :param key: (str) the environment variable
+        """
         return '${%s}' % key
 
     def command_value(self, key, command):
-        '''Get the value given by the system command "command" 
-           and put it in the environment variable key.
-           Has to be overwritten in the derived classes
-           This can be seen as a virtual method
-        
-        :param key str: the environment variable
-        :param command str: the command to execute
-        '''
+        """
+        Get the value given by the system command "command" 
+        and put it in the environment variable key.
+        Has to be overwritten in the derived classes
+        This can be seen as a virtual method
+        
+        :param key: (str) the environment variable
+        :param command: (str) the command to execute
+        """
         raise NotImplementedError("command_value is not implement "
                                   "for this shell!")
 
     def finish(self, required=True):
         """Add a final instruction in the out file (in case of file generation)
         
-        :param required bool: Do nothing if required is False
+        :param required: (bool) Do nothing if required is False
         """
         for (key, sep) in self.toclean:
             if sep != ' ':
                 self.output.write('clean %s "%s"\n' % (key, sep))
 
 class BashFileEnviron(FileEnviron):
-    """Class for bash shell.
+    """
+    Class for bash shell.
     """
     def __init__(self, output, environ=None):
         """Initialization
         
-        :param output file: the output file stream.
-        :param environ dict: a potential additional environment.
+        :param output: (file) the output file stream.
+        :param environ: (dict) a potential additional environment.
         """
         self._do_init(output, environ)
         self.output.write(bash_header)
 
     def set(self, key, value):
-        '''Set the environment variable "key" to value "value"
+        """Set the environment variable "key" to value "value"
         
-        :param key str: the environment variable to set
-        :param value str: the value
-        '''
+        :param key: (str) the environment variable to set
+        :param value: (str) the value
+        """
         self.output.write('export %s="%s"\n' % (key, value))
         self.environ[key] = value
 
     def command_value(self, key, command):
-        '''Get the value given by the system command "command" 
-           and put it in the environment variable key.
-           Has to be overwritten in the derived classes
-           This can be seen as a virtual method
-        
-        :param key str: the environment variable
-        :param command str: the command to execute
-        '''
+        """
+        Get the value given by the system command "command" 
+        and put it in the environment variable key.
+        Has to be overwritten in the derived classes
+        This can be seen as a virtual method
+        
+        :param key: (str) the environment variable
+        :param command: (str) the command to execute
+        """
         self.output.write('export %s=$(%s)\n' % (key, command))
 
     def finish(self, required=True):
         """Add a final instruction in the out file (in case of file generation)
         
-        :param required bool: Do nothing if required is False
+        :param required: (bool) Do nothing if required is False
         """
         if not required:
             return
@@ -285,8 +291,8 @@ class BatFileEnviron(FileEnviron):
     def __init__(self, output, environ=None):
         """Initialization
         
-        :param output file: the output file stream.
-        :param environ dict: a potential additional environment.
+        :param output: (file) the output file stream.
+        :param environ: (dict) a potential additional environment.
         """
         self._do_init(output, environ)
         self.output.write(bat_header)
@@ -294,132 +300,137 @@ class BatFileEnviron(FileEnviron):
     def add_comment(self, comment):
         """Add a comment in the shell file
         
-        :param comment str: the comment to add
+        :param comment: (str) the comment to add
         """
         self.output.write("rem %s\n" % comment)
     
     def get(self, key):
-        '''Get the value of the environment variable "key"
+        """Get the value of the environment variable "key"
         
-        :param key str: the environment variable
-        '''
+        :param key: (str) the environment variable
+        """
         return '%%%s%%' % key
     
     def set(self, key, value):
-        '''Set the environment variable "key" to value "value"
+        """Set the environment variable "key" to value "value"
         
-        :param key str: the environment variable to set
-        :param value str: the value
-        '''
+        :param key: (str) the environment variable to set
+        :param value: (str) the value
+        """
         self.output.write('set %s=%s\n' % (key, value))
         self.environ[key] = value
 
     def command_value(self, key, command):
-        '''Get the value given by the system command "command" 
-           and put it in the environment variable key.
-           Has to be overwritten in the derived classes
-           This can be seen as a virtual method
-        
-        :param key str: the environment variable
-        :param command str: the command to execute
-        '''
+        """
+        Get the value given by the system command "command" 
+        and put it in the environment variable key.
+        Has to be overwritten in the derived classes
+        This can be seen as a virtual method
+        
+        :param key: (str) the environment variable
+        :param command: (str) the command to execute
+        """
         self.output.write('%s > tmp.txt\n' % (command))
         self.output.write('set /p %s =< tmp.txt\n' % (key))
 
     def finish(self, required=True):
-        """Add a final instruction in the out file (in case of file generation)
-           In the particular windows case, do nothing
+        """
+        Add a final instruction in the out file (in case of file generation)
+        In the particular windows case, do nothing
         
-        :param required bool: Do nothing if required is False
+        :param required: (bool) Do nothing if required is False
         """
         return
 
 class ContextFileEnviron(FileEnviron):
-    """Class for a salome context configuration file.
+    """
+    Class for a salome context configuration file.
     """
     def __init__(self, output, environ=None):
         """Initialization
         
-        :param output file: the output file stream.
-        :param environ dict: a potential additional environment.
+        :param output: (file) the output file stream.
+        :param environ: (dict) a potential additional environment.
         """
         self._do_init(output, environ)
         self.output.write(cfg_header)
 
     def set(self, key, value):
-        '''Set the environment variable "key" to value "value"
+        """Set the environment variable "key" to value "value"
         
-        :param key str: the environment variable to set
-        :param value str: the value
-        '''
+        :param key: (str) the environment variable to set
+        :param value: (str) the value
+        """
         self.output.write('%s="%s"\n' % (key, value))
         self.environ[key] = value
 
     def get(self, key):
-        '''Get the value of the environment variable "key"
+        """Get the value of the environment variable "key"
         
-        :param key str: the environment variable
-        '''
+        :param key: (str) the environment variable
+        """
         return '%({0})s'.format(key)
 
     def command_value(self, key, command):
-        '''Get the value given by the system command "command" 
-           and put it in the environment variable key.
-           Has to be overwritten in the derived classes
-           This can be seen as a virtual method
-        
-        :param key str: the environment variable
-        :param command str: the command to execute
-        '''
+        """
+        Get the value given by the system command "command" 
+        and put it in the environment variable key.
+        Has to be overwritten in the derived classes
+        This can be seen as a virtual method
+        
+        :param key: (str) the environment variable
+        :param command: (str) the command to execute
+        """
         raise NotImplementedError("command_value is not implement "
                                   "for salome context files!")
 
     def add_echo(self, text):
         """Add a comment
         
-        :param text str: the comment to add
+        :param text: (str) the comment to add
         """
         self.add_comment(text)
 
     def add_warning(self, warning):
         """Add a warning
         
-        :param text str: the warning to add
+        :param text: (str) the warning to add
         """
         self.add_comment("WARNING %s"  % warning)
 
     def prepend_value(self, key, value, sep=os.pathsep):
-        '''prepend value to key using sep
+        """prepend value to key using sep
         
-        :param key str: the environment variable to prepend
-        :param value str: the value to prepend to key
-        :param sep str: the separator string
-        '''
+        :param key: (str) the environment variable to prepend
+        :param value: (str) the value to prepend to key
+        :param sep: (str) the separator string
+        """
         self.output.write('ADD_TO_%s: %s\n' % (key, value))
 
     def append_value(self, key, value, sep=os.pathsep):
-        '''append value to key using sep
+        """append value to key using sep
         
-        :param key str: the environment variable to append
-        :param value str: the value to append to key
-        :param sep str: the separator string
-        '''
+        :param key: (str) the environment variable to append
+        :param value: (str) the value to append to key
+        :param sep: (str) the separator string
+        """
         self.prepend_value(key, value)
 
     def finish(self, required=True):
         """Add a final instruction in the out file (in case of file generation)
         
-        :param required bool: Do nothing if required is False
+        :param required: (bool) Do nothing if required is False
         """
         return
 
 def special_path_separator(name):
-    """TCLLIBPATH, TKLIBPATH, PV_PLUGIN_PATH environments variables need
-       some exotic path separator.
-       This function gives the separator regarding the name of the variable
-       to append or prepend.
+    """
+    TCLLIBPATH, TKLIBPATH, PV_PLUGIN_PATH environments variables 
+    need some exotic path separator.
+    This function gives the separator regarding the name of the variable
+    to append or prepend.
        
-    :param name str: The name of the variable to find the separator
+    :param name: (str) The name of the variable to find the separator
     """
     special_blanks_keys=["TCLLIBPATH", "TKLIBPATH"]
     special_semicolon_keys=["PV_PLUGIN_PATH"]
@@ -429,14 +440,15 @@ def special_path_separator(name):
     return res
 
 class LauncherFileEnviron:
-    """Class to generate a launcher file script 
-       (in python syntax) SalomeContext API
+    """
+    Class to generate a launcher file script 
+    (in python syntax) SalomeContext API
     """
     def __init__(self, output, environ=None):
         """Initialization
         
-        :param output file: the output file stream.
-        :param environ dict: a potential additional environment.
+        :param output: (file) the output file stream.
+        :param environ: (dict) a potential additional environment.
         """
         self.output = output
         self.toclean = []
@@ -469,6 +481,7 @@ class LauncherFileEnviron:
 
     def change_to_launcher(self, value):
         """
+        obsolete? do nothing
         """
         res=value
         return res
@@ -476,103 +489,103 @@ class LauncherFileEnviron:
     def add_line(self, number):
         """Add some empty lines in the launcher file
         
-        :param number int: the number of lines to add
+        :param number: (int) the number of lines to add
         """
         self.output.write("\n" * number)
 
     def add_echo(self, text):
         """Add a comment
         
-        :param text str: the comment to add
+        :param text: (str) the comment to add
         """
         self.output.write('# %s"\n' % text)
 
     def add_warning(self, warning):
         """Add a warning
         
-        :param text str: the warning to add
+        :param text: (str) the warning to add
         """
         self.output.write('# "WARNING %s"\n' % warning)
 
     def append_value(self, key, value, sep=":"):
-        '''append value to key using sep
+        """append value to key using sep
         
-        :param key str: the environment variable to append
-        :param value str: the value to append to key
-        :param sep str: the separator string
-        '''
+        :param key: (str) the environment variable to append
+        :param value: (str) the value to append to key
+        :param sep: (str) the separator string
+        """
         if self.is_defined(key) :
             self.add(key, value)
         else :
             self.set(key, value)
 
     def append(self, key, value, sep=":"):
-        '''Same as append_value but the value argument can be a list
+        """Same as append_value but the value argument can be a list
         
-        :param key str: the environment variable to append
-        :param value str or list: the value(s) to append to key
-        :param sep str: the separator string
-        '''
+        :param key: (str) the environment variable to append
+        :param value: (str or list) the value(s) to append to key
+        :param sep: (str) the separator string
+        """
         if isinstance(value, list):
             self.append_value(key, sep.join(value), sep)
         else:
             self.append_value(key, value, sep)
 
     def prepend_value(self, key, value, sep=":"):
-        '''prepend value to key using sep
+        """prepend value to key using sep
         
-        :param key str: the environment variable to prepend
-        :param value str: the value to prepend to key
-        :param sep str: the separator string
-        '''
+        :param key: (str) the environment variable to prepend
+        :param value: (str) the value to prepend to key
+        :param sep: (str) the separator string
+        """
         if self.is_defined(key) :
             self.add(key, value)
         else :
             self.set(key, value)
 
     def prepend(self, key, value, sep=":"):
-        '''Same as prepend_value but the value argument can be a list
+        """Same as prepend_value but the value argument can be a list
         
-        :param key str: the environment variable to prepend
-        :param value str or list: the value(s) to prepend to key
-        :param sep str: the separator string
-        '''
+        :param key: (str) the environment variable to prepend
+        :param value: (str or list) the value(s) to prepend to key
+        :param sep: (str) the separator string
+        """
         if isinstance(value, list):
             self.prepend_value(key, sep.join(value), sep)
         else:
             self.prepend_value(key, value, sep)
 
     def is_defined(self, key):
-        '''Check if the key exists in the environment
+        """Check if the key exists in the environment
         
-        :param key str: the environment variable to check
-        '''
+        :param key: (str) the environment variable to check
+        """
         return key in self.environ.keys()
 
     def get(self, key):
-        '''Get the value of the environment variable "key"
+        """Get the value of the environment variable "key"
         
-        :param key str: the environment variable
-        '''
+        :param key: (str) the environment variable
+        """
         return '${%s}' % key
 
     def set(self, key, value):
-        '''Set the environment variable "key" to value "value"
+        """Set the environment variable "key" to value "value"
         
-        :param key str: the environment variable to set
-        :param value str: the value
-        '''
+        :param key: (str) the environment variable to set
+        :param value: (str) the value
+        """
         self.output.write(self.begin+self.setVarEnv+
                           '(r"%s", r"%s", overwrite=True)\n' % 
                           (key, self.change_to_launcher(value)))
         self.environ[key] = value
     
     def add(self, key, value):
-        '''prepend value to key using sep
+        """prepend value to key using sep
         
-        :param key str: the environment variable to prepend
-        :param value str: the value to prepend to key
-        '''     
+        :param key: (str) the environment variable to prepend
+        :param value: (str) the value to prepend to key
+        """     
         if key in self.specialKeys.keys():
             self.output.write(self.begin+'addTo%s(r"%s")\n' % 
                               (self.specialKeys[key],
@@ -590,12 +603,13 @@ class LauncherFileEnviron:
         self.environ[key]+=sep+value #here yes we know os for current execution
 
     def command_value(self, key, command):
-        '''Get the value given by the system command "command" 
-           and put it in the environment variable key.
+        """
+        Get the value given by the system command "command" 
+        and put it in the environment variable key.
         
-        :param key str: the environment variable
-        :param command str: the command to execute
-        '''
+        :param key: (str) the environment variable
+        :param command: (str) the command to execute
+        """
         self.output.write(self.indent+'#`%s`\n' % command)
 
         import shlex, subprocess
@@ -634,10 +648,11 @@ class LauncherFileEnviron:
         self.output.write(self.indent+"# %s\n" % comment)
 
     def finish(self, required=True):
-        """Add a final instruction in the out file (in case of file generation)
-           In the particular launcher case, do nothing
+        """
+        Add a final instruction in the out file (in case of file generation)
+        In the particular launcher case, do nothing
         
-        :param required bool: Do nothing if required is False
+        :param required: (bool) Do nothing if required is False
         """
         return
 
@@ -694,7 +709,8 @@ class ScreenEnviron(FileEnviron):
         self.write("load", script, "", sign="")
 
 # The SALOME launcher template 
-withProfile =  """#! /usr/bin/env python
+withProfile =  """\
+#! /usr/bin/env python
 
 ################################################################
 # WARNING: this file is automatically generated by SalomeTools #
index d19b9a488da269ae533c5436c3d85bec58f3059a..7a24f1e7e9afd5424cef83313aa8133a4ff6de38 100644 (file)
@@ -26,10 +26,10 @@ import subprocess
 def show_progress(logger, top, delai, ss=""):
     """shortcut function to display the progression
     
-    :param logger Logger: The logging instance
-    :param top int: the number to display
-    :param delai int: the number max
-    :param ss str: the string to display
+    :param logger: (Logger) The logging instance
+    :param top: (int) the number to display
+    :param delai: (int) the number max
+    :param ss: (str) the string to display
     """
     logger.info("\r%s\r%s %s / %s " % ((" " * 30), ss, top, (delai - top)))
 
@@ -37,9 +37,9 @@ def show_progress(logger, top, delai, ss=""):
 def write_back(logger, message):
     """shortcut function to write at the begin of the line
     
-    :param logger Logger: The logging instance
-    :param message str: the text to display
-    :param level int: the level of verbosity
+    :param logger: (Logger) The logging instance
+    :param message: (str) the text to display
+    :param level: (int) the level of verbosity
     """
     logger.info("\r%s\r%s" % ((" " * 40), message))
 
index 57395bbb7da0363fd11a0bbc7cc87e7fb43334eb..ea4bb0f37834cfab80cc0ddee596d2fb2595435b 100644 (file)
@@ -16,7 +16,7 @@
 #  License along with this library; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 
-"""\
+"""
 The Options class that manages the access to all options passed as 
 parameters in salomeTools command lines
 """
@@ -35,36 +35,37 @@ class OptResult(object):
     The aim of this class is to have an elegant syntax to manipulate the options.
     
     example: 
-      >> print(options.level)
-      >> 5
+    >> print(options.level)
+    >> 5
     """
     def __init__(self):
-        '''Initialization
-        '''
+        """Initialization
+        """
         self.__dict__ = dict()
 
     def __getattr__(self, name):
-        '''Overwrite of the __getattr__ function 
-           to customize it for option usage
+        """
+        Overwrite of the __getattr__ function 
+        to customize it for option usage
         
-        :param name str: The attribute to get the value.
-        :return: the value corresponding to the attribute.
-        :rtype: str,int,list,boolean,level
-        '''
+        :param name: (str) The attribute to get the value.
+        :return: (str int list boolean level)
+          the value corresponding to the attribute.
+        """
         if name in self.__dict__:
             return self.__dict__[name]
         else:
             raise AttributeError("--" + name + _(u" is not a valid option"))
 
     def __setattr__(self, name, value):
-        '''Overwrite of the __setattr__ function 
-           to customize it for option usage
+        """
+        Overwrite of the __setattr__ function 
+        to customize it for option usage
         
-        :param name str: The attribute to set.
-        :param value str: The value  corresponding to the attribute.
-        :return: Nothing.
-        :rtype: N\A
-        '''
+        :param name: (str) The attribute to set.
+        :param value: (str) The value  corresponding to the attribute.
+        :return: None
+        """
         object.__setattr__(self, name, value)
 
     def __repr__(self):
@@ -73,11 +74,13 @@ class OptResult(object):
         return res
 
 class Options(object):
-    '''Class to manage all salomeTools options
-    '''
+    """
+    Class to manage all salomeTools options
+    """
     def __init__(self):
-        '''Initialization
-        '''
+        """
+        Initialization
+        """
         # The options field stocks all options of a command 
         # in a list that contains dicts
         self.options = []
@@ -88,20 +91,22 @@ class Options(object):
 
     def add_option(self, shortName, longName,
                     optionType, destName, helpString="", default = None):
-        '''Method to add an option to a command. It gets all attributes
-           of an option and append it in the options field
+        """
+        Add an option to a command. It gets all attributes
+        of an option and append it in the options field
         
-        :param shortName str: The short name of the option
-                              (ex "l" for level option).
-        :param longName str: The long name of the option 
-                             (ex "level" for level option).
-        :param optionType str: The type of the option (ex "int").
-        :param destName str: The name that will be used in the code.
-        :param helpString str: The text to display 
-                               when user ask for help on a command.     
-        :return: Nothing.
-        :rtype: N\A
-        '''
+        :param shortName: (str) 
+          The short name of the option
+          (as '-l' for level option).
+        :param longName: (str) 
+          The long name of the option 
+          (as '--level' for level option).
+        :param optionType: (str) The type of the option (ex "int").
+        :param destName: (str) The name that will be used in the code.
+        :param helpString: (str) 
+          The text to display when user ask for help on a command.     
+        :return: None
+        """
         tmp = [o['shortName'] for o in self.options if o['shortName'] != '']
         if shortName in tmp: 
           raise Exception("option '-%s' existing yet" % shortName)
@@ -125,8 +130,10 @@ class Options(object):
         self.options.append(option)
         
     def getDetailOption(self, option):
-        """for convenience 
-        returns (shortName, longName, optionType, helpString')
+        """
+        for convenience 
+        
+        :return: (tuple) 4-elements (shortName, longName, optionType, helpString)
         """
         oos = option['shortName']
         ool = option['longName']
@@ -136,12 +143,12 @@ class Options(object):
 
 
     def get_help(self):
-        '''Method that returns all options stored in self.options 
+        """
+        Returns all options stored in self.options 
         as help message colored string
         
-        :return: colored string
-        :rtype: N\A
-        '''
+        :return: (str) colored string
+        """
         msg = ""
         # Do nothing if there are no options
         if len(self.options) == 0:
@@ -167,15 +174,15 @@ class Options(object):
                
 
     def parse_args(self, argList=None):
-        '''Method that instantiates the class OptResult 
-           that gives access to all options in the code
+        """
+        Instantiates the class OptResult 
+        that gives access to all options in the code
         
-        :param argList list: the raw list of arguments that were passed
-        :return: optResult, args : optResult is the option instance 
-                                   to manipulate in the code. args 
-                                   is the full raw list of passed options 
-        :rtype: (class 'common.options.OptResult',list)
-        '''
+        :param argList: (list) the raw list of arguments that were passed
+        :return: (OptResult, list) as (optResult, args) 
+          optResult is the option instance to manipulate in the code. 
+          args is the full raw list of passed options 
+        """
         # see https://pymotw.com/2/getopt/
         if argList is None:
             argList = sys.argv[1:]
@@ -249,16 +256,18 @@ class Options(object):
         return optResult, args
 
     def __repr__(self): 
-        '''repr for only self.options and self.results (if present)
-        '''
+        """
+        repr for only self.options and self.results (if present)
+        """
         aDict = {'options': self.options, 'results': self.results}
         aStr = PP.pformat(aDict)
         res = "%s(\n %s\n)" % (self.__class__.__name__, aStr[1:-1])
         return res
         
     def __str__(self): 
-        '''str for only resume expected self.options
-        '''
+        """
+        str for only resume expected self.options
+        """
         #aDict = [(k["longName"], k["shortName", k["helpString"]) for k in self.options}
         #aList = [(k, self.options[k]) for k in sorted(self.options.keys())]
         aDict = {}
index c2919669251faf8030777281cc3a3dde40e3a21c..cf419caffe33becc2e5a489d8aa28646019bb773 100644 (file)
 #  You should have received a copy of the GNU Lesser General Public
 #  License along with this library; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-'''In this file are implemented the methods 
-   relative to the product notion of salomeTools
-'''
+
+"""\
+Contains the methods 
+relative to the product notion of salomeTools
+"""
 
 import os
 import re
@@ -30,16 +32,15 @@ config_expression = "^config-\d+$"
 VERSION_DELIMITER = "_to_"
 
 def get_product_config(config, product_name, with_install_dir=True):
-    """\
+    """
     Get the specific configuration of a product from the global configuration
     
-    :param config Config: The global configuration
-    :param product_name str: The name of the product
-    :param with_install_dir boolean: If false, do not provide an install 
-                                     directory (at false only for internal use 
-                                     of the function check_config_exists)
-    :return: the specific configuration of the product
-    :rtype: Config
+    :param config: (Config) The global configuration
+    :param product_name: (str) The name of the product
+    :param with_install_dir: (boolean)
+      If false, do not provide an install directory 
+      (at false only for internal use of the function check_config_exists)
+    :return: (Config) The specific configuration of the product
     """
     
     # Get the version of the product from the application definition
@@ -279,16 +280,16 @@ Please provide a 'compil_script' key in its definition.""") % product_name
     return prod_info
 
 def get_product_section(config, product_name, version, section=None):
-    '''Get the product description from the configuration
-    
-    :param config Config: The global configuration
-    :param product_name str: The product name
-    :param version str: The version of the product
-    :param section str: The searched section (if not None, the section is 
-                        explicitly given
-    :return: The product description
-    :rtype: Config
-    '''
+    """Get the product description from the configuration
+    
+    :param config: (Config) The global configuration
+    :param product_name: (str) The product name
+    :param version: (str) The version of the product
+    :param section: (str) 
+      The searched section
+      (if not None, the section is explicitly given)
+    :return: (Config) The product description
+    """
 
     # if section is not None, try to get the corresponding section
     if section:
@@ -334,15 +335,18 @@ def get_product_section(config, product_name, version, section=None):
     return None
     
 def get_install_dir(config, base, version, prod_info):
-    """\
+    """
     Compute the installation directory of a given product 
     
-    :param config Config: The global configuration
-    :param base str: This corresponds to the value given by user in its application.pyconf for the specific product. If "yes", the user wants the product to be in base. If "no", he wants the product to be in the application workdir
-    :param version str: The version of the product
-    :param product_info Config: The configuration specific to the product
-    :return: The path of the product installation
-    :rtype: str
+    :param config: (Config) The global configuration
+    :param base: (str) 
+      This corresponds to the value given by user in its application.pyconf 
+      for the specific product. 
+      If "yes", the user wants the product to be in base. 
+      If "no", he wants the product to be in the application workdir
+    :param version: (str) The version of the product
+    :param product_info: (Config) The configuration specific to the product
+    :return: (str) The path of the product installation
     """
     install_dir = ""
     in_base = False
@@ -367,15 +371,14 @@ def get_install_dir(config, base, version, prod_info):
     return install_dir
 
 def get_base_install_dir(config, prod_info, version):
-    '''Compute the installation directory of a product in base 
-    
-    :param config Config: The global configuration
-    :param product_info Config: The configuration specific to 
-                               the product
-    :param version str: The version of the product    
-    :return: The path of the product installation
-    :rtype: str
-    '''    
+    """Compute the installation directory of a product in base 
+    
+    :param config: (Config) The global configuration
+    :param product_info: (Config) 
+      The configuration specific to the product
+    :param version: (str) The version of the product    
+    :return: (str) The path of the product installation
+    """    
     base_path = src.get_base_path(config) 
     prod_dir = os.path.join(base_path, prod_info.name + "-" + version)
     if not os.path.exists(prod_dir):
@@ -399,19 +402,21 @@ def get_base_install_dir(config, prod_info, version):
     return install_dir
 
 def check_config_exists(config, prod_dir, prod_info):
-    '''Verify that the installation directory of a product in a base exists
-       Check all the config-<i> directory and verify the sat-config.pyconf file
-       that is in it 
-    
-    :param config Config: The global configuration
-    :param prod_dir str: The product installation directory path 
-                         (without config-<i>)
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True or false is the installation is found or not 
-             and if it is found, the path of the found installation
-    :rtype: (boolean, str)
-    '''   
+    """
+    Verify that the installation directory of a product in a base exists
+    Check all the config-<i> directory and verify the sat-config.pyconf file
+    that is in it 
+    
+    :param config: (Config) The global configuration
+    :param prod_dir: (str) 
+      The product installation directory path 
+      (without config-<i>)
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (tuple) as (boolean, str)
+      True or false is the installation is found or not 
+      and if it is found, the path of the found installation
+    """   
     # check if the directories or files of the directory corresponds to the 
     # directory installation of the product
     l_dir_and_files = os.listdir(prod_dir)
@@ -464,14 +469,13 @@ def check_config_exists(config, prod_dir, prod_info):
             
     
 def get_products_infos(lproducts, config):
-    '''Get the specific configuration of a list of products
-    
-    :param lproducts List: The list of product names
-    :param config Config: The global configuration
-    :return: the list of tuples 
-             (product name, specific configuration of the product)
-    :rtype: [(str, Config)]
-    '''
+    """Get the specific configuration of a list of products
+    
+    :param lproducts: (list) The list of product names
+    :param config: (Config) The global configuration
+    :return: (list) of tuples (str, Config)
+      as (product name, specific configuration of the product)
+    """
     products_infos = []
     # Loop on product names
     for prod in lproducts:       
@@ -486,15 +490,15 @@ def get_products_infos(lproducts, config):
     return products_infos
 
 def get_product_dependencies(config, product_info):
-    '''Get recursively the list of products that are 
-       in the product_info dependencies
-    
-    :param config Config: The global configuration
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: the list of products in dependence
-    :rtype: list
-    '''
+    """
+    Get recursively the list of products that are 
+    in the product_info dependencies
+    
+    :param config: (Config) The global configuration
+    :param product_info: (Config) 
+      The configuration specific to the product
+    :return: (list) the list of products in dependence
+    """
     if "depend" not in product_info or product_info.depend == []:
         return []
     res = []
@@ -511,14 +515,15 @@ def get_product_dependencies(config, product_info):
     return res
 
 def check_installation(product_info):
-    '''Verify if a product is well installed. Checks install directory presence
-       and some additional files if it is defined in the config 
-    
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True if it is well installed
-    :rtype: boolean
-    '''
+    """
+    Verify if a product is well installed. 
+    Checks install directory presence
+    and some additional files if it is defined in the config 
+    
+    :param product_info: (Config) 
+      The configuration specific to the product
+    :return: (bool) True if it is well installed
+    """
     if not product_compiles(product_info):
         return True
     install_dir = product_info.install_dir
@@ -533,13 +538,13 @@ def check_installation(product_info):
     return True
 
 def product_is_sample(product_info):
-    '''Know if a product has the sample type
+    """Know if a product has the sample type
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True if the product has the sample type, else False
-    :rtype: boolean
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (bool) 
+      True if the product has the sample type, else False
+    """
     if 'type' in product_info:
         ptype = product_info.type
         return ptype.lower() == 'sample'
@@ -547,13 +552,13 @@ def product_is_sample(product_info):
         return False
 
 def product_is_salome(product_info):
-    '''Know if a product is of type salome
+    """Know if a product is of type salome
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True if the product is salome, else False
-    :rtype: boolean
-    '''
+    :param product_info: (Config) 
+      The configuration specific to the product
+    :return: (bool) 
+      True if the product is salome, else False
+    """
     if 'type' in product_info:
         ptype = product_info.type
         return ptype.lower() == 'salome'
@@ -561,138 +566,138 @@ def product_is_salome(product_info):
         return False
 
 def product_is_fixed(product_info):
-    '''Know if a product is fixed
+    """Know if a product is fixed
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True if the product is fixed, else False
-    :rtype: boolean
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (bool) 
+      True if the product is fixed, else False
+    """
     get_src = product_info.get_source
     return get_src.lower() == 'fixed'
 
 def product_is_native(product_info):
-    '''Know if a product is native
+    """Know if a product is native
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True if the product is native, else False
-    :rtype: boolean
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (bool) 
+      True if the product is native, else False
+    """
     get_src = product_info.get_source
     return get_src.lower() == 'native'
 
 def product_is_dev(product_info):
-    '''Know if a product is in dev mode
+    """Know if a product is in dev mode
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True if the product is in dev mode, else False
-    :rtype: boolean
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (bool) 
+      True if the product is in dev mode, else False
+    """
     dev = product_info.dev
     return dev.lower() == 'yes'
 
 def product_is_debug(product_info):
-    '''Know if a product is in debug mode
+    """Know if a product is in debug mode
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True if the product is in debug mode, else False
-    :rtype: boolean
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (bool) 
+      True if the product is in debug mode, else False
+    """
     debug = product_info.debug
     return debug.lower() == 'yes'
 
 def product_is_autotools(product_info):
-    '''Know if a product is compiled using the autotools
+    """Know if a product is compiled using the autotools
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True if the product is autotools, else False
-    :rtype: boolean
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (bool) 
+      True if the product is autotools, else False
+    """
     build_src = product_info.build_source
     return build_src.lower() == 'autotools'
 
 def product_is_cmake(product_info):
-    '''Know if a product is compiled using the cmake
+    """Know if a product is compiled using the cmake
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True if the product is cmake, else False
-    :rtype: boolean
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (bool) 
+      True if the product is cmake, else False
+    """
     build_src = product_info.build_source
     return build_src.lower() == 'cmake'
 
 def product_is_vcs(product_info):
-    '''Know if a product is download using git, svn or cvs (not archive)
+    """Know if a product is download using git, svn or cvs (not archive)
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True if the product is vcs, else False
-    :rtype: boolean
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (bool)
+      True if the product is vcs, else False
+    """
     return product_info.get_source in AVAILABLE_VCS
 
 def product_is_SALOME(product_info):
-    '''Know if a product is a SALOME module
+    """Know if a product is a SALOME module
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True if the product is a SALOME module, else False
-    :rtype: boolean
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (bool) 
+      True if the product is a SALOME module, else False
+    """
     return ("properties" in product_info and
             "is_SALOME_module" in product_info.properties and
             product_info.properties.is_SALOME_module == "yes")
 
 def product_is_smesh_plugin(product_info):
-    '''Know if a product is a SMESH plugin
+    """Know if a product is a SMESH plugin
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True if the product is a SMESH plugin, else False
-    :rtype: boolean
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (bool)
+      True if the product is a SMESH plugin, else False
+    """
     return ("properties" in product_info and
             "smesh_plugin" in product_info.properties and
             product_info.properties.smesh_plugin == "yes")
 
 def product_is_cpp(product_info):
-    '''Know if a product is cpp
+    """Know if a product is cpp
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True if the product is a cpp, else False
-    :rtype: boolean
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (bool) 
+      True if the product is a cpp, else False
+    """
     return ("properties" in product_info and
             "cpp" in product_info.properties and
             product_info.properties.cpp == "yes")
 
 def product_compiles(product_info):
-    '''Know if a product compiles or not (some products do not have a 
+    """Know if a product compiles or not (some products do not have a 
        compilation procedure)
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True if the product compiles, else False
-    :rtype: boolean
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (bool) 
+      True if the product compiles, else False
+    """
     return not("properties" in product_info and
             "compilation" in product_info.properties and
             product_info.properties.compilation == "no")
 
 def product_has_script(product_info):
-    '''Know if a product has a compilation script
+    """Know if a product has a compilation script
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True if the product it has a compilation script, else False
-    :rtype: boolean
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (bool) 
+      True if the product it has a compilation script, else False
+    """
     if "build_source" not in product_info:
         # Native case
         return False
@@ -700,33 +705,33 @@ def product_has_script(product_info):
     return build_src.lower() == 'script'
 
 def product_has_env_script(product_info):
-    '''Know if a product has an environment script
+    """Know if a product has an environment script
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True if the product it has an environment script, else False
-    :rtype: boolean
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (bool) 
+      True if the product it has an environment script, else False
+    """
     return "environ" in product_info and "env_script" in product_info.environ
 
 def product_has_patches(product_info):
-    '''Know if a product has one or more patches
+    """Know if a product has one or more patches
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True if the product has one or more patches
-    :rtype: boolean
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (bool) 
+      True if the product has one or more patches
+    """
     return "patches" in product_info and len(product_info.patches) > 0
 
 def product_has_logo(product_info):
-    '''Know if a product has a logo (YACSGEN generate)
+    """Know if a product has a logo (YACSGEN generate)
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: The path of the logo if the product has a logo, else False
-    :rtype: Str
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (str) 
+      The path of the logo if the product has a logo, else False
+    """
     if ("properties" in product_info and
             "logo" in product_info.properties):
         return product_info.properties.logo
@@ -734,48 +739,45 @@ def product_has_logo(product_info):
         return False
 
 def product_has_salome_gui(product_info):
-    '''Know if a product has a SALOME gui
+    """Know if a product has a SALOME gui
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True if the product has a SALOME gui, else False
-    :rtype: Boolean
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (bool) 
+      True if the product has a SALOME gui, else False
+    """
     return ("properties" in product_info and
             "has_salome_gui" in product_info.properties and
             product_info.properties.has_salome_gui == "yes")
 
 def product_is_mpi(product_info):
-    '''Know if a product has openmpi in its dependencies
+    """Know if a product has openmpi in its dependencies
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True if the product has openmpi inits dependencies
-    :rtype: boolean
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (bool) 
+      True if the product has openmpi inits dependencies
+    """
     return "openmpi" in product_info.depend
 
 def product_is_generated(product_info):
-    '''Know if a product is generated (YACSGEN)
+    """Know if a product is generated (YACSGEN)
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: True if the product is generated
-    :rtype: boolean
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (bool) True if the product is generated
+    """
     return ("properties" in product_info and
             "generate" in product_info.properties and
             product_info.properties.generate == "yes")
 
 def get_product_components(product_info):
-    '''Get the component list to generate with the product
+    """Get the component list to generate with the product
     
-    :param product_info Config: The configuration specific to 
-                               the product
-    :return: The list of names of the components
-    :rtype: List
-    
-    '''
+    :param product_info: (Config)
+      The configuration specific to the product
+    :return: (list) The list of names of the components 
+    """
     if not product_is_generated(product_info):
         return []
     
index bd4402d047edd2d4960e3ebaf795cddc2e5b98f5..db4d51ec874eef5bb268923b8fe4624dceb58e1d 100644 (file)
@@ -484,7 +484,7 @@ class Mapping(Container):
 
     __getattr__ = __getitem__
     
-    '''
+    """
     def __getattribute__(self, name):
         if name == "__dict__":
             return {}
@@ -501,7 +501,7 @@ class Mapping(Container):
             if rv is None:
                 raise AttributeError(name)
         return rv
-    '''
+    """
 
     def iteritems(self):
         for key in self.keys():
index 4bb721fe40233e4d3da4555c1c47d246d864bd34..8665274aa59767e4dee847ea28b06cf607579fdb 100644 (file)
 #  License along with this library; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 
-'''
+"""
 All utilities method doing a system call, 
 like open a browser or an editor, or call a git command
 
 usage:
   >> import src.system as SYSS
-'''
+"""
 
 import subprocess
 import os
@@ -30,11 +30,10 @@ import tarfile
 import src.returnCode as RCO
 
 def show_in_editor(editor, filePath, logger):
-    """\
-    open filePath using editor.
+    """open filePath using editor.
     
-    :param editor str: The editor to use.
-    :param filePath str: The path to the file to open.
+    :param editor: (str) The editor to use.
+    :param filePath: (str) The path to the file to open.
     """
     # default editor is vi
     if editor is None or len(editor) == 0:
@@ -58,17 +57,15 @@ def show_in_editor(editor, filePath, logger):
 
 
 def git_extract(from_what, tag, where, logger, environment=None):
-    """\
-    Extracts sources from a git repository.
+    """Extracts sources from a git repository.
     
-    :param from_what str: The remote git repository.
-    :param tag str: The tag.
-    :param where str: The path where to extract.
-    :param logger Logger: The logger instance to use.
-    :param environment src.environment.Environ: The environment to source when
-                                                extracting.
-    :return: True if the extraction is successful
-    :rtype: boolean
+    :param from_what: (str) The remote git repository.
+    :param tag: (str) The tag.
+    :param where: (str) The path where to extract.
+    :param logger: (Logger) The logger instance to use.
+    :param environment: (Environ) 
+      The environment to source when extracting.
+    :return: (bool) True if the extraction is successful
     """
     if not where.exists():
         where.make()
@@ -99,14 +96,12 @@ def git_extract(from_what, tag, where, logger, environment=None):
     return (res == 0)
 
 def archive_extract(from_what, where, logger):
-    """\
-    Extracts sources from an archive.
+    """Extracts sources from an archive.
     
-    :param from_what str: The path to the archive.
-    :param where str: The path where to extract.
-    :param logger Logger: The logger instance to use.
-    :return: True if the extraction is successful
-    :rtype: boolean
+    :param from_what: (str) The path to the archive.
+    :param where: (str) The path where to extract.
+    :param logger: (Logger) The logger instance to use.
+    :return: (bool) True if the extraction is successful
     """
     try:
         archive = tarfile.open(from_what)
@@ -119,22 +114,20 @@ def archive_extract(from_what, where, logger):
 
 def cvs_extract(protocol, user, server, base, tag, product, where,
                 logger, checkout=False, environment=None):
-    """\
-    Extracts sources from a cvs repository.
+    """Extracts sources from a cvs repository.
     
-    :param protocol str: The cvs protocol.
-    :param user str: The user to be used.
-    :param server str: The remote cvs server.
-    :param base str: .
-    :param tag str: The tag.
-    :param product str: The product.
-    :param where str: The path where to extract.
-    :param logger Logger: The logger instance to use.
-    :param checkout boolean: If true use checkout cvs.
-    :param environment src.environment.Environ: The environment to source when
-                                                extracting.
-    :return: True if the extraction is successful
-    :rtype: boolean
+    :param protocol: (str) The cvs protocol.
+    :param user: (str) The user to be used.
+    :param server: (str) The remote cvs server.
+    :param base: (str) .
+    :param tag: (str) The tag.
+    :param product: (str) The product.
+    :param where: (str) The path where to extract.
+    :param logger: (Logger) The logger instance to use.
+    :param checkout: (bool) If true use checkout cvs.
+    :param environment: (Environ) 
+      The environment to source when extracting.
+    :return: (bool) True if the extraction is successful
     """
 
     opttag = ''
@@ -179,19 +172,17 @@ def svn_extract(user,
                 logger,
                 checkout=False,
                 environment=None):
-    """\
-    Extracts sources from a svn repository.
+    """Extracts sources from a svn repository.
     
-    :param user str: The user to be used.
-    :param from_what str: The remote git repository.
-    :param tag str: The tag.
-    :param where str: The path where to extract.
-    :param logger Logger: The logger instance to use.
-    :param checkout boolean: If true use checkout svn.
-    :param environment src.environment.Environ: The environment to source when
-                                                extracting.
-    :return: True if the extraction is successful
-    :rtype: boolean
+    :param user: (str) The user to be used.
+    :param from_what: (str) The remote git repository.
+    :param tag: (str) The tag.
+    :param where: (str) The path where to extract.
+    :param logger: (Logger) The logger instance to use.
+    :param checkout: (bool) If true use checkout svn.
+    :param environment: (Environ)
+      The environment to source when extracting.
+    :return: (bool) True if the extraction is successful
     """
     if not where.exists():
         where.make()
index 3350f169e9b0816f07e2cc667f1acececaf4f8f0..e368f3a49657aacfa5c1c182e8c73380fb8f9378 100644 (file)
@@ -41,21 +41,27 @@ import src.returnCode as RCO
 ##############################################################################
 # file system utilities
 ##############################################################################
-def ensure_path_exists(p):
+def ensure_path_exists(path):
     """Create a path if not existing
     
-    :param p str: The path.
+    :param path: (str) The path.
     """
-    if not os.path.exists(p):
-        os.makedirs(p)
+    print "the path",path
+    if not os.path.exists(path):
+        os.makedirs(path)
         
-def replace_in_file(filein, strin, strout):
-    """Replace <strin> by <strout> in file <filein>"""
-    with open(filein, "r") as f: 
+def replace_in_file(file_in, str_in, str_out):
+    """Replace <str_in> by <str_out> in file <file_in>
+
+    :param file_in: (str) The file name
+    :param str_in: (str) The string to search
+    :param str_out: (str) The string to replace.    
+    """
+    with open(file_in, "r") as f: 
       contents = f.read()
-    shutil.move(filein, filein + "_old")
-    with open(filein, "w") as f: 
-      f.write(contents.replace(strin, strout))
+    shutil.move(file_in, file_in + "_old")
+    with open(file_in, "w") as f: 
+      f.write(contents.replace(str_in, str_out))
   
 ##############################################################################
 # Utils class to simplify path manipulations.
@@ -172,17 +178,17 @@ class Path:
             return False
 
 def find_file_in_lpath(file_name, lpath, additional_dir = ""):
-    """Find in all the directories in lpath list the file that has the same name
-       as file_name. If it is found, return the full path of the file, else,
-       return False. 
-       The additional_dir (optional) is the name of the directory to add to all 
-       paths in lpath.
-    
-    :param file_name str: The file name to search
-    :param lpath List: The list of directories where to search
-    :param additional_dir str: The name of the additional directory
-    :return: the full path of the file or False if not found
-    :rtype: str
+    """
+    Find in all the directories in lpath list the file 
+    that has the same name as file_name. 
+    If it is found, return the full path of the file, else, return False. 
+    The additional_dir (optional) is the name of the directory 
+    to add to all paths in lpath.
+    
+    :param file_name: (str) The file name to search
+    :param lpath: (list) The list of directories where to search
+    :param additional_dir: (str) The name of the additional directory
+    :return: (str) The full path of the file or False if not found
     """
     for directory in lpath:
         dir_complete = os.path.join(directory, additional_dir)
@@ -206,10 +212,12 @@ def handleRemoveReadonly(func, path, exc):
 # pyconf config utilities
 ##############################################################################
 def check_config_has_application( config, details = None ):
-    '''check that the config has the key APPLICATION. Else raise an exception.
+    """
+    Check that the config has the key APPLICATION. 
+    Else raise an exception.
     
-    :param config class 'common.pyconf.Config': The config.
-    '''
+    :param config: (Config) The config.
+    """
     if 'APPLICATION' not in config:
         message = _("An APPLICATION is required. Use 'config --list' to get"
                     " the list of available applications.\n")
@@ -218,11 +226,12 @@ def check_config_has_application( config, details = None ):
         raise Exception( message )
 
 def check_config_has_profile( config, details = None ):
-    '''check that the config has the key APPLICATION.profile.
-       Else, raise an exception.
+    """
+    Check that the config has the key APPLICATION.profile.
+    Else, raise an exception.
     
-    :param config class 'common.pyconf.Config': The config.
-    '''
+    :param config: (Config) The config.
+    """
     check_config_has_application(config)
     if 'profile' not in config.APPLICATION:
         message = _("A profile section is required in your application.\n")
@@ -234,45 +243,40 @@ def config_has_application( config ):
     return 'APPLICATION' in config
 
 def get_cfg_param(config, param_name, default):
-    '''Search for param_name value in config.
-       If param_name is not in config, then return default,
-       else, return the found value
+    """
+    Search for param_name value in config.
+    If param_name is not in config, then return default,
+    else, return the found value
        
-    :param config class 'common.pyconf.Config': The config.
-    :param param_name str: the name of the parameter to get the value
-    :param default str: The value to return if param_name is not in config
-    :return: see initial description of the function
-    :rtype: str
-    '''
+    :param config: (Config) The config.
+    :param param_name: (str) the name of the parameter to get the value
+    :param default: (str) The value to return if param_name is not in config
+    :return: (str) see initial description of the function
+    """
     if param_name in config:
         return config[param_name]
     return default
 
 def get_base_path(config):
-    '''Returns the path of the products base.
+    """Returns the path of the products base.
     
-    :param config Config: The global Config instance.
-    :return: The path of the products base.
-    :rtype: str
-    '''
+    :param config: (Config) The global Config instance.
+    :return: (str) The path of the products base.
+    """
     if "base" not in config.LOCAL:
-        local_file_path = os.path.join(config.VARS.salometoolsway,
-                                      "data",
-                                      "local.pyconf")
+        local_file_path = os.path.join(config.VARS.salometoolsway, "data", "local.pyconf")
         msg = _("Please define a base path in the file %s") % local_file_path
         raise Exception(msg)
         
-    base_path = os.path.abspath(config.LOCAL.base)
-    
+    base_path = os.path.abspath(config.LOCAL.base)   
     return base_path
 
 def get_launcher_name(config):
-    '''Returns the name of salome launcher.
+    """Returns the name of salome launcher.
     
-    :param config Config: The global Config instance.
-    :return: The name of salome launcher.
-    :rtype: str
-    '''
+    :param config: (Config) The global Config instance.
+    :return: (str) The name of salome launcher.
+    """
     check_config_has_application(config)
     if 'profile' in config.APPLICATION and 'launcher_name' in config.APPLICATION.profile:
         launcher_name = config.APPLICATION.profile.launcher_name
@@ -282,12 +286,11 @@ def get_launcher_name(config):
     return launcher_name
 
 def get_log_path(config):
-    '''Returns the path of the logs.
+    """Returns the path of the logs.
     
-    :param config Config: The global Config instance.
-    :return: The path of the logs.
-    :rtype: str
-    '''
+    :param config: (Config) The global Config instance.
+    :return: (str) The path of the logs.
+    """
     if "log_dir" not in config.LOCAL:
         local_file_path = os.path.join(config.VARS.salometoolsway,
                                       "data",
@@ -350,8 +353,8 @@ def formatTuples(tuples):
     """
     format 'label = value' the tuples in a tabulated way.
     
-    :param tuples list: The list of tuples to format
-    :return: The tabulated text. (mutiples lines)
+    :param tuples: (list) The list of tuples to format
+    :return: (str) The tabulated text. (as mutiples lines)
     """
     # find the maximum length of the first value of the tuples
     smax = max(map(lambda l: len(l[0]), tuples))
@@ -367,9 +370,9 @@ def formatValue(label, value, suffix=""):
     """
     format 'label = value' with the info color
     
-    :param label int: the label to print.
-    :param value str: the value to print.
-    :param suffix str: the optionnal suffix to add at the end.
+    :param label: (int) the label to print.
+    :param value: (str) the value to print.
+    :param suffix: (str) the optionnal suffix to add at the end.
     """
     msg = "  %s = %s %s" % (label, value, suffix)
     return msg
@@ -441,11 +444,10 @@ def critical(msg):
 # list and dict utilities
 ##############################################################################
 def deepcopy_list(input_list):
-    """ Do a deep copy of a list
+    """Do a deep copy of a list
     
-    :param input_list List: The list to copy
-    :return: The copy of the list
-    :rtype: List
+    :param input_list: (list) The list to copy
+    :return: (list) The copy of the list
     """
     res = []
     for elem in input_list:
@@ -453,11 +455,10 @@ def deepcopy_list(input_list):
     return res
 
 def remove_item_from_list(input_list, item):
-    """ Remove all occurences of item from input_list
+    """Remove all occurences of item from input_list
     
-    :param input_list List: The list to modify
-    :return: The without any item
-    :rtype: List
+    :param input_list: (list) The list to modify
+    :return: (list) The without any item
     """
     res = []
     for elem in input_list:
@@ -467,10 +468,10 @@ def remove_item_from_list(input_list, item):
     return res
 
 def merge_dicts(*dict_args):
-    '''
+    """
     Given any number of dicts, shallow copy and merge into a new dict,
     precedence goes to key value pairs in latter dicts.
-    '''
+    """
     result = {}
     for dictionary in dict_args:
         result.update(dictionary)
@@ -483,9 +484,8 @@ def merge_dicts(*dict_args):
 def parse_date(date):
     """Transform YYYYMMDD_hhmmss into YYYY-MM-DD hh:mm:ss.
     
-    :param date str: The date to transform
-    :return: The date in the new format
-    :rtype: str
+    :param date: (str) The date to transform
+    :return: (str) The date in the new format
     """
     if len(date) != 15:
         return date
@@ -504,13 +504,13 @@ def parse_date(date):
 
     
 def date_to_datetime(date):
-    """\
+    """
     From a string date in format YYYYMMDD_HHMMSS
     returns list year, mon, day, hour, minutes, seconds 
     
-    :param date str: The date in format YYYYMMDD_HHMMSS
-    :return: the same date and time in separate variables.
-    :rtype: (str,str,str,str,str,str)
+    :param date: (str) The date in format YYYYMMDD_HHMMSS
+    :return: (tuple) as (str,str,str,str,str,str)
+      The same date and time in separate variables.
     """
     Y = date[:4]
     m = date[4:6]
@@ -521,13 +521,14 @@ def date_to_datetime(date):
     return Y, m, dd, H, M, S
 
 def timedelta_total_seconds(timedelta):
-    """\
+    """
     Replace total_seconds from datetime module 
     in order to be compatible with old python versions
     
-    :param timedelta datetime.timedelta: The delta between two dates
-    :return: The number of seconds corresponding to timedelta.
-    :rtype: float
+    :param timedelta: (datetime.timedelta) 
+      The delta between two dates
+    :return: (float) 
+      The number of seconds corresponding to timedelta.
     """
     return (
         timedelta.microseconds + 0.0 +
@@ -537,21 +538,21 @@ _log_macro_command_file_expression = "^[0-9]{8}_+[0-9]{6}_+.*\.xml$"
 _log_all_command_file_expression = "^.*[0-9]{8}_+[0-9]{6}_+.*\.xml$"
 
 def show_command_log(logFilePath, cmd, application, notShownCommands):
-    """\
+    """
     Used in updateHatXml. 
     Determine if the log xml file logFilePath 
     has to be shown or not in the hat log.
     
-    :param logFilePath str: the path to the command xml log file
-    :param cmd str: the command of the log file
-    :param application str: the application passed as parameter 
-                            to the salomeTools command
-    :param notShownCommands list: the list of commands 
-                                  that are not shown by default
-    
-    :return: RCO.ReturnCode("OK") if cmd is not in notShownCommands and the application 
-             in the log file corresponds to application
-             ReturnCode value is tuple (appliLog, launched_cmd)
+    :param logFilePath: (str) the path to the command xml log file
+    :param cmd: (str) the command of the log file
+    :param application: (str) 
+      The application passed as parameter to the salomeTools command
+    :param notShownCommands: (list) 
+      The list of commands that are not shown by default
+    :return: (RCO.ReturnCode)
+      OK if cmd is not in notShownCommands and the application 
+      in the log file corresponds to application
+      ReturnCode value is tuple (appliLog, launched_cmd)
     """
     # When the command is not in notShownCommands, no need to go further :
     # Do not show
@@ -587,10 +588,9 @@ def show_command_log(logFilePath, cmd, application, notShownCommands):
 def list_log_file(dirPath, expression):
     """Find all files corresponding to expression in dirPath
     
-    :param dirPath str: the directory where to search the files
-    :param expression str: the regular expression of files to find
-    :return: the list of files path and informations about it
-    :rtype: list
+    :param dirPath: (str) the directory where to search the files
+    :param expression: (str) the regular expression of files to find
+    :return: (list) the list of files path and informations about it
     """
     lRes = []
     for fileName in os.listdir(dirPath):
@@ -627,12 +627,12 @@ def list_log_file(dirPath, expression):
     return lRes
 
 def update_hat_xml(logDir, application=None, notShownCommands = []):
-    """\
+    """
     Create the xml file in logDir that contain all the xml file 
     and have a name like YYYYMMDD_HHMMSS_namecmd.xml
     
-    :param logDir str: the directory to parse
-    :param application str: the name of the application if there is any
+    :param logDir: (str) the directory to parse
+    :param application: (str) the name of the application if there is any
     """
     # Create an instance of XmlLogFile class to create hat.xml file
     
index e3ccca3c1841b0ab2f7fe722cbcdd3384616b5ce..57f61e14218fe71eb42ae3033ac20142d536bd6a 100644 (file)
@@ -16,7 +16,8 @@
 #  License along with this library; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 
-"""Utilities to read xml logging files
+"""\
+Utilities to read xml logging files
 
 usage:
   >> import src.xmlManager as XMLMGR
@@ -34,16 +35,17 @@ import src.ElementTree as etree
 import src.utilsSat as UTS
 
 class XmlLogFile(object):
-    '''Class to manage writing in salomeTools xml log file
-    '''
+    """\
+    Class to manage writing in salomeTools xml log file
+    """
     def __init__(self, filePath, rootname, attrib = {}):
-        '''Initialization
+        """Initialization
         
-        :param filePath str: The path to the file where to write the log file
-        :param rootname str: The name of the root node of the xml file
-        :param attrib dict: the dictionary that contains the attributes 
-                            and value of the root node
-        '''
+        :param filePath: (str) The path to the file where to write the log file
+        :param rootname: (str) The name of the root node of the xml file
+        :param attrib: (dict) 
+          The dictionary that contains the attributes and value of the root node
+        """
         # Initialize the filePath and ensure that the directory 
         # that contain the file exists (make it if necessary)
         self.logFile = filePath
@@ -52,10 +54,10 @@ class XmlLogFile(object):
         self.xmlroot = etree.Element(rootname, attrib = attrib)
     
     def write_tree(self, stylesheet=None, file_path = None):
-        '''Write the xml tree in the log file path. Add the stylesheet if asked.
+        """Write the xml tree in the log file path. Add the stylesheet if asked.
         
-        :param stylesheet str: The stylesheet to apply to the xml file
-        '''
+        :param stylesheet: (str) The stylesheet to apply to the xml file
+        """
         log_file_path = self.logFile
         if file_path:
             log_file_path = file_path
@@ -71,24 +73,24 @@ class XmlLogFile(object):
             pass  
         
     def add_simple_node(self, node_name, text=None, attrib={}):
-        '''Add a node with some attibutes and text to the root node.
+        """Add a node with some attibutes and text to the root node.
         
-        :param node_name str: the name of the node to add
-        :param text str: the text of the node
-        :param attrib dict: the dictionary containing the 
-                            attribute of the new node
-        '''
+        :param node_name: (str) the name of the node to add
+        :param text: (str) the text of the node
+        :param attrib: (dict)
+          The dictionary containing the attribute of the new node
+        """
         n = etree.Element(node_name, attrib=attrib)
         n.text = text
         self.xmlroot.append(n)
         return n
     
     def append_node_text(self, node_name, text):
-        '''Append a new text to the node that has node_name as name
+        """Append a new text to the node that has node_name as name
         
-        :param node_name str: The name of the node on which append text
-        :param text str: The text to append
-        '''
+        :param node_name: (str) The name of the node on which append text
+        :param text: (str) The text to append
+        """
         # find the corresponding node
         for field in self.xmlroot:
             if field.tag == node_name:
@@ -96,40 +98,39 @@ class XmlLogFile(object):
                 field.text += text
 
     def append_node_attrib(self, node_name, attrib):
-        '''Append a new attributes to the node that has node_name as name
+        """Append a new attributes to the node that has node_name as name
         
-        :param node_name str: The name of the node on which append text
-        :param attrib dixt: The attrib to append
-        '''
+        :param node_name: (str) The name of the node on which append text
+        :param attrib: (dict) The attrib to append
+        """
         self.xmlroot.find(node_name).attrib.update(attrib)
 
 class ReadXmlFile(object):
-    '''Class to manage reading of an xml log file
-    '''
+    """
+    Class to manage reading of an xml log file
+    """
     def __init__(self, filePath):
-        '''Initialization
+        """Initialization
         
-        :param filePath str: The xml file to be read
-        '''
+        :param filePath: (str) The xml file to be read
+        """
         self.filePath = filePath
         etree_inst = etree.parse(filePath)
         self.xmlroot = etree_inst.parse(filePath)
 
     def getRootAttrib(self):
-        '''Get the attibutes of the self.xmlroot
+        """Get the attibutes of the self.xmlroot
         
-        :return: The attributes of the root node
-        :rtype: dict
-        '''
+        :return: (dict) The attributes of the root node
+        """
         return self.xmlroot.attrib
     
     def get_attrib(self, node_name):
-        '''Get the attibutes of the node node_name in self.xmlroot
+        """Get the attibutes of the node node_name in self.xmlroot
         
-        :param node_name str: the name of the node
-        :return: the attibutes of the node node_name in self.xmlroot
-        :rtype: dict
-        '''
+        :param node_name: (str) the name of the node
+        :return: (dict) the attibutes of the node node_name in self.xmlroot
+        """
         attrib = self.xmlroot.find(node_name).attrib
         # To be python 3 compatible, convert bytes to str if there are any
         fixedAttrib = {}
@@ -146,50 +147,54 @@ class ReadXmlFile(object):
         return fixedAttrib
     
     def get_node_text(self, node):
-        '''Get the text of the first node that has name 
-           that corresponds to the parameter node
+        """
+        Get the text of the first node that has name 
+        that corresponds to the parameter node
         
-        :param node str: the name of the node from which get the text
-        :return: the text of the first node that has name 
-                 that corresponds to the parameter node
-        :rtype: str
-        '''
+        :param node: (str) the name of the node from which get the text
+        :return: (str) 
+          The text of the first node that has name 
+          that corresponds to the parameter node
+        """
         return self.xmlroot.find(node).text
     
 def add_simple_node(root_node, node_name, text=None, attrib={}):
-    '''Add a node with some attibutes and text to the root node.
+    """Add a node with some attibutes and text to the root node.
 
-    :param root_node etree.Element: the Etree element where to add the new node    
-    :param node_name str: the name of the node to add
-    :param text str: the text of the node
-    :param attrib dict: the dictionary containing the 
-                        attribute of the new node
-    '''
+    :param root_node: (etree.Element) 
+      the Etree element where to add the new node    
+    :param node_name: (str) the name of the node to add
+    :param text: (str) the text of the node
+    :param attrib: (dict) 
+      the dictionary containing the attribute(s) of the new node
+    """
     n = etree.Element(node_name, attrib=attrib)
     n.text = text
     root_node.append(n)
     return n
 
 def append_node_attrib(root_node, attrib):
-    '''Append a new attributes to the node that has node_name as name
+    """Append a new attributes to the node that has node_name as name
     
-    :param root_node etree.Element: the Etree element 
-                                    where to append the new attibutes
-    :param attrib dixt: The attrib to append
-    '''
+    :param root_node: (etree.Element)
+      the Etree element where to append the new attibutes
+    :param attrib: (dict) The attrib to append
+    """
     root_node.attrib.update(attrib)
 
 def find_node_by_attrib(xmlroot, name_node, key, value):
-    '''Find the nfirst ode from xmlroot that has name name_node and that has in 
-       its attributes {key : value}. Return the node
+    """
+    Find the first node from xmlroot that has name name_node 
+    and that has in its attributes {key : value}. 
+    Return the node
     
-    :param xmlroot etree.Element: the Etree element where to search
-    :param name_node str: the name of node to search
-    :param key str: the key to search
-    :param value str: the value to search
-    :return: the found node
-    :rtype: xmlroot etree.Element
-    '''
+    :param xmlroot: (etree.Element) 
+      the Etree element where to search
+    :param name_node: (str) the name of node to search
+    :param key: (str) the key to search
+    :param value: (str) the value to search
+    :return: (etree.Element) the found node
+    """
     l_nodes =  xmlroot.findall(name_node)
     for node in l_nodes:
         if key not in node.attrib.keys():
@@ -202,9 +207,9 @@ def find_node_by_attrib(xmlroot, name_node, key, value):
 def write_report(filename, xmlroot, stylesheet):
     """Writes a report file from a XML tree.
     
-    :param filename str: The path to the file to create
-    :param xmlroot etree.Element: the Etree element to write to the file
-    :param stylesheet str: The stylesheet to add to the begin of the file
+    :param filename: (str) The path to the file to create
+    :param xmlroot: (etree.Element) the Etree element to write to the file
+    :param stylesheet: (str) The stylesheet to add to the begin of the file
     """
     if not os.path.exists(os.path.dirname(filename)):
         os.makedirs(os.path.dirname(filename))