From d5ddc0a56d9f52f27fb6edcc2fa1caf66fdb9eb0 Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Thu, 15 Aug 2019 06:05:39 +0000 Subject: [PATCH] Fixed argtypes in wrapper --- trisurf/analyses.py | 23 ++++++++++++++--------- 1 files changed, 14 insertions(+), 9 deletions(-) diff --git a/trisurf/analyses.py b/trisurf/analyses.py index 4862867..ae4dce7 100644 --- a/trisurf/analyses.py +++ b/trisurf/analyses.py @@ -1,17 +1,22 @@ from . import trisurf -def analysis(analysis_name='unnamed_analysis'): +def analysis(*args): """Decorator for adding the analysis functions to function lists""" def analysis_decorator(analysis_function): trisurf._analysis_list[analysis_name]=analysis_function def wrapper(*args, **kwargs): analysis_function(*args,**kwargs) return wrapper - return analysis_decorator + if len(args) == 1 and callable(args[0]): #no arguments + analysis_name=args[0].__name__ + return analysis_decorator(args[0]) + else: + analysis_name=args[0] + return analysis_decorator -@analysis('demo') +@analysis def demo(run, **kwargs): host=kwargs.get('host', None) print("Demo analysis") @@ -26,12 +31,12 @@ # can be wrapped to specify scalar_field) @analysis('plotrunningavginteractive') -def plotrunningavginteractive(run, scalar_field='vertices_idx', **kwargs): +def plotrunningavginteractive(run, scalar_field='hbar', ylabel="1/n sum_i=niter^n(hbar_i)", **kwargs): import matplotlib.pyplot as plt from trisurf import VTKRendering as vtk import math from multiprocessing import Process - table=trisurf.Statistics(run.Dir.fullpath(),filename='data_tspoststat.csv').getTable() + table=trisurf.Statistics(run.Dir.fullpath(),filename='poststat.csv').getTable() def running_avg(col): import numpy as np avg=[] @@ -42,11 +47,11 @@ vtk.Renderer(kwargs.get('args', None),kwargs.get('host',None),run, timestep=n,scalar_field=scalar_field) fig=plt.figure(1) - ra=running_avg(table['hbar']) - l=len(table['hbar']) + ra=running_avg(table[scalar_field]) + l=len(table[scalar_field]) plt.plot(ra) plt.title('Running average') - plt.ylabel('1/n sum_i=niter^n(hbar_i)') + plt.ylabel(ylabel) plt.xlabel('n') def onclick(event): #print('button=%d, x=%d, y=%d, xdata=%f, ydata=%f' % (event.button, event.x, event.y, event.xdata, event.ydata)) @@ -61,7 +66,7 @@ # these functions should be wrapped # ------------------------------- @analysis('plotColumnFromPostProcess') -def plotColumnFromPostProcess(run, filename='data_tspoststat.csv', column='hbar', **kwargs): +def plotColumnFromPostProcess(run, filename='poststat.csv', column='hbar', **kwargs): import matplotlib.pyplot as plt def smooth(y, box_pts): -- Gitblit v1.9.3