0001from formbuild.builder import Builder
0002
0003class LayoutBuilder(Builder):
0004 """
0005 The base class of FormBuild extensions which change the behavious of form attribute methods.
0006 """
0007
0008 def __call__(self, form):
0009 self.form = form
0010
0011 def __getattr__(self, name, test=0):
0012 parts = dir(self.__class__)
0013 if name+'_end' in parts and name+'_start' in parts:
0014 def helper(content='', *k, **params):
0015 return getattr(self,name+'_start')(*k, **params) + content + getattr(self,name+'_end')(*k, **params)
0016 return helper
0017 else:
0018 raise AttributeError('No such method %s'%repr(name))