From a4f8eb21f85326596a491b39e0330882ee8017f0 Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@gmail.com>
Date: Sun, 17 Sep 2017 20:09:51 +0000
Subject: [PATCH] Added wrapper to libtrisurf

---
 trisurf/tsmgr.py |   34 +++++++++++++++++++---------------
 1 files changed, 19 insertions(+), 15 deletions(-)

diff --git a/trisurf/tsmgr.py b/trisurf/tsmgr.py
index 1143717..3cbffc5 100644
--- a/trisurf/tsmgr.py
+++ b/trisurf/tsmgr.py
@@ -16,7 +16,6 @@
 	from urlparse import urlparse
 	from vtk import *
 	
-from . import VTKRendering
 #import io
 
 from IPython import embed
@@ -57,6 +56,7 @@
 	parser.add_argument('-R','--raw',help='print status and the rest of the information in raw format', action="store_true")
 	parser.add_argument('-x','--local-only',help='do not attempt to contact remote hosts. Run all operations only on local machine',action='store_true')
 	parser.add_argument('--originating-host',nargs=1,help='specify which host started the remote connections. Useful mainly fo internal functionaly of tsmgr and analyses.')
+	parser.add_argument('--analysis-options', nargs='+', help='options passed down to analyses')
 	args = parser.parse_args(arguments)
 	return args
 
@@ -203,9 +203,9 @@
 	exit(0)
 
 
-def analyze(args,host,a_dict, analysis,hosts):
-	if len(a_dict)==0:
-		print ('Error: no analyses are specified in the tsmgr.start()!')
+def analyze(args,host,analysis,hosts):
+	if len(trisurf._analysis_list)==0:
+		print ('Error: no decorated function with @analysis decorator!')
 		exit(1)
 	target_runs=getTargetRunIdxList(args)
 	if target_runs==None:
@@ -213,11 +213,11 @@
 	for i in target_runs:
 
 		for anal in analysis:
-			if(anal not in a_dict):
-				print("Analysis '"+anal+"' is not known. Available analyses: "+", ".join(a_dict.keys())+".")
+			if(anal not in trisurf._analysis_list):
+				print("Analysis '"+anal+"' is not known. Available analyses: "+", ".join(trisurf._analysis_list.keys())+".")
 				exit(0)
 		for anal in analysis:
-			retval=a_dict[anal](host['runs'][i-1],host=host, args=args, hosts=hosts)
+			retval=trisurf._analysis_list[anal](host['runs'][i-1],host=host, args=args, hosts=hosts)
 			#try:
 			if(retval):
 				exit(0)
@@ -248,7 +248,7 @@
 		embed()
 		exit(0)
 	elif args['analysis']!= None:
-		analyze(args,host,kwargs.get('analyses', {}), args['analysis'],kwargs.get('hosts',None))
+		analyze(args,host, args['analysis'],kwargs.get('hosts',None))
 		exit(0)
 	else: #version requested
 		print(getTrisurfVersion())
@@ -257,12 +257,16 @@
 
 
 def preview_vtu(args,host):
-	#only for localhost at the moment
-	#if sys.version_info>=(3,0):
-	#	print("Preview works only with python 2.7")
-	#	exit(1)
+	from . import VTKRendering
+	target_runs=getTargetRunIdxList(args)
+	if target_runs==None:
+		target_runs=list(range(1,len(host['runs'])+1))
 	if host['name'] == socket.gethostname():
-		VTKRendering.Renderer(args,host)
+		for i in target_runs:
+			VTKRendering.Renderer(args,host,host['runs'][i-1])
+	else:
+		print("VTK rendering currently works on localhost only!")
+		
 
 def getListOfHostConfigurationByHostname(hosts,host):
 	rhost=[]
@@ -273,7 +277,7 @@
 
 
 
-def start(hosts,argv=sys.argv[1:], analyses={}):
+def start(hosts,argv=sys.argv[1:]):
 	args=vars(ParseCLIArguments(argv))
 	#Backward compatibility... If running just on localmode, the host specification is unnecessary. Check if only Runs are specified
 	try:
@@ -301,7 +305,7 @@
 				print("Host <font color='orange'>"+host['name']+"</font> reports:")
 			else:
 				print("Host "+bcolors.WARNING+host['name']+bcolors.ENDC+" reports:")
-			perform_action(args,host, analyses=analyses, hosts=hosts)
+			perform_action(args,host, hosts=hosts)
 		elif not args['local_only']:
 			if('remotebasepath' in host):
 				remote_dir=host['remotebasepath']

--
Gitblit v1.9.3