Files
ThirdParty-6/ParaView-5.0.1/Applications/ParaView/Testing/Python/TestPythonParaViewWebiPythonMPI.py

73 lines
2.5 KiB
Python

#/usr/bin/env python
# Global python import
import exceptions, traceback, logging, random, sys, threading, time, os
# Update python path to have ParaView libs
build_path='/Volumes/SebKitSSD/Kitware/code/ParaView/build-ninja'
sys.path.append('%s/lib'%build_path)
sys.path.append('%s/lib/site-packages'%build_path)
# ParaView import
from vtk.web import server
from paraview.vtk import *
from paraview.web import wamp as pv_wamp
from paraview.web import ipython as pv_ipython
from vtkCommonCorePython import *
from vtkCommonDataModelPython import *
from vtkCommonExecutionModelPython import *
from vtkFiltersSourcesPython import *
from vtkParallelCorePython import *
from vtkParaViewWebCorePython import *
from vtkPVClientServerCoreCorePython import *
from vtkPVServerManagerApplicationPython import *
from vtkPVServerManagerCorePython import *
from vtkPVVTKExtensionsCorePython import *
from vtk import *
#------------------------------------------------------------------------------
# Start server
#------------------------------------------------------------------------------
paraviewHelper = pv_ipython.ParaViewIPython()
webArguments = pv_ipython.WebArguments('%s/www' % build_path)
sphere = None
def start():
paraviewHelper.Initialize(os.path.join(os.getcwd(), 'Testing', 'Temporary', 'mpi-python'))
pv_ipython.IPythonProtocol.updateArguments(webArguments)
paraviewHelper.SetWebProtocol(pv_ipython.IPythonProtocol, webArguments)
return paraviewHelper.Start()
def start_thread():
# Register some data at startup
global sphere
position = [random.random() * 2, random.random() * 2, random.random() * 2]
sphere = vtkSphereSource()
sphere.SetCenter(position)
sphere.Update()
pv_ipython.IPythonProtocol.RegisterDataSet('iPython-demo', sphere.GetOutput())
# Start root+satelites
thread = threading.Thread(target=start)
print "Starting thread"
thread.start()
for i in range(20):
print "Working... %ds" % (i*5)
position = [random.random() * 2, random.random() * 2, random.random() * 2]
print position
sphere.SetCenter(position)
sphere.Update()
pv_ipython.IPythonProtocol.RegisterDataSet('iPython-demo', sphere.GetOutput())
time.sleep(5)
pv_ipython.IPythonProtocol.ActivateDataSet('iPython-demo')
thread.join()
print "Done"
#------------------------------------------------------------------------------
# Main
#------------------------------------------------------------------------------
if __name__ == "__main__":
start_thread()