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))