Example #1
0
    def include ( T, template, vars = None, loader = None ):
        ''' 
        evalutes template fragment(s) in the current (caller's) context
        '''
        if type (template) is types.StringType:
            template = [template]

        results = [ ]
        for tpl in template:
            locals = { }
            if vars:
                locals.update ( vars )
            frame = caller ( )
            filename = "%s.%s" % ( tpl, T.extension )
            if loader:
                T.loaders.append ( loader )            
            try:
                code = _cache.compile ( filename, T.root, T.loaders [ -1 ] )
                result = eval ( code, frame.f_globals, locals )
            finally:
                if loader:
                    T.loaders.pop ( )
            results.append (result)
        return results
Example #2
0
    def include(T, template, params=None, loader=None):  # @NoSelf
        """
        evalutes template fragment(s) in the current (caller's) context
        """
        if isinstance(template, str):
            template = [template]

        results = []
        for tpl in template:
            locals_ = {}
            if params:
                locals_.update(params)
            frame = caller()
            filename = "%s.%s" % (tpl, T.extension)
            if loader:
                T.loaders.append(loader)
            try:
                code = _cache.compile(filename, T.root, T.loaders[-1])
                result = eval(code, frame.f_globals, locals_)
            finally:
                if loader:
                    T.loaders.pop()
            results.append(result)
        return results
Example #3
0
    def include(T, template, vars=None, loader=None):
        ''' 
        evalutes template fragment(s) in the current (caller's) context
        '''
        if type(template) is types.StringType:
            template = [template]

        results = []
        for tpl in template:
            locals = {}
            if vars:
                locals.update(vars)
            frame = caller()
            filename = "%s.%s" % (tpl, T.extension)
            if loader:
                T.loaders.append(loader)
            try:
                code = _cache.compile(filename, T.root, T.loaders[-1])
                result = eval(code, frame.f_globals, locals)
            finally:
                if loader:
                    T.loaders.pop()
            results.append(result)
        return results
Example #4
0
def let ( **kw ):
    '''create named references to objects in the current context's local namespace'''
    caller ( ).f_locals.update ( kw )
    return ''
Example #5
0
def assign ( name, value ):
    '''create a named reference to an object in the global namespace'''
    caller ( ).f_globals [ name ] = value
    return ''
Example #6
0
def macro ( name, function ):
    '''create a named reference to an anonymous function in the global namespace'''
    m = Macro ( name, function )
    caller ( ).f_globals [ name ] = m
    return m