# python3 /home/H87074/salome/990_CEA/SALOME-master-native-DB11-SRC/SOURCES/yacs/src/yacsloader/driver.py -v -kt micro_schema.xml
# python3 /home/H87074/salome/990_CEA/SALOME-master-native-DB11-SRC/SOURCES/yacs/src/yacsloader/driver.py -d 3 -g 2 --stop-on-error --dump-on-error="popo.xml" -v -kt -ip "PyScript0.p1=7" --dump-final="tutu.xml" micro_schema2.xml
+# python3 /home/H87074/salome/990_CEA/SALOME-master-native-DB11-SRC/SOURCES/yacs/src/yacsloader/driver.py -g 2 --stop-on-error --dump-on-error="popo.xml" -v -kt -ip "PyScript0.p1=7" --dump-final="tutu.xml" micro_schema2.xml
+# python3 /home/H87074/salome/990_CEA/SALOME-master-native-DB11-SRC/SOURCES/yacs/src/yacsloader/driver.py -x -g 2 --stop-on-error --dump-on-error="popo.xml" -v -kt -ip "PyScript0.p1=7" --dump-final="tutu.xml" micro_schema2.xml
import loader
-import SALOMERuntime
+#import SALOMERuntime
import salome
import logging
p=l.load( xmlFileName )
return p
-def patchGraph( proc, squeezeMemory, initPorts, loadStateXmlFile, reset, display):
+def patchGraph( proc, squeezeMemory, initPorts, xmlSchema, loadStateXmlFile, reset, display):
"""
Args:
-----
proc ( SALOMERuntime.SalomeProc ) : YACS Proc instance to be evaluated
squeezeMemory ( bool ) : squeezememory to be activated
initPorts (list<string>) : list of bloc.node.port=value.
+ xmlSchema (string) :
loadStateXmlFile (string) : file if any of state to be loaded inside proc
reset (int) :
display (int) :
"""
+ import SALOMERuntime
def parse_init_port(input):
"""
Returns
if init_state != value:
raise RuntimeError(f"Error on initialization of {initPort}")
#
+ if xmlSchema:
+ SALOMERuntime.VisitorSaveSalomeSchemaUnsafe(proc,xmlSchema)
+ pass
+ #
if loadStateXmlFile:
loader.loadState( proc, loadStateXmlFile )
if reset > 0:
ex.setStopOnError( dumpErrorFile!="", dumpErrorFile )
return ex
-def dumpState(proc):
- import time
- import pilot
- state = proc.getEffectiveState()
- while ( state != pilot.DONE ) and ( state != pilot.LOADFAILED ) and ( state != pilot.EXECFAILED ) and ( state != pilot.INTERNALERR ) and ( state != pilot.DISABLED ) and ( state != pilot.FAILED ) and ( state != pilot.ERROR ):
- print("Waiting")
- time.sleep(0)
- time.sleep(2)
- time.sleep(0)
- state = proc.getEffectiveState()
-
@SALOMEInitializationNeeded
def executeGraph( executor, xmlfilename, proc, dump, finalDump, display ):
"""
parser.add_argument("-g","--dump",dest="dump", type=int, const=60, default=0, nargs='?', help="dump state")
parser.add_argument("-kt", "--kerneltrace", dest = "kerneltrace",help="Produce verbose of SALOME/KERNEL", action='store_true')
parser.add_argument("-f","--dump-final", dest ="finalDump", type=str, const='finalDumpState.xml', default="", nargs='?', help="dump final state")
- parser.add_argument("--load-state", dest="loadState", type=str, default="", help="Load State from a previous partial execution")
- parser.add_argument("--shutdown", dest = 'shutdown', type=int , default=1, help="Shutdown the schema: 0=no shutdown to 3=full shutdown")
+ parser.add_argument("-l","--load-state", dest="loadState", type=str, default="", help="Load State from a previous partial execution")
+ parser.add_argument("-x","--save-xml-schema", dest="saveXMLSchema", type=str, const="saveSchema.xml", nargs='?', default="", help = "dump xml schema")
+ parser.add_argument("-t","--shutdown", dest = 'shutdown', type=int , default=1, help="Shutdown the schema: 0=no shutdown to 3=full shutdown")
parser.add_argument("--reset", dest = "reset", type=int , default = 0, help="Reset the schema before execution: 0=nothing, 1=reset error nodes to ready state")
parser.add_argument("-z","--donotsqueeze", dest = "donotsqueeze", help = "Desactivate squeeze memory optimization.", action='store_true')
parser.add_argument("-ip","--init-port", dest = 'init_port', type=str, help="Initialisation value of a port, specified as bloc.node.port=value.")
positionVerbosityOfLoggerRegardingState()
#
proc = loadGraph( args.xmlfilename )
- patchGraph( proc, not args.donotsqueeze, args.init_port.split(","), args.loadState, args.reset, args.display)
+ patchGraph( proc, not args.donotsqueeze, args.init_port.split(","), args.saveXMLSchema, args.loadState, args.reset, args.display)
executor = prepareExecution( proc, args.stop, args.dumpErrorFile)
executeGraph( executor, args.xmlfilename, proc, args.dump, args.finalDump, args.display)
destroyElementsGeneratedByExecutionOfGraph( proc, args.shutdown )