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            #raise Exception(parts, module, class_, method)#, module_)
0026            #raise Exception(live)
0027            #live = from module import class_
0028
0029            r = getattr(l, method)(**params)
0030            result.append(r)
0031        return result