0001class CreatorBase:
0002 pass
0003
0004class CaptureDataRecreator(CreatorBase):
0005 def __init__(self, form, init_params={}):
0006 self.form = form
0007 self.init_params = init_params
0008
0009 def create(self, data):
0010 result = []
0011
0012 for call, params in data:
0013 parts = call.split('.')
0014 module = '.'.join(parts[:-2])
0015 class_ = parts[-2]
0016 method = parts[-1]
0017
0018 live = __import__(module, globals(), locals(), [class_]).__dict__[class_]
0019 if self.init_params.has_key('.'.join(parts[:-1])):
0020 p = self.init_params['.'.join(parts[:-1])]
0021 else:
0022 p = {}
0023 l = live(**p)
0024 l(self.form)
0025
0026
0027
0028
0029 r = getattr(l, method)(**params)
0030 result.append(r)
0031 return result