#!/usr/bin/python # # gathers all Actions in pyMoleCuilder module and tests them with some default # values. # # date: Oct 5, 2011 # author: Gregor Bollerhey import pyMoleCuilder as mol import re, os cmds = filter(lambda s: s[0] != '_', dir(mol)) # options.dat einlesen Defaults = {} with open('options.dat') as f: for line in f: if len(line) > 0 and line[0] != '#': key, value = line.split('\t', 1) value = value[1:-2] # quotes entfernen Defaults[key] = value # aufrufen Allparams = [] def ParseParameters(docstring): result = [] params = re.findall(r'\(str\)([-a-zA-Z]*)', docstring) for param in params: if not param in Allparams: Allparams.append(param) if not param in Defaults: print 'Fehlender Defaultwert:', param # direkt substituieren, oder erst beim aufruf? if param in Defaults: param = Defaults[param] result.append(param) return result for cmd in cmds: doc = eval('mol.%s.__doc__' % cmd) params = ParseParameters(doc) print '-------- %s mit %s --------' % (cmd, params) exec('mol.%s(*params)' % cmd)