mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
94 lines
3.6 KiB
Python
94 lines
3.6 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 *
|
|
|
|
#------------------------------------------------------------------------------
|
|
# InLine protocol
|
|
#------------------------------------------------------------------------------
|
|
|
|
class TestProtocol(pv_wamp.PVServerProtocol):
|
|
dataDir = None
|
|
authKey = "vtkweb-secret"
|
|
fileToLoad = None
|
|
groupRegex = "[0-9]+\\."
|
|
excludeRegex = "^\\.|~$|^\\$"
|
|
|
|
@staticmethod
|
|
def updateArguments(options):
|
|
TestProtocol.dataDir = options.dataDir
|
|
TestProtocol.authKey = options.authKey
|
|
TestProtocol.fileToLoad = options.fileToLoad
|
|
TestProtocol.authKey = options.authKey
|
|
TestProtocol.groupRegex = options.groupRegex
|
|
TestProtocol.excludeRegex = options.excludeRegex
|
|
|
|
def initialize(self):
|
|
from paraview import simple
|
|
from paraview.web import protocols as pv_protocols
|
|
|
|
# Bring used components
|
|
self.registerVtkWebProtocol(pv_protocols.ParaViewWebFileListing(TestProtocol.dataDir, "Home", TestProtocol.excludeRegex, TestProtocol.groupRegex))
|
|
self.registerVtkWebProtocol(pv_protocols.ParaViewWebPipelineManager(TestProtocol.dataDir, TestProtocol.fileToLoad))
|
|
self.registerVtkWebProtocol(pv_protocols.ParaViewWebMouseHandler())
|
|
self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPort())
|
|
self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPortImageDelivery())
|
|
self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPortGeometryDelivery())
|
|
self.registerVtkWebProtocol(pv_protocols.ParaViewWebTimeHandler())
|
|
self.registerVtkWebProtocol(pv_protocols.ParaViewWebRemoteConnection())
|
|
self.registerVtkWebProtocol(pv_protocols.ParaViewWebFileManager(TestProtocol.dataDir))
|
|
|
|
# Update authentication key to use
|
|
self.updateSecret(TestProtocol.authKey)
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Start server
|
|
#------------------------------------------------------------------------------
|
|
|
|
paraviewHelper = pv_ipython.ParaViewIPython()
|
|
webArguments = pv_ipython.WebArguments('%s/www' % build_path)
|
|
|
|
def start():
|
|
paraviewHelper.Initialize(os.path.join(os.getcwd(), 'Testing', 'Temporary', 'mpi-python'))
|
|
paraviewHelper.SetWebProtocol(TestProtocol, webArguments)
|
|
return paraviewHelper.Start()
|
|
|
|
def start_thread():
|
|
thread = threading.Thread(target=start)
|
|
print "Starting thread"
|
|
thread.start()
|
|
for i in range(20):
|
|
print "Working... %ds" % (i*5)
|
|
time.sleep(5)
|
|
thread.join()
|
|
print "Done"
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Main
|
|
#------------------------------------------------------------------------------
|
|
if __name__ == "__main__":
|
|
start_thread()
|