salome.kernel 9.14.0.post3__cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- salome/bin/salome/IDLparser.py +882 -0
- salome/bin/salome/KernelHelpersUseCases +0 -0
- salome/bin/salome/NSparam.py +51 -0
- salome/bin/salome/ORBConfigFile.py +55 -0
- salome/bin/salome/SALOMEDS_Client +0 -0
- salome/bin/salome/SALOMEDS_Server +0 -0
- salome/bin/salome/SALOME_ConnectionManagerServer +0 -0
- salome/bin/salome/SALOME_Container +0 -0
- salome/bin/salome/SALOME_ContainerPy.py +397 -0
- salome/bin/salome/SALOME_Container_No_NS_Serv +0 -0
- salome/bin/salome/SALOME_Container_No_NS_Serv_OutProcess +0 -0
- salome/bin/salome/SALOME_Container_No_NS_Serv_OutProcess_FT +0 -0
- salome/bin/salome/SALOME_Container_No_NS_Serv_OutProcess_Replay +0 -0
- salome/bin/salome/SALOME_Container_No_NS_Serv_OutProcess_Replay_FT +0 -0
- salome/bin/salome/SALOME_DataScopeServer +0 -0
- salome/bin/salome/SALOME_DataScopeServer_SSL +0 -0
- salome/bin/salome/SALOME_LauncherServer +0 -0
- salome/bin/salome/SALOME_Logger_Server +0 -0
- salome/bin/salome/SALOME_ModuleCatalog_Client +0 -0
- salome/bin/salome/SALOME_ModuleCatalog_Server +0 -0
- salome/bin/salome/SALOME_Registry_Server +0 -0
- salome/bin/salome/TestComponentPy.py +71 -0
- salome/bin/salome/TestContainer +0 -0
- salome/bin/salome/TestContainerManager +0 -0
- salome/bin/salome/TestLauncher +0 -0
- salome/bin/salome/TestLifeCycleCORBA.py +89 -0
- salome/bin/salome/TestLogger +0 -0
- salome/bin/salome/TestLogger.py +27 -0
- salome/bin/salome/TestModuleCatalog.py +87 -0
- salome/bin/salome/Test_LifeCycleCORBA +0 -0
- salome/bin/salome/VERSION +3 -0
- salome/bin/salome/addToKillList.py +35 -0
- salome/bin/salome/app-quickstart.py +288 -0
- salome/bin/salome/appli/.bashrc +50 -0
- salome/bin/salome/appli/extra.env.d/001.py +42 -0
- salome/bin/salome/appli/python_test_driver.py +148 -0
- salome/bin/salome/appli/salome +193 -0
- salome/bin/salome/appli/salome_instance.py +31 -0
- salome/bin/salome/appli/salome_test_driver.py +150 -0
- salome/bin/salome/appli/salome_test_driver_gui.py +82 -0
- salome/bin/salome/appli_clean.sh +53 -0
- salome/bin/salome/appli_gen.py +606 -0
- salome/bin/salome/dummyexe_loggerTraceCollector +0 -0
- salome/bin/salome/envSalome.py +59 -0
- salome/bin/salome/killSalome.py +48 -0
- salome/bin/salome/killSalomeWithPort.py +56 -0
- salome/bin/salome/prepare_generating_doc.py +104 -0
- salome/bin/salome/pythonpath_reduction.py +184 -0
- salome/bin/salome/runConsole.py +39 -0
- salome/bin/salome/runIDLparser +58 -0
- salome/bin/salome/runRemote.py +101 -0
- salome/bin/salome/runSalome.py +30 -0
- salome/bin/salome/runSalomeNoServer.py +24 -0
- salome/bin/salome/runSalomeOld.py +36 -0
- salome/bin/salome/runSalomeOnDemand.py +41 -0
- salome/bin/salome/salomeContext.py +36 -0
- salome/bin/salome/salome_process_attach +44 -0
- salome/bin/salome/salome_process_launcher +58 -0
- salome/bin/salome/setenv.py +32 -0
- salome/bin/salome/showNS.py +33 -0
- salome/bin/salome/test/kernel/ArgvKeeper/CTestTestfile.cmake +31 -0
- salome/bin/salome/test/kernel/ArgvKeeper/TestArgvKeeper +0 -0
- salome/bin/salome/test/kernel/ArgvKeeper/test_ArgvKeeper.py +34 -0
- salome/bin/salome/test/kernel/CTestTestfile.cmake +49 -0
- salome/bin/salome/test/kernel/Container/CTestTestfile.cmake +29 -0
- salome/bin/salome/test/kernel/Container/testProxy.py +291 -0
- salome/bin/salome/test/kernel/Container/testcontainer.py +106 -0
- salome/bin/salome/test/kernel/KernelHelpers/CTestTestfile.cmake +31 -0
- salome/bin/salome/test/kernel/KernelHelpers/KernelHelpersUnitTests.hxx +58 -0
- salome/bin/salome/test/kernel/KernelHelpers/TestKernelHelpers +0 -0
- salome/bin/salome/test/kernel/KernelHelpers/TestKernelHelpers.py +55 -0
- salome/bin/salome/test/kernel/Launcher/CTestTestfile.cmake +43 -0
- salome/bin/salome/test/kernel/Launcher/TestSSLAttached.py +110 -0
- salome/bin/salome/test/kernel/Launcher/launcher_use_case.py +65 -0
- salome/bin/salome/test/kernel/Launcher/testCrashProofContainer.py +423 -0
- salome/bin/salome/test/kernel/Launcher/testPerfLogManager1.py +382 -0
- salome/bin/salome/test/kernel/Launcher/test_launcher.py +674 -0
- salome/bin/salome/test/kernel/Launcher/test_stress.sh +45 -0
- salome/bin/salome/test/kernel/Launcher_SWIG/CTestTestfile.cmake +30 -0
- salome/bin/salome/test/kernel/Launcher_SWIG/test_swig_launcher.py +706 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA/CTestTestfile.cmake +27 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA/LifeCycleCORBATest.hxx +105 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA/TestLifeCycleCORBA +0 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA/TestLifeCycleCORBA.py +93 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/CTestTestfile.cmake +40 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/CatalogResources_resource.xml +15 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/LifeCycleCORBA_SWIGTest.py +217 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/SALOME_TestComponentPy.py +49 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/TestLifeCycleCORBA_SWIG.py +100 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/testcontainermanager.py +88 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/testresourcemanager.py +155 -0
- salome/bin/salome/test/kernel/NamingService/CTestTestfile.cmake +28 -0
- salome/bin/salome/test/kernel/NamingService/NamingServiceTest.hxx +169 -0
- salome/bin/salome/test/kernel/NamingService/TestNamingService +0 -0
- salome/bin/salome/test/kernel/NamingService/TestNamingService.py +64 -0
- salome/bin/salome/test/kernel/SALOMEDS/CTestTestfile.cmake +27 -0
- salome/bin/salome/test/kernel/SALOMEDS/SALOMEDSTest.hxx +192 -0
- salome/bin/salome/test/kernel/SALOMEDS/TestSALOMEDS +0 -0
- salome/bin/salome/test/kernel/SALOMEDS/TestSALOMEDS.py +55 -0
- salome/bin/salome/test/kernel/SALOMEDSImpl/CTestTestfile.cmake +27 -0
- salome/bin/salome/test/kernel/SALOMEDSImpl/SALOMEDSImplTest.hxx +51 -0
- salome/bin/salome/test/kernel/SALOMEDSImpl/TestSALOMEDSImpl +0 -0
- salome/bin/salome/test/kernel/SALOMEDSImpl/TestSALOMEDSImpl.py +55 -0
- salome/bin/salome/test/kernel/SALOMELocalTrace/CTestTestfile.cmake +27 -0
- salome/bin/salome/test/kernel/SALOMELocalTrace/SALOMELocalTraceTest.hxx +59 -0
- salome/bin/salome/test/kernel/SALOMELocalTrace/TestSALOMELocalTrace +0 -0
- salome/bin/salome/test/kernel/SALOMELocalTrace/TestSALOMELocalTrace.py +40 -0
- salome/bin/salome/test/kernel/SALOMETraceCollector/CTestTestfile.cmake +27 -0
- salome/bin/salome/test/kernel/SALOMETraceCollector/SALOMETraceCollectorTest.hxx +51 -0
- salome/bin/salome/test/kernel/SALOMETraceCollector/TestSALOMETraceCollector +0 -0
- salome/bin/salome/test/kernel/SALOMETraceCollector/TestSALOMETraceCollector.py +57 -0
- salome/bin/salome/test/kernel/UnitTests/CTestTestfile.cmake +28 -0
- salome/bin/salome/test/kernel/UnitTests/UnitTests +0 -0
- salome/bin/salome/test/kernel/UnitTests/UnitTests.py +89 -0
- salome/bin/salome/test/kernel/Utils/CTestTestfile.cmake +27 -0
- salome/bin/salome/test/kernel/Utils/TestUtils +0 -0
- salome/bin/salome/test/kernel/Utils/TestUtils.py +55 -0
- salome/bin/salome/test/kernel/Utils/UtilsTest.hxx +58 -0
- salome/bin/salome/test/kernel/lib/libLifeCycleCORBATest.so +0 -0
- salome/bin/salome/test/kernel/lib/libNamingServiceTest.so +0 -0
- salome/bin/salome/test/kernel/lib/libSALOMEDSImplTest.so +0 -0
- salome/bin/salome/test/kernel/lib/libSALOMEDSTest.so +0 -0
- salome/bin/salome/test/kernel/lib/libSALOMELocalTraceTest.so +0 -0
- salome/bin/salome/test/kernel/lib/libSALOMETraceCollectorTest.so +0 -0
- salome/bin/salome/test/kernel/lib/libSalomeKernelHelpersTest.so +0 -0
- salome/bin/salome/test/kernel/lib/libUtilsTest.so +0 -0
- salome/bin/salome/testDF +0 -0
- salome/bin/salome/testDS +0 -0
- salome/bin/salome/virtual_salome.py +38 -0
- salome/bin/salome/waitContainers.py +82 -0
- salome/bin/salome/waitNS.py +31 -0
- salome/kernel/ArgvKeeper.py +132 -0
- salome/kernel/Calcium_Ports_idl.py +645 -0
- salome/kernel/DSC_Engines_idl.py +443 -0
- salome/kernel/Engines/__init__.py +24 -0
- salome/kernel/Engines__POA/__init__.py +24 -0
- salome/kernel/Help.py +141 -0
- salome/kernel/KernelBasis.py +463 -0
- salome/kernel/KernelContainer.py +81 -0
- salome/kernel/KernelDS.py +87 -0
- salome/kernel/KernelLauncher.py +117 -0
- salome/kernel/KernelLogger.py +75 -0
- salome/kernel/KernelModuleCatalog.py +76 -0
- salome/kernel/KernelSDS.py +92 -0
- salome/kernel/KernelServices.py +105 -0
- salome/kernel/LifeCycleCORBA.py +92 -0
- salome/kernel/Logger_idl.py +89 -0
- salome/kernel/NSTEST/__init__.py +13 -0
- salome/kernel/NSTEST__POA/__init__.py +13 -0
- salome/kernel/NSparam_impl.py +50 -0
- salome/kernel/NamingService.py +365 -0
- salome/kernel/ORBConfigFile_impl.py +102 -0
- salome/kernel/Palm_Ports_idl.py +162 -0
- salome/kernel/PortManager.py +259 -0
- salome/kernel/Ports/Calcium_Ports/__init__.py +13 -0
- salome/kernel/Ports/Palm_Ports/__init__.py +13 -0
- salome/kernel/Ports/__init__.py +18 -0
- salome/kernel/Ports__POA/Calcium_Ports/__init__.py +13 -0
- salome/kernel/Ports__POA/Palm_Ports/__init__.py +13 -0
- salome/kernel/Ports__POA/__init__.py +18 -0
- salome/kernel/PyInterp.py +99 -0
- salome/kernel/Registry/__init__.py +13 -0
- salome/kernel/Registry__POA/__init__.py +13 -0
- salome/kernel/SALOME/__init__.py +19 -0
- salome/kernel/SALOMEDS/__init__.py +14 -0
- salome/kernel/SALOMEDS_Attributes_idl.py +2288 -0
- salome/kernel/SALOMEDS__POA/__init__.py +14 -0
- salome/kernel/SALOMEDS_idl.py +1590 -0
- salome/kernel/SALOMEWrappedStdType.py +383 -0
- salome/kernel/SALOME_Comm_idl.py +1045 -0
- salome/kernel/SALOME_CommonTypes_idl.py +69 -0
- salome/kernel/SALOME_ComponentPy.py +338 -0
- salome/kernel/SALOME_Component_idl.py +962 -0
- salome/kernel/SALOME_Container.py +242 -0
- salome/kernel/SALOME_ContainerHelper.py +840 -0
- salome/kernel/SALOME_ContainerManager_idl.py +236 -0
- salome/kernel/SALOME_DriverPy.py +86 -0
- salome/kernel/SALOME_Embedded_NamingService.py +41 -0
- salome/kernel/SALOME_Embedded_NamingService_ClientPy.py +59 -0
- salome/kernel/SALOME_Embedded_NamingService_idl.py +125 -0
- salome/kernel/SALOME_Exception_idl.py +75 -0
- salome/kernel/SALOME_ExternalServerLauncher_idl.py +199 -0
- salome/kernel/SALOME_GenericObj_idl.py +154 -0
- salome/kernel/SALOME_GlobalsImpl.py +38 -0
- salome/kernel/SALOME_Launcher_idl.py +327 -0
- salome/kernel/SALOME_Locker_idl.py +185 -0
- salome/kernel/SALOME_LogManager.py +103 -0
- salome/kernel/SALOME_LogManager_idl.py +348 -0
- salome/kernel/SALOME_Logger/__init__.py +13 -0
- salome/kernel/SALOME_Logger__POA/__init__.py +13 -0
- salome/kernel/SALOME_MPIObject_idl.py +100 -0
- salome/kernel/SALOME_ModuleCatalog/__init__.py +13 -0
- salome/kernel/SALOME_ModuleCatalog__POA/__init__.py +13 -0
- salome/kernel/SALOME_ModuleCatalog_idl.py +624 -0
- salome/kernel/SALOME_NamingServicePy.py +313 -0
- salome/kernel/SALOME_PACOExtension_idl.py +292 -0
- salome/kernel/SALOME_ParamPorts_idl.py +102 -0
- salome/kernel/SALOME_Parametric_idl.py +154 -0
- salome/kernel/SALOME_Ports_idl.py +347 -0
- salome/kernel/SALOME_PyNode.py +1557 -0
- salome/kernel/SALOME_PyNode_idl.py +387 -0
- salome/kernel/SALOME_Registry_idl.py +155 -0
- salome/kernel/SALOME_ResourcesManager_idl.py +215 -0
- salome/kernel/SALOME_SDS_idl.py +1181 -0
- salome/kernel/SALOME_Session_idl.py +214 -0
- salome/kernel/SALOME_TYPES/__init__.py +14 -0
- salome/kernel/SALOME_TYPES__POA/__init__.py +14 -0
- salome/kernel/SALOME_TestComponent_idl.py +121 -0
- salome/kernel/SALOME_TestModuleCatalog/__init__.py +13 -0
- salome/kernel/SALOME_TestModuleCatalog__POA/__init__.py +13 -0
- salome/kernel/SALOME_TestModuleCatalog_idl.py +194 -0
- salome/kernel/SALOME_Trace.py +96 -0
- salome/kernel/SALOME_Types_idl.py +81 -0
- salome/kernel/SALOME__POA/__init__.py +19 -0
- salome/kernel/SALOME_utilities.py +63 -0
- salome/kernel/SalomeSDSClt.py +552 -0
- salome/kernel/TestKiller.py +76 -0
- salome/kernel/Utils_Identity.py +93 -0
- salome/kernel/_ArgvKeeper.so +0 -0
- salome/kernel/_KernelBasis.so +0 -0
- salome/kernel/_KernelContainer.so +0 -0
- salome/kernel/_KernelDS.so +0 -0
- salome/kernel/_KernelLauncher.so +0 -0
- salome/kernel/_KernelLogger.so +0 -0
- salome/kernel/_KernelModuleCatalog.so +0 -0
- salome/kernel/_KernelSDS.so +0 -0
- salome/kernel/_KernelServices.so +0 -0
- salome/kernel/_NamingService.so +0 -0
- salome/kernel/_calcium.so +0 -0
- salome/kernel/_libNOTIFICATION.so +0 -0
- salome/kernel/_libSALOME_Comm.so +0 -0
- salome/kernel/_libSALOME_LifeCycleCORBA.so +0 -0
- salome/kernel/_pylauncher.so +0 -0
- salome/kernel/addToKillList_impl.py +127 -0
- salome/kernel/batchmode_salome.py +295 -0
- salome/kernel/calcium.py +866 -0
- salome/kernel/dsccalcium.py +98 -0
- salome/kernel/iparameters.py +255 -0
- salome/kernel/kernel_test.py +114 -0
- salome/kernel/killSalomeWithPort_impl.py +518 -0
- salome/kernel/killSalome_impl.py +94 -0
- salome/kernel/launchConfigureParser.py +1234 -0
- salome/kernel/launcher_proxy.py +122 -0
- salome/kernel/libNOTIFICATION.py +119 -0
- salome/kernel/libSALOME_Comm.py +85 -0
- salome/kernel/libSALOME_LifeCycleCORBA.py +232 -0
- salome/kernel/main.py +8 -0
- salome/kernel/nameserver.py +134 -0
- salome/kernel/nstest_idl.py +129 -0
- salome/kernel/omnipatch.py +136 -0
- salome/kernel/orbmodule.py +246 -0
- salome/kernel/parseConfigFile.py +261 -0
- salome/kernel/pylauncher.py +883 -0
- salome/kernel/runConsole_impl.py +224 -0
- salome/kernel/runSalomeCommon.py +418 -0
- salome/kernel/runSalomeNoServer_impl.py +48 -0
- salome/kernel/runSalomeOld_impl.py +603 -0
- salome/kernel/runSalomeOnDemand_impl.py +72 -0
- salome/kernel/runSalome_impl.py +341 -0
- salome/kernel/runSession.py +360 -0
- salome/kernel/runTests.py +90 -0
- salome/kernel/salome/__init__.py +648 -0
- salome/kernel/salome/kernel/__init__.py +111 -0
- salome/kernel/salome/kernel/datamodeler.py +363 -0
- salome/kernel/salome/kernel/deprecation.py +165 -0
- salome/kernel/salome/kernel/diclookup.py +137 -0
- salome/kernel/salome/kernel/enumerate.py +232 -0
- salome/kernel/salome/kernel/logconfig.py +27 -0
- salome/kernel/salome/kernel/logger.py +290 -0
- salome/kernel/salome/kernel/parametric/__init__.py +26 -0
- salome/kernel/salome/kernel/parametric/compo_utils.py +137 -0
- salome/kernel/salome/kernel/parametric/pyscript_utils.py +135 -0
- salome/kernel/salome/kernel/parametric/study_exchange_vars.py +285 -0
- salome/kernel/salome/kernel/pyunittester.py +184 -0
- salome/kernel/salome/kernel/services.py +267 -0
- salome/kernel/salome/kernel/studyedit.py +637 -0
- salome/kernel/salome/kernel/syshelper.py +116 -0
- salome/kernel/salome/kernel/termcolor.py +239 -0
- salome/kernel/salome/kernel/testdata.py +159 -0
- salome/kernel/salome/kernel/threadhelper.py +385 -0
- salome/kernel/salome/kernel/uiexception.py +121 -0
- salome/kernel/salome/kernel/unittester.py +89 -0
- salome/kernel/salomeContextUtils.py +353 -0
- salome/kernel/salomeContext_impl.py +731 -0
- salome/kernel/salome_ComponentGUI.py +92 -0
- salome/kernel/salome_genericobj.py +44 -0
- salome/kernel/salome_iapp.py +206 -0
- salome/kernel/salome_instance_impl.py +109 -0
- salome/kernel/salome_kernel_utils.py +88 -0
- salome/kernel/salome_notebook.py +183 -0
- salome/kernel/salome_psutil.py +94 -0
- salome/kernel/salome_pynode.py +74 -0
- salome/kernel/salome_study.py +347 -0
- salome/kernel/salome_test.py +56 -0
- salome/kernel/salome_utils.py +563 -0
- salome/kernel/salome_version.py +164 -0
- salome/kernel/searchFreePort.py +130 -0
- salome/kernel/server.py +154 -0
- salome/kernel/setenv_impl.py +240 -0
- salome/kernel/share/salome/resources/kernel/Anita semi square.ttf +0 -0
- salome/kernel/share/salome/resources/kernel/CatalogModulePersonnel.xml_skel +24 -0
- salome/kernel/share/salome/resources/kernel/CatalogResources.xml +4 -0
- salome/kernel/share/salome/resources/kernel/KERNELCatalog.xml +102 -0
- salome/kernel/share/salome/resources/kernel/SALOMEDS_Resources +10 -0
- salome/kernel/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_MPI_LAN.py +19 -0
- salome/kernel/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_MPI_MPICH.py +18 -0
- salome/kernel/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_MPI_OPENMPI.py +21 -0
- salome/kernel/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_NO_MPI.py +25 -0
- salome/kernel/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_REMOTE.py +108 -0
- salome/kernel/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_REMOTE_OLD.py +115 -0
- salome/kernel/share/salome/resources/kernel/ScriptsTemplate/script_parameters.py +25 -0
- salome/kernel/share/salome/resources/kernel/app-template/CMakeLists.txt +125 -0
- salome/kernel/share/salome/resources/kernel/app-template/LICENCE +504 -0
- salome/kernel/share/salome/resources/kernel/app-template/README +0 -0
- salome/kernel/share/salome/resources/kernel/app-template/doc/CMakeLists.txt +31 -0
- salome/kernel/share/salome/resources/kernel/app-template/doc/README +1 -0
- salome/kernel/share/salome/resources/kernel/app-template/doc/conf.py.in +197 -0
- salome/kernel/share/salome/resources/kernel/app-template/doc/index.rst +14 -0
- salome/kernel/share/salome/resources/kernel/app-template/doc/intro.rst +4 -0
- salome/kernel/share/salome/resources/kernel/app-template/doc/link.rst +4 -0
- salome/kernel/share/salome/resources/kernel/app-template/resources/CMakeLists.txt +36 -0
- salome/kernel/share/salome/resources/kernel/app-template/resources/SalomeApp.xml.in +30 -0
- salome/kernel/share/salome/resources/kernel/app-template/resources/about.png +0 -0
- salome/kernel/share/salome/resources/kernel/app-template/resources/app_icon.png +0 -0
- salome/kernel/share/salome/resources/kernel/app-template/resources/app_logo.png +0 -0
- salome/kernel/share/salome/resources/kernel/app-template/resources/doc/CMakeLists.txt +27 -0
- salome/kernel/share/salome/resources/kernel/app-template/resources/doc/README +1 -0
- salome/kernel/share/salome/resources/kernel/app-template/resources/doc/sample.pdf +0 -0
- salome/kernel/share/salome/resources/kernel/app-template/resources/icon_about.png +0 -0
- salome/kernel/share/salome/resources/kernel/app-template/resources/splash.png +0 -0
- salome/kernel/share/salome/resources/kernel/app-template/src/CMakeLists.txt +22 -0
- salome/kernel/share/salome/resources/kernel/app-template/src/resources/CMakeLists.txt +34 -0
- salome/kernel/share/salome/resources/kernel/app-template/src/resources/LightApp_images.ts +23 -0
- salome/kernel/share/salome/resources/kernel/app-template/src/resources/LightApp_msg_en.ts +35 -0
- salome/kernel/share/salome/resources/kernel/app-template/src/resources/LightApp_msg_fr.ts +35 -0
- salome/kernel/share/salome/resources/kernel/app-template/src/resources/LightApp_msg_ja.ts +35 -0
- salome/kernel/share/salome/resources/kernel/app-template/src/tests/CMakeLists.txt +29 -0
- salome/kernel/share/salome/resources/kernel/app-template/src/tests/README +1 -0
- salome/kernel/share/salome/resources/kernel/app-template/src/tests/helloWorld.py +1 -0
- salome/kernel/share/salome/resources/kernel/background.png +0 -0
- salome/kernel/share/salome/resources/kernel/channel.cfg +278 -0
- salome/kernel/share/salome/resources/kernel/testLauncher.xml +10 -0
- salome/kernel/version_and_config.py +24 -0
- salome/share/salome/resources/kernel/Anita semi square.ttf +0 -0
- salome/share/salome/resources/kernel/CatalogModulePersonnel.xml_skel +24 -0
- salome/share/salome/resources/kernel/CatalogResources.xml +4 -0
- salome/share/salome/resources/kernel/KERNELCatalog.xml +102 -0
- salome/share/salome/resources/kernel/SALOMEDS_Resources +10 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_MPI_LAN.py +19 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_MPI_MPICH.py +18 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_MPI_OPENMPI.py +21 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_NO_MPI.py +25 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_REMOTE.py +108 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_REMOTE_OLD.py +115 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/script_parameters.py +25 -0
- salome/share/salome/resources/kernel/app-template/CMakeLists.txt +125 -0
- salome/share/salome/resources/kernel/app-template/LICENCE +504 -0
- salome/share/salome/resources/kernel/app-template/README +0 -0
- salome/share/salome/resources/kernel/app-template/doc/CMakeLists.txt +31 -0
- salome/share/salome/resources/kernel/app-template/doc/README +1 -0
- salome/share/salome/resources/kernel/app-template/doc/conf.py.in +197 -0
- salome/share/salome/resources/kernel/app-template/doc/index.rst +14 -0
- salome/share/salome/resources/kernel/app-template/doc/intro.rst +4 -0
- salome/share/salome/resources/kernel/app-template/doc/link.rst +4 -0
- salome/share/salome/resources/kernel/app-template/resources/CMakeLists.txt +36 -0
- salome/share/salome/resources/kernel/app-template/resources/SalomeApp.xml.in +30 -0
- salome/share/salome/resources/kernel/app-template/resources/about.png +0 -0
- salome/share/salome/resources/kernel/app-template/resources/app_icon.png +0 -0
- salome/share/salome/resources/kernel/app-template/resources/app_logo.png +0 -0
- salome/share/salome/resources/kernel/app-template/resources/doc/CMakeLists.txt +27 -0
- salome/share/salome/resources/kernel/app-template/resources/doc/README +1 -0
- salome/share/salome/resources/kernel/app-template/resources/doc/sample.pdf +0 -0
- salome/share/salome/resources/kernel/app-template/resources/icon_about.png +0 -0
- salome/share/salome/resources/kernel/app-template/resources/splash.png +0 -0
- salome/share/salome/resources/kernel/app-template/src/CMakeLists.txt +22 -0
- salome/share/salome/resources/kernel/app-template/src/resources/CMakeLists.txt +34 -0
- salome/share/salome/resources/kernel/app-template/src/resources/LightApp_images.ts +23 -0
- salome/share/salome/resources/kernel/app-template/src/resources/LightApp_msg_en.ts +35 -0
- salome/share/salome/resources/kernel/app-template/src/resources/LightApp_msg_fr.ts +35 -0
- salome/share/salome/resources/kernel/app-template/src/resources/LightApp_msg_ja.ts +35 -0
- salome/share/salome/resources/kernel/app-template/src/tests/CMakeLists.txt +29 -0
- salome/share/salome/resources/kernel/app-template/src/tests/README +1 -0
- salome/share/salome/resources/kernel/app-template/src/tests/helloWorld.py +1 -0
- salome/share/salome/resources/kernel/background.png +0 -0
- salome/share/salome/resources/kernel/channel.cfg +278 -0
- salome/share/salome/resources/kernel/testLauncher.xml +10 -0
- salome_kernel-9.14.0.post3.dist-info/METADATA +25 -0
- salome_kernel-9.14.0.post3.dist-info/RECORD +443 -0
- salome_kernel-9.14.0.post3.dist-info/WHEEL +6 -0
- salome_kernel-9.14.0.post3.dist-info/entry_points.txt +2 -0
- salome_kernel-9.14.0.post3.dist-info/sboms/auditwheel.cdx.json +1 -0
- salome_kernel.libs/libArgvKeeper-822351d5.so +0 -0
- salome_kernel.libs/libCOS4-b4544fb9.so.2.5 +0 -0
- salome_kernel.libs/libCOSDynamic4-618dbb1d.so.2.5 +0 -0
- salome_kernel.libs/libCalciumC-1aac12fd.so +0 -0
- salome_kernel.libs/libDF-281cc999.so +0 -0
- salome_kernel.libs/libLauncher-d5172385.so +0 -0
- salome_kernel.libs/libLauncherWrapHelper-b990b914.so +0 -0
- salome_kernel.libs/libOpUtil-b4b3b9b6.so +0 -0
- salome_kernel.libs/libRegistry-e24daafb.so +0 -0
- salome_kernel.libs/libResourcesManager-f4ef9548.so +0 -0
- salome_kernel.libs/libSALOMEBasics-f4d874ac.so +0 -0
- salome_kernel.libs/libSALOMELocalTrace-a3992e5b.so +0 -0
- salome_kernel.libs/libSALOMELog-55805468.so +0 -0
- salome_kernel.libs/libSalomeCalcium-04a9dc03.so +0 -0
- salome_kernel.libs/libSalomeCatalog-a58dcc67.so +0 -0
- salome_kernel.libs/libSalomeCommunication-6013ebb8.so +0 -0
- salome_kernel.libs/libSalomeContainer-d266bf26.so +0 -0
- salome_kernel.libs/libSalomeContainerServer-3bf78497.so +0 -0
- salome_kernel.libs/libSalomeDS-09d10dd2.so +0 -0
- salome_kernel.libs/libSalomeDSCContainer-38c5ee31.so +0 -0
- salome_kernel.libs/libSalomeDSCSuperv-4106fd50.so +0 -0
- salome_kernel.libs/libSalomeDSCSupervBasic-d465171a.so +0 -0
- salome_kernel.libs/libSalomeDSClient-cfd124a5.so +0 -0
- salome_kernel.libs/libSalomeDSImpl-d14f88fc.so +0 -0
- salome_kernel.libs/libSalomeDatastream-450015c8.so +0 -0
- salome_kernel.libs/libSalomeGenericObj-2571fdbd.so +0 -0
- salome_kernel.libs/libSalomeHDFPersist-e16c7867.so +0 -0
- salome_kernel.libs/libSalomeIDLKernel-2eb1ed8e.so +0 -0
- salome_kernel.libs/libSalomeKernelHelpers-2ef9cb99.so +0 -0
- salome_kernel.libs/libSalomeLauncher-4cdc15f2.so +0 -0
- salome_kernel.libs/libSalomeLifeCycleCORBA-c446a5ee.so +0 -0
- salome_kernel.libs/libSalomeLoggerServer-bb9e76be.so +0 -0
- salome_kernel.libs/libSalomeNS-d87194d5.so +0 -0
- salome_kernel.libs/libSalomeNotification-83bfb2ff.so +0 -0
- salome_kernel.libs/libSalomeORB-07883efb.so +0 -0
- salome_kernel.libs/libSalomePalm-f0296bca.so +0 -0
- salome_kernel.libs/libSalomeResourcesManager-5a7077a0.so +0 -0
- salome_kernel.libs/libSalomeSDS-fd9bcce1.so +0 -0
- salome_kernel.libs/libSalomeTestComponentEngine-432d7922.so +0 -0
- salome_kernel.libs/libTOOLSDS-82342bb4.so +0 -0
- salome_kernel.libs/libbatch-779d48ee.so +0 -0
- salome_kernel.libs/libboost_atomic-489c2d94.so.1.81.0 +0 -0
- salome_kernel.libs/libboost_filesystem-e610b554.so.1.81.0 +0 -0
- salome_kernel.libs/libboost_system-4a7650ea.so.1.81.0 +0 -0
- salome_kernel.libs/libcppunit-1-17e77af1.12.so.1.0.0 +0 -0
- salome_kernel.libs/libhdf5-42ab48a9.so.103.0.0 +0 -0
- salome_kernel.libs/liblzma-004595ca.so.5.2.2 +0 -0
- salome_kernel.libs/libomniDynamic4-9edc765d.so.2.5 +0 -0
- salome_kernel.libs/libomniORB4-4725824d.so.2.5 +0 -0
- salome_kernel.libs/libomnithread-99f9d0d3.so.4.1 +0 -0
- salome_kernel.libs/libwith_loggerTraceCollector-6341a194.so +0 -0
- salome_kernel.libs/libwith_loggerTraceCollector.so +0 -0
- salome_kernel.libs/libxml2-3998bec4.so.2.9.1 +0 -0
|
@@ -0,0 +1,731 @@
|
|
|
1
|
+
#! /usr/bin/env python3
|
|
2
|
+
# Copyright (C) 2013-2024 CEA, EDF, OPEN CASCADE
|
|
3
|
+
#
|
|
4
|
+
# This library is free software; you can redistribute it and/or
|
|
5
|
+
# modify it under the terms of the GNU Lesser General Public
|
|
6
|
+
# License as published by the Free Software Foundation; either
|
|
7
|
+
# version 2.1 of the License, or (at your option) any later version.
|
|
8
|
+
#
|
|
9
|
+
# This library is distributed in the hope that it will be useful,
|
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
12
|
+
# Lesser General Public License for more details.
|
|
13
|
+
#
|
|
14
|
+
# You should have received a copy of the GNU Lesser General Public
|
|
15
|
+
# License along with this library; if not, write to the Free Software
|
|
16
|
+
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
17
|
+
#
|
|
18
|
+
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
|
19
|
+
#
|
|
20
|
+
|
|
21
|
+
import os
|
|
22
|
+
import sys
|
|
23
|
+
import logging
|
|
24
|
+
import configparser
|
|
25
|
+
if sys.version_info[:2] >= (3,12):
|
|
26
|
+
from configparser import ConfigParser as SafeConfigParser
|
|
27
|
+
else:
|
|
28
|
+
from configparser import SafeConfigParser
|
|
29
|
+
from .parseConfigFile import parseConfigFile
|
|
30
|
+
|
|
31
|
+
import tempfile
|
|
32
|
+
import pickle
|
|
33
|
+
import subprocess
|
|
34
|
+
import sys
|
|
35
|
+
import platform
|
|
36
|
+
|
|
37
|
+
from .salomeContextUtils import SalomeContextException
|
|
38
|
+
|
|
39
|
+
def usage(appended_cmd_doc = "", appended_opt_doc = ""):
|
|
40
|
+
add_in_help = {"appended_cmd_doc":appended_cmd_doc,"appended_opt_doc":appended_opt_doc}
|
|
41
|
+
msg = '''\
|
|
42
|
+
Usage: salome [command] [options] [--config=<file,folder,...>] [--with-env-modules=<env_module1,env_module2,...>]
|
|
43
|
+
|
|
44
|
+
Commands:
|
|
45
|
+
=========
|
|
46
|
+
start Start a new SALOME instance. Start a single SALOME_Session_Server_No_Server
|
|
47
|
+
process with environment relevant to the application and hosting all servants in it.
|
|
48
|
+
context Initialize SALOME context. Current environment is extended.
|
|
49
|
+
shell Initialize SALOME context, attached to the last created SALOME
|
|
50
|
+
instance if any, and executes scripts passed as command arguments.
|
|
51
|
+
User works in a Shell terminal. SALOME environment is set but
|
|
52
|
+
application is not started.
|
|
53
|
+
test Run SALOME tests.
|
|
54
|
+
info Display some information about SALOME.
|
|
55
|
+
doc <module(s)> Show online module documentation (if available).
|
|
56
|
+
Module names must be separated by blank characters.
|
|
57
|
+
help Show this message.
|
|
58
|
+
remote run command in SALOME environment from remote call, ssh or rsh.
|
|
59
|
+
withsession Start a new SWS SALOME instance with multiple servers hosting all servants.
|
|
60
|
+
connect In SWS context, Connect a Python console to the active SALOME instance.
|
|
61
|
+
kill <port(s)> In SWS context, Terminate SALOME instances running on given ports for current user.
|
|
62
|
+
Port numbers must be separated by blank characters.
|
|
63
|
+
killall Terminate *all* SALOME running SWS instances for current user.
|
|
64
|
+
Do not start a new one.
|
|
65
|
+
%(appended_cmd_doc)s
|
|
66
|
+
If no command is given, default is start.
|
|
67
|
+
|
|
68
|
+
Command options:
|
|
69
|
+
================
|
|
70
|
+
Use salome <command> --help to show help on command. Available for the
|
|
71
|
+
following commands: start, shell, connect, test, info.
|
|
72
|
+
|
|
73
|
+
--config=<file,folder,...>
|
|
74
|
+
==========================
|
|
75
|
+
Initialize SALOME context from a list of context files and/or a list
|
|
76
|
+
of folders containing context files. The list is comma-separated, without
|
|
77
|
+
any blank characters.
|
|
78
|
+
|
|
79
|
+
--with-env-modules=<env_module1,env_module2,...>
|
|
80
|
+
================================================
|
|
81
|
+
Initialize SALOME context with the provided additional environment modules.
|
|
82
|
+
The list is comma-separated, without any blank characters.
|
|
83
|
+
%(appended_opt_doc)s
|
|
84
|
+
'''
|
|
85
|
+
|
|
86
|
+
print(msg%add_in_help)
|
|
87
|
+
#
|
|
88
|
+
|
|
89
|
+
"""
|
|
90
|
+
The SalomeContext class in an API to configure SALOME context then
|
|
91
|
+
start SALOME using a single python command.
|
|
92
|
+
|
|
93
|
+
"""
|
|
94
|
+
class SalomeContext:
|
|
95
|
+
"""
|
|
96
|
+
Initialize context from a list of configuration files
|
|
97
|
+
identified by their names.
|
|
98
|
+
These files should be in appropriate .cfg format.
|
|
99
|
+
"""
|
|
100
|
+
def __init__(self, configFileNames=0):
|
|
101
|
+
self.getLogger().setLevel(logging.INFO)
|
|
102
|
+
#it could be None explicitly (if user use multiples setVariable...for standalone)
|
|
103
|
+
if configFileNames is None:
|
|
104
|
+
return
|
|
105
|
+
configFileNames = configFileNames or []
|
|
106
|
+
if len(configFileNames) == 0:
|
|
107
|
+
raise SalomeContextException("No configuration files given")
|
|
108
|
+
|
|
109
|
+
reserved=['PATH', 'DYLD_FALLBACK_LIBRARY_PATH', 'DYLD_LIBRARY_PATH', 'LD_LIBRARY_PATH', 'PYTHONPATH', 'MANPATH', 'PV_PLUGIN_PATH', 'INCLUDE', 'LIBPATH', 'SALOME_PLUGINS_PATH', 'LIBRARY_PATH', 'QT_PLUGIN_PATH']
|
|
110
|
+
for filename in configFileNames:
|
|
111
|
+
basename, extension = os.path.splitext(filename)
|
|
112
|
+
if extension == ".cfg":
|
|
113
|
+
self.__setContextFromConfigFile(filename, reserved)
|
|
114
|
+
else:
|
|
115
|
+
self.getLogger().error("Unrecognized extension for configuration file: %s", filename)
|
|
116
|
+
#
|
|
117
|
+
|
|
118
|
+
def __loadEnvModules(self, env_modules):
|
|
119
|
+
modulecmd = os.getenv('LMOD_CMD')
|
|
120
|
+
if not modulecmd:
|
|
121
|
+
raise SalomeContextException("Module environment not present")
|
|
122
|
+
return
|
|
123
|
+
try:
|
|
124
|
+
out, err = subprocess.Popen([modulecmd, "python", "try-load"] + env_modules, stdout=subprocess.PIPE).communicate()
|
|
125
|
+
exec(out) # define specific environment variables
|
|
126
|
+
except Exception:
|
|
127
|
+
raise SalomeContextException("Failed to load env modules: %s ..." % ' '.join(env_modules))
|
|
128
|
+
pass
|
|
129
|
+
#
|
|
130
|
+
|
|
131
|
+
def runSalome(self, args):
|
|
132
|
+
import os
|
|
133
|
+
# Run this module as a script, in order to use appropriate Python interpreter
|
|
134
|
+
# according to current path (initialized from context files).
|
|
135
|
+
env_modules_option = "--with-env-modules="
|
|
136
|
+
env_modules_l = [x for x in args if x.startswith(env_modules_option)]
|
|
137
|
+
if env_modules_l:
|
|
138
|
+
env_modules = env_modules_l[-1][len(env_modules_option):].split(',')
|
|
139
|
+
self.__loadEnvModules(env_modules)
|
|
140
|
+
args = [x for x in args if not x.startswith(env_modules_option)]
|
|
141
|
+
else:
|
|
142
|
+
env_modules = os.getenv("SALOME_ENV_MODULES", None)
|
|
143
|
+
if env_modules:
|
|
144
|
+
self.__loadEnvModules(env_modules.split(','))
|
|
145
|
+
|
|
146
|
+
absoluteAppliPath = os.getenv('ABSOLUTE_APPLI_PATH','')
|
|
147
|
+
env_copy = os.environ.copy()
|
|
148
|
+
selfBytes= pickle.dumps(self, protocol=0)
|
|
149
|
+
argsBytes= pickle.dumps(args, protocol=0)
|
|
150
|
+
cmd = ['python3', os.path.join(absoluteAppliPath,"bin","salome","salomeContext.py"), selfBytes.decode('latin1'), argsBytes.decode('latin1')]
|
|
151
|
+
proc = subprocess.Popen(cmd, shell=False, close_fds=True, env=env_copy)
|
|
152
|
+
out, err = proc.communicate()
|
|
153
|
+
return out, err, proc.returncode
|
|
154
|
+
#
|
|
155
|
+
|
|
156
|
+
"""Append value to PATH environment variable"""
|
|
157
|
+
def addToPath(self, value):
|
|
158
|
+
self.addToVariable('PATH', value)
|
|
159
|
+
#
|
|
160
|
+
|
|
161
|
+
"""Append value to LD_LIBRARY_PATH environment variable"""
|
|
162
|
+
def addToLdLibraryPath(self, value):
|
|
163
|
+
if sys.platform == 'win32':
|
|
164
|
+
self.addToVariable('PATH', value)
|
|
165
|
+
elif sys.platform == 'darwin':
|
|
166
|
+
if "LAPACK" in value:
|
|
167
|
+
self.addToVariable('DYLD_FALLBACK_LIBRARY_PATH', value)
|
|
168
|
+
else:
|
|
169
|
+
self.addToVariable('DYLD_LIBRARY_PATH', value)
|
|
170
|
+
else:
|
|
171
|
+
self.addToVariable('LD_LIBRARY_PATH', value)
|
|
172
|
+
#
|
|
173
|
+
|
|
174
|
+
"""Append value to DYLD_LIBRARY_PATH environment variable"""
|
|
175
|
+
def addToDyldLibraryPath(self, value):
|
|
176
|
+
self.addToVariable('DYLD_LIBRARY_PATH', value)
|
|
177
|
+
#
|
|
178
|
+
|
|
179
|
+
"""Append value to PYTHONPATH environment variable"""
|
|
180
|
+
def addToPythonPath(self, value):
|
|
181
|
+
self.addToVariable('PYTHONPATH', value)
|
|
182
|
+
#
|
|
183
|
+
|
|
184
|
+
"""Set environment variable to value"""
|
|
185
|
+
def setVariable(self, name, value, overwrite=False):
|
|
186
|
+
env = os.getenv(name, '')
|
|
187
|
+
if env and not overwrite:
|
|
188
|
+
self.getLogger().error("Environment variable already existing (and not overwritten): %s=%s", name, value)
|
|
189
|
+
return
|
|
190
|
+
|
|
191
|
+
if env:
|
|
192
|
+
self.getLogger().debug("Overwriting environment variable: %s=%s", name, value)
|
|
193
|
+
|
|
194
|
+
value = os.path.expandvars(value) # expand environment variables
|
|
195
|
+
self.getLogger().debug("Set environment variable: %s=%s", name, value)
|
|
196
|
+
os.environ[name] = value
|
|
197
|
+
#
|
|
198
|
+
|
|
199
|
+
def setDefaultValue(self, name, value):
|
|
200
|
+
""" Set environment variable only if it is undefined."""
|
|
201
|
+
env = os.getenv(name, '')
|
|
202
|
+
if not env:
|
|
203
|
+
value = os.path.expandvars(value) # expand environment variables
|
|
204
|
+
self.getLogger().debug("Set environment variable: %s=%s", name, value)
|
|
205
|
+
os.environ[name] = value
|
|
206
|
+
|
|
207
|
+
"""Unset environment variable"""
|
|
208
|
+
def unsetVariable(self, name):
|
|
209
|
+
if name in os.environ:
|
|
210
|
+
del os.environ[name]
|
|
211
|
+
#
|
|
212
|
+
|
|
213
|
+
"""Prepend value to environment variable"""
|
|
214
|
+
def addToVariable(self, name, value, separator=os.pathsep):
|
|
215
|
+
if value == '':
|
|
216
|
+
return
|
|
217
|
+
|
|
218
|
+
value = os.path.expandvars(value) # expand environment variables
|
|
219
|
+
self.getLogger().debug("Add to %s: %s", name, value)
|
|
220
|
+
env = os.getenv(name, None)
|
|
221
|
+
if env is None:
|
|
222
|
+
os.environ[name] = value
|
|
223
|
+
else:
|
|
224
|
+
os.environ[name] = value + separator + env
|
|
225
|
+
#
|
|
226
|
+
|
|
227
|
+
"""Append a variable"""
|
|
228
|
+
def appendVariable(self, name, value, separator=os.pathsep):
|
|
229
|
+
if value == '':
|
|
230
|
+
return
|
|
231
|
+
|
|
232
|
+
value = os.path.expandvars(value) # expand environment variables
|
|
233
|
+
env = os.getenv(name, None)
|
|
234
|
+
if env is None:
|
|
235
|
+
os.environ[name] = value
|
|
236
|
+
else:
|
|
237
|
+
os.environ[name] = env + separator + value
|
|
238
|
+
return
|
|
239
|
+
|
|
240
|
+
"""Remove value from environment variable"""
|
|
241
|
+
def removeFromVariable(self, name, value, separator=os.pathsep):
|
|
242
|
+
if value == '':
|
|
243
|
+
return
|
|
244
|
+
|
|
245
|
+
value = os.path.expandvars(value) # expand environment variables
|
|
246
|
+
self.getLogger().debug("Remove from %s: %s", name, value)
|
|
247
|
+
env = os.getenv(name, None)
|
|
248
|
+
if env == value:
|
|
249
|
+
env = ''
|
|
250
|
+
else:
|
|
251
|
+
# env = env.removeprefix(value + separator) (Python >= 3.9)
|
|
252
|
+
str = value + separator
|
|
253
|
+
if env.startswith(str):
|
|
254
|
+
env = env[len(str):]
|
|
255
|
+
# env = env.removesuffix(separator + value) (Python >= 3.9)
|
|
256
|
+
str = separator + value
|
|
257
|
+
if env.endswith(str):
|
|
258
|
+
env = env[:-len(str)]
|
|
259
|
+
env = env.replace(separator + value + separator, ':')
|
|
260
|
+
|
|
261
|
+
os.environ[name] = env
|
|
262
|
+
#
|
|
263
|
+
|
|
264
|
+
###################################
|
|
265
|
+
# This begins the private section #
|
|
266
|
+
###################################
|
|
267
|
+
|
|
268
|
+
def __parseArguments(self, args):
|
|
269
|
+
if len(args) == 0 or args[0].startswith("-"):
|
|
270
|
+
return None, args
|
|
271
|
+
|
|
272
|
+
command = args[0]
|
|
273
|
+
options = args[1:]
|
|
274
|
+
|
|
275
|
+
availableCommands = {
|
|
276
|
+
'start' : '_sessionless',
|
|
277
|
+
'withsession' : '_runAppli',
|
|
278
|
+
'context' : '_setContext',
|
|
279
|
+
'shell' : '_runSession',
|
|
280
|
+
'remote' : '_runRemote',
|
|
281
|
+
'connect' : '_runConsole',
|
|
282
|
+
'kill' : '_kill',
|
|
283
|
+
'killall' : '_killAll',
|
|
284
|
+
'test' : '_runTests',
|
|
285
|
+
'info' : '_showInfo',
|
|
286
|
+
'doc' : '_showDoc',
|
|
287
|
+
'help' : '_usage',
|
|
288
|
+
'coffee' : '_makeCoffee',
|
|
289
|
+
'car' : '_getCar',
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
if command not in availableCommands:
|
|
293
|
+
command = "start"
|
|
294
|
+
options = args
|
|
295
|
+
|
|
296
|
+
return availableCommands[command], options
|
|
297
|
+
#
|
|
298
|
+
|
|
299
|
+
"""
|
|
300
|
+
Run SALOME!
|
|
301
|
+
Args consist in a mandatory command followed by optional parameters.
|
|
302
|
+
See usage for details on commands.
|
|
303
|
+
"""
|
|
304
|
+
def _startSalome(self, args):
|
|
305
|
+
import os
|
|
306
|
+
import sys
|
|
307
|
+
|
|
308
|
+
command, options = self.__parseArguments(args)
|
|
309
|
+
sys.argv = options
|
|
310
|
+
|
|
311
|
+
if command is None:
|
|
312
|
+
if args and args[0] in ["-h","--help","help"]:
|
|
313
|
+
usage()
|
|
314
|
+
return 0
|
|
315
|
+
# try to default to "start" command
|
|
316
|
+
command = "_sessionless"
|
|
317
|
+
|
|
318
|
+
try:
|
|
319
|
+
res = getattr(self, command)(options) # run appropriate method
|
|
320
|
+
return res or 0
|
|
321
|
+
except SystemExit as ex:
|
|
322
|
+
if ex.code != 0:
|
|
323
|
+
self.getLogger().error("SystemExit %s in method %s.", ex.code, command)
|
|
324
|
+
return ex.code
|
|
325
|
+
except SalomeContextException as e:
|
|
326
|
+
self.getLogger().error(e)
|
|
327
|
+
return 1
|
|
328
|
+
except Exception:
|
|
329
|
+
self.getLogger().error("Unexpected error:")
|
|
330
|
+
import traceback
|
|
331
|
+
traceback.print_exc()
|
|
332
|
+
return 1
|
|
333
|
+
#
|
|
334
|
+
|
|
335
|
+
def __setContextFromConfigFile(self, filename, reserved=None):
|
|
336
|
+
mesa_root_dir = "MESA_ROOT_DIR"
|
|
337
|
+
if reserved is None:
|
|
338
|
+
reserved = []
|
|
339
|
+
try:
|
|
340
|
+
configInfo = parseConfigFile(filename, reserved)
|
|
341
|
+
unsetVars = configInfo.unsetVariables
|
|
342
|
+
configVars = configInfo.outputVariables
|
|
343
|
+
reservedDict = configInfo.reservedValues
|
|
344
|
+
defaultValues = configInfo.defaultValues
|
|
345
|
+
except SalomeContextException as e:
|
|
346
|
+
msg = "%s"%e
|
|
347
|
+
self.getLogger().error(msg)
|
|
348
|
+
return 1
|
|
349
|
+
|
|
350
|
+
# unset variables
|
|
351
|
+
for var in unsetVars:
|
|
352
|
+
self.unsetVariable(var)
|
|
353
|
+
|
|
354
|
+
# mesa stuff
|
|
355
|
+
if "MESA_GL_VERSION_OVERRIDE" in os.environ:
|
|
356
|
+
configVarsDict = {k:v for (k,v) in configVars}
|
|
357
|
+
if mesa_root_dir in configVarsDict:
|
|
358
|
+
path_to_mesa_lib = os.path.join(configVarsDict[mesa_root_dir],"lib")
|
|
359
|
+
if os.name == "posix":
|
|
360
|
+
self.addToVariable("LD_LIBRARY_PATH",path_to_mesa_lib)
|
|
361
|
+
else:
|
|
362
|
+
self.addToVariable("PATH",path_to_mesa_lib)
|
|
363
|
+
|
|
364
|
+
# set context
|
|
365
|
+
for reserved in reservedDict:
|
|
366
|
+
a = [_f for _f in reservedDict[reserved] if _f] # remove empty elements
|
|
367
|
+
a = [ os.path.realpath(x) for x in a ]
|
|
368
|
+
reformattedVals = os.pathsep.join(a)
|
|
369
|
+
if reserved in ["INCLUDE", "LIBPATH"]:
|
|
370
|
+
self.addToVariable(reserved, reformattedVals, separator=' ')
|
|
371
|
+
else:
|
|
372
|
+
self.addToVariable(reserved, reformattedVals)
|
|
373
|
+
pass
|
|
374
|
+
|
|
375
|
+
|
|
376
|
+
for key,val in configVars:
|
|
377
|
+
self.setVariable(key, val, overwrite=True)
|
|
378
|
+
pass
|
|
379
|
+
|
|
380
|
+
for key,val in defaultValues:
|
|
381
|
+
self.setDefaultValue(key, val)
|
|
382
|
+
pass
|
|
383
|
+
|
|
384
|
+
pythonpath = os.getenv('PYTHONPATH','').split(os.pathsep)
|
|
385
|
+
pythonpath = [ os.path.realpath(x) for x in pythonpath ]
|
|
386
|
+
sys.path[:0] = pythonpath
|
|
387
|
+
#
|
|
388
|
+
|
|
389
|
+
def _runAppli(self, args=None):
|
|
390
|
+
if args is None:
|
|
391
|
+
args = []
|
|
392
|
+
# Initialize SALOME environment
|
|
393
|
+
sys.argv = ['runSalomeOld'] + args
|
|
394
|
+
import setenv
|
|
395
|
+
setenv.main(True, exeName="salome withsession")
|
|
396
|
+
|
|
397
|
+
import runSalomeOld
|
|
398
|
+
runSalomeOld.runSalome()
|
|
399
|
+
return 0
|
|
400
|
+
#
|
|
401
|
+
|
|
402
|
+
def _sessionless(self, args=None):
|
|
403
|
+
if args is None:
|
|
404
|
+
args = []
|
|
405
|
+
sys.argv = ['runSalome'] + args
|
|
406
|
+
import setenv
|
|
407
|
+
setenv.main(True, exeName="salome withsession")
|
|
408
|
+
|
|
409
|
+
from salome.kernel import runSalome_impl
|
|
410
|
+
runSalome_impl.runSalome()
|
|
411
|
+
return 0
|
|
412
|
+
#
|
|
413
|
+
|
|
414
|
+
def _setContext(self, args=None):
|
|
415
|
+
salome_context_set = os.getenv("SALOME_CONTEXT_SET")
|
|
416
|
+
if salome_context_set:
|
|
417
|
+
print("***")
|
|
418
|
+
print("*** SALOME context has already been set.")
|
|
419
|
+
print("*** Enter 'exit' (only once!) to leave SALOME context.")
|
|
420
|
+
print("***")
|
|
421
|
+
return 0
|
|
422
|
+
|
|
423
|
+
os.environ["SALOME_CONTEXT_SET"] = "yes"
|
|
424
|
+
print("***")
|
|
425
|
+
print("*** SALOME context is now set.")
|
|
426
|
+
print("*** Enter 'exit' (only once!) to leave SALOME context.")
|
|
427
|
+
print("***")
|
|
428
|
+
|
|
429
|
+
if sys.platform == 'win32':
|
|
430
|
+
cmd = ['cmd.exe']
|
|
431
|
+
else:
|
|
432
|
+
cmd = ["/bin/bash"]
|
|
433
|
+
proc = subprocess.Popen(cmd, shell=False, close_fds=True)
|
|
434
|
+
proc.communicate()
|
|
435
|
+
return proc.returncode
|
|
436
|
+
#
|
|
437
|
+
|
|
438
|
+
def _runSession(self, args=None):
|
|
439
|
+
if args is None:
|
|
440
|
+
args = []
|
|
441
|
+
sys.argv = ['runSession'] + args
|
|
442
|
+
from . import runSession
|
|
443
|
+
params, args = runSession.configureSession(args, exe="salome shell")
|
|
444
|
+
|
|
445
|
+
sys.argv = ['runSession'] + args
|
|
446
|
+
import setenv
|
|
447
|
+
setenv.main(True)
|
|
448
|
+
|
|
449
|
+
return runSession.runSession(params, args)
|
|
450
|
+
#
|
|
451
|
+
|
|
452
|
+
def _runRemote(self, args=None):
|
|
453
|
+
if args is None:
|
|
454
|
+
args = []
|
|
455
|
+
# complete salome environment
|
|
456
|
+
sys.argv = ['runRemote']
|
|
457
|
+
import setenv
|
|
458
|
+
setenv.main(True)
|
|
459
|
+
|
|
460
|
+
import runRemote
|
|
461
|
+
return runRemote.runRemote(args)
|
|
462
|
+
#
|
|
463
|
+
|
|
464
|
+
def _runConsole(self, args=None):
|
|
465
|
+
if args is None:
|
|
466
|
+
args = []
|
|
467
|
+
# Initialize SALOME environment
|
|
468
|
+
sys.argv = ['runConsole']
|
|
469
|
+
import setenv
|
|
470
|
+
setenv.main(True)
|
|
471
|
+
|
|
472
|
+
import runConsole
|
|
473
|
+
return runConsole.connect(args)
|
|
474
|
+
#
|
|
475
|
+
|
|
476
|
+
def _kill(self, args=None):
|
|
477
|
+
if args is None:
|
|
478
|
+
args = []
|
|
479
|
+
ports = args
|
|
480
|
+
if not ports:
|
|
481
|
+
print("Port number(s) not provided to command: salome kill <port(s)>")
|
|
482
|
+
return 1
|
|
483
|
+
|
|
484
|
+
import subprocess
|
|
485
|
+
sys.argv = ['kill']
|
|
486
|
+
import setenv
|
|
487
|
+
setenv.main(True)
|
|
488
|
+
if os.getenv("NSHOST") == "no_host":
|
|
489
|
+
os.unsetenv("NSHOST")
|
|
490
|
+
for port in ports:
|
|
491
|
+
if sys.platform == "win32":
|
|
492
|
+
proc = subprocess.Popen([os.getenv("PYTHONBIN"), "-m", "killSalomeWithPort", str(port)])
|
|
493
|
+
else:
|
|
494
|
+
proc = subprocess.Popen(["killSalomeWithPort.py", str(port)])
|
|
495
|
+
proc.communicate()
|
|
496
|
+
return 0
|
|
497
|
+
#
|
|
498
|
+
|
|
499
|
+
def _killAll(self, unused=None):
|
|
500
|
+
sys.argv = ['killAll']
|
|
501
|
+
import setenv
|
|
502
|
+
setenv.main(True)
|
|
503
|
+
if os.getenv("NSHOST") == "no_host":
|
|
504
|
+
os.unsetenv("NSHOST")
|
|
505
|
+
try:
|
|
506
|
+
from . import PortManager # mandatory
|
|
507
|
+
import subprocess
|
|
508
|
+
ports = PortManager.getBusyPorts()['this']
|
|
509
|
+
|
|
510
|
+
if ports:
|
|
511
|
+
for port in ports:
|
|
512
|
+
if sys.platform == "win32":
|
|
513
|
+
proc = subprocess.Popen([os.getenv("PYTHONBIN"), "-m", "killSalomeWithPort", str(port)])
|
|
514
|
+
else:
|
|
515
|
+
proc = subprocess.Popen(["killSalomeWithPort.py", str(port)])
|
|
516
|
+
proc.communicate()
|
|
517
|
+
except ImportError:
|
|
518
|
+
# :TODO: should be declared obsolete
|
|
519
|
+
from killSalome import killAllPorts
|
|
520
|
+
killAllPorts()
|
|
521
|
+
pass
|
|
522
|
+
from addToKillList import killList
|
|
523
|
+
killList()
|
|
524
|
+
return 0
|
|
525
|
+
#
|
|
526
|
+
|
|
527
|
+
def _runTests(self, args=None):
|
|
528
|
+
if args is None:
|
|
529
|
+
args = []
|
|
530
|
+
sys.argv = ['runTests']
|
|
531
|
+
import setenv
|
|
532
|
+
setenv.main(True)
|
|
533
|
+
|
|
534
|
+
from . import runTests
|
|
535
|
+
return runTests.runTests(args, exe="salome test")
|
|
536
|
+
#
|
|
537
|
+
|
|
538
|
+
def _showSoftwareVersions(self, softwares=None):
|
|
539
|
+
config = SafeConfigParser()
|
|
540
|
+
absoluteAppliPath = os.getenv('ABSOLUTE_APPLI_PATH')
|
|
541
|
+
filename = os.path.join(absoluteAppliPath, "sha1_collections.txt")
|
|
542
|
+
versions = {}
|
|
543
|
+
max_len = 0
|
|
544
|
+
with open(filename) as f:
|
|
545
|
+
for line in f:
|
|
546
|
+
try:
|
|
547
|
+
software, version, sha1 = line.split()
|
|
548
|
+
versions[software.upper()] = version
|
|
549
|
+
if len(software) > max_len:
|
|
550
|
+
max_len = len(software)
|
|
551
|
+
except Exception:
|
|
552
|
+
pass
|
|
553
|
+
pass
|
|
554
|
+
pass
|
|
555
|
+
if softwares:
|
|
556
|
+
for soft in softwares:
|
|
557
|
+
if soft.upper() in versions:
|
|
558
|
+
print(soft.upper().rjust(max_len), versions[soft.upper()])
|
|
559
|
+
else:
|
|
560
|
+
import collections
|
|
561
|
+
od = collections.OrderedDict(sorted(versions.items()))
|
|
562
|
+
for name, version in od.items():
|
|
563
|
+
print(name.rjust(max_len), versions[name])
|
|
564
|
+
pass
|
|
565
|
+
|
|
566
|
+
def _showInfo(self, args=None):
|
|
567
|
+
if args is None:
|
|
568
|
+
args = []
|
|
569
|
+
|
|
570
|
+
usage = "Usage: salome info [options]"
|
|
571
|
+
epilog = """\n
|
|
572
|
+
Display some information about SALOME.\n
|
|
573
|
+
Available options are:
|
|
574
|
+
-p,--ports Show the list of busy ports (running SALOME instances).
|
|
575
|
+
-s,--softwares [software(s)] Show the list and versions of SALOME softwares.
|
|
576
|
+
Software names must be separated by blank characters.
|
|
577
|
+
If no software is given, show version of all softwares.
|
|
578
|
+
-v,--version Show running SALOME version.
|
|
579
|
+
-h,--help Show this message.
|
|
580
|
+
"""
|
|
581
|
+
if not args:
|
|
582
|
+
args = ["--version"]
|
|
583
|
+
|
|
584
|
+
if "-h" in args or "--help" in args:
|
|
585
|
+
print(usage + epilog)
|
|
586
|
+
return 0
|
|
587
|
+
|
|
588
|
+
if "-p" in args or "--ports" in args:
|
|
589
|
+
from . import PortManager
|
|
590
|
+
ports = PortManager.getBusyPorts()
|
|
591
|
+
this_ports = ports['this']
|
|
592
|
+
other_ports = ports['other']
|
|
593
|
+
if this_ports or other_ports:
|
|
594
|
+
print("SALOME instances are running on the following ports:")
|
|
595
|
+
if this_ports:
|
|
596
|
+
print(" This application:", this_ports)
|
|
597
|
+
else:
|
|
598
|
+
print(" No SALOME instances of this application")
|
|
599
|
+
if other_ports:
|
|
600
|
+
print(" Other applications:", other_ports)
|
|
601
|
+
else:
|
|
602
|
+
print(" No SALOME instances of other applications")
|
|
603
|
+
else:
|
|
604
|
+
print("No SALOME instances are running")
|
|
605
|
+
|
|
606
|
+
if "-s" in args or "--softwares" in args:
|
|
607
|
+
if "-s" in args:
|
|
608
|
+
index = args.index("-s")
|
|
609
|
+
else:
|
|
610
|
+
index = args.index("--softwares")
|
|
611
|
+
indexEnd=index+1
|
|
612
|
+
while indexEnd < len(args) and args[indexEnd][0] != "-":
|
|
613
|
+
indexEnd = indexEnd + 1
|
|
614
|
+
self._showSoftwareVersions(softwares=args[index+1:indexEnd])
|
|
615
|
+
|
|
616
|
+
if "-v" in args or "--version" in args:
|
|
617
|
+
print("Running with python", platform.python_version())
|
|
618
|
+
return self._sessionless(["--version"])
|
|
619
|
+
|
|
620
|
+
return 0
|
|
621
|
+
#
|
|
622
|
+
|
|
623
|
+
def _showDoc(self, args=None):
|
|
624
|
+
if args is None:
|
|
625
|
+
args = []
|
|
626
|
+
|
|
627
|
+
modules = args
|
|
628
|
+
if not modules:
|
|
629
|
+
print("Module(s) not provided to command: salome doc <module(s)>")
|
|
630
|
+
return 1
|
|
631
|
+
|
|
632
|
+
appliPath = os.getenv("ABSOLUTE_APPLI_PATH")
|
|
633
|
+
if not appliPath:
|
|
634
|
+
raise SalomeContextException("Unable to find application path. Please check that the variable ABSOLUTE_APPLI_PATH is set.")
|
|
635
|
+
baseDir = os.path.join(appliPath, "share", "doc", "salome")
|
|
636
|
+
for module in modules:
|
|
637
|
+
docfile = os.path.join(baseDir, "gui", module.upper(), "index.html")
|
|
638
|
+
if not os.path.isfile(docfile):
|
|
639
|
+
docfile = os.path.join(baseDir, "tui", module.upper(), "index.html")
|
|
640
|
+
if not os.path.isfile(docfile):
|
|
641
|
+
docfile = os.path.join(baseDir, "dev", module.upper(), "index.html")
|
|
642
|
+
if os.path.isfile(docfile):
|
|
643
|
+
out, err = subprocess.Popen(["xdg-open", docfile]).communicate()
|
|
644
|
+
else:
|
|
645
|
+
print("Online documentation is not accessible for module:", module)
|
|
646
|
+
|
|
647
|
+
def _usage(self, unused=None):
|
|
648
|
+
usage()
|
|
649
|
+
#
|
|
650
|
+
|
|
651
|
+
def _makeCoffee(self, unused=None):
|
|
652
|
+
print(" (")
|
|
653
|
+
print(" ) (")
|
|
654
|
+
print(" ___...(-------)-....___")
|
|
655
|
+
print(" .-\"\" ) ( \"\"-.")
|
|
656
|
+
print(" .-\'``\'|-._ ) _.-|")
|
|
657
|
+
print(" / .--.| `\"\"---...........---\"\"` |")
|
|
658
|
+
print(" / / | |")
|
|
659
|
+
print(" | | | |")
|
|
660
|
+
print(" \\ \\ | |")
|
|
661
|
+
print(" `\\ `\\ | |")
|
|
662
|
+
print(" `\\ `| SALOME |")
|
|
663
|
+
print(" _/ /\\ 4 EVER /")
|
|
664
|
+
print(" (__/ \\ <3 /")
|
|
665
|
+
print(" _..---\"\"` \\ /`\"\"---.._")
|
|
666
|
+
print(" .-\' \\ / \'-.")
|
|
667
|
+
print(" : `-.__ __.-\' :")
|
|
668
|
+
print(" : ) \"\"---...---\"\" ( :")
|
|
669
|
+
print(" \'._ `\"--...___...--\"` _.\'")
|
|
670
|
+
print(" \\\"\"--..__ __..--\"\"/")
|
|
671
|
+
print(" \'._ \"\"\"----.....______.....----\"\"\" _.\'")
|
|
672
|
+
print(" `\"\"--..,,_____ _____,,..--\"\"`")
|
|
673
|
+
print(" `\"\"\"----\"\"\"`")
|
|
674
|
+
print("")
|
|
675
|
+
print(" SALOME is working for you; what else?")
|
|
676
|
+
print("")
|
|
677
|
+
#
|
|
678
|
+
|
|
679
|
+
def _getCar(self, unused=None):
|
|
680
|
+
print(" _____________")
|
|
681
|
+
print(" ..---:::::::-----------. ::::;;.")
|
|
682
|
+
print(" .\'\"\"\"\"\"\" ;; \\ \":.")
|
|
683
|
+
print(" .\'\' ; \\ \"\\__.")
|
|
684
|
+
print(" .\' ;; ; \\\\\";")
|
|
685
|
+
print(" .\' ; _____; \\\\/")
|
|
686
|
+
print(" .\' :; ;\" \\ ___:\'.")
|
|
687
|
+
print(" .\'--........................... : = ____:\" \\ \\")
|
|
688
|
+
print(" ..-\"\" \"\"\"\' o\"\"\" ; ; :")
|
|
689
|
+
print(" .--\"\" .----- ..----... _.- --. ..-\" ; ; ; ;")
|
|
690
|
+
print(" .\"\"_- \"--\"\"-----\'\"\" _-\" .-\"\" ; ; .-.")
|
|
691
|
+
print(" .\' .\' SALOME .\" .\" ; ; /. |")
|
|
692
|
+
print(" /-./\' 4 EVER <3 .\" / _.. ; ; ;;;|")
|
|
693
|
+
print(" : ;-.______ / _________==. /_ \\ ; ; ;;;;")
|
|
694
|
+
print(" ; / | \"\"\"\"\"\"\"\"\"\"\".---.\"\"\"\"\"\"\" : /\" \". |; ; _; ;;;")
|
|
695
|
+
print(" /\"-/ | / / / / ;|; ;-\" | ;\';")
|
|
696
|
+
print(":- : \"\"\"----______ / / ____. . .\"\'. ;; .-\"..T\" .")
|
|
697
|
+
print("\'. \" ___ \"\": \'\"\"\"\"\"\"\"\"\"\"\"\"\"\" . ; ; ;; ;.\" .\" \'--\"")
|
|
698
|
+
print(" \", __ \"\"\" \"\"---... :- - - - - - - - - \' \' ; ; ; ;;\" .\"")
|
|
699
|
+
print(" /. ; \"\"\"---___ ; ; ; ;|.\"\"")
|
|
700
|
+
print(" : \": \"\"\"----. .-------. ; ; ; ;:")
|
|
701
|
+
print(" \\ \'--__ \\ \\ \\ / | ; ;;")
|
|
702
|
+
print(" \'-.. \"\"\"\"---___ : .______..\\ __/..-\"\"| ; ; ;")
|
|
703
|
+
print(" \"\"--.. \"\"\"--\" m l s . \". . ;")
|
|
704
|
+
print(" \"\"------... ..--\"\" \" :")
|
|
705
|
+
print(" \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\" \\ /")
|
|
706
|
+
print(" \"------\"")
|
|
707
|
+
print("")
|
|
708
|
+
print(" Drive your simulation properly with SALOME!")
|
|
709
|
+
print("")
|
|
710
|
+
#
|
|
711
|
+
|
|
712
|
+
# Add the following two methods since logger is not pickable
|
|
713
|
+
# Ref: http://stackoverflow.com/questions/2999638/how-to-stop-attributes-from-being-pickled-in-python
|
|
714
|
+
def __getstate__(self):
|
|
715
|
+
d = dict(self.__dict__)
|
|
716
|
+
if hasattr(self, '_logger'):
|
|
717
|
+
del d['_logger']
|
|
718
|
+
return d
|
|
719
|
+
#
|
|
720
|
+
def __setstate__(self, d):
|
|
721
|
+
self.__dict__.update(d) # I *think* this is a safe way to do it
|
|
722
|
+
#
|
|
723
|
+
# Excluding self._logger from pickle operation imply using the following method to access logger
|
|
724
|
+
def getLogger(self):
|
|
725
|
+
if not hasattr(self, '_logger'):
|
|
726
|
+
self._logger = logging.getLogger(__name__)
|
|
727
|
+
#self._logger.setLevel(logging.DEBUG)
|
|
728
|
+
#self._logger.setLevel(logging.WARNING)
|
|
729
|
+
self._logger.setLevel(logging.ERROR)
|
|
730
|
+
return self._logger
|
|
731
|
+
#
|