
session.forget()

response.menu = [['home', False, '/%s/default/index'
                  % request.application], ['docs', True,
                 '/%s/global/vars' % request.application]]


def vars():
    """the running controller function!"""

    if not request.args:
        (
            doc,
            keys,
            t,
            c,
            d,
            value,
            ) = (
            'Global variables',
            globals(),
            None,
            None,
            (),
            None,
            )
        (title, args) = ('globals()', '')
    elif len(request.args) < 3:
        args = '.'.join(request.args)
        try:
            doc = eval(args + '.__doc__')
        except:
            doc = 'no documentation'
        try:
            keys = eval('dir(%s)' % args)
        except:
            keys = []
        t = eval('type(%s)' % args)
        try:
            c = eval('%s.__class__' % args)
        except:
            c = None
        try:
            d = eval('%s.__bases__' % args)
        except:
            d = None
        title = args
        args += '.'
    else:
        raise HTTP(400)
    attributes = {}
    for key in keys:
        a = args + key
        if eval('isinstance(%s,SQLDB)' % a) or a == 'vars':
            continue
        try:
            doc1 = eval(a + '.__doc__')
        except:
            doc1 = 'no documentation'
        t1 = eval('type(%s)' % a)
        try:
            c1 = eval('%s.__class__' % a)
        except:
            c1 = None
        try:
            d1 = eval('%s.__bases__' % a)
        except:
            d1 = ()
        attributes[a] = (doc1, t1, c1, d1)
    return dict(
        title=title,
        args=args,
        t=t,
        c=c,
        d=d,
        doc=doc,
        attributes=attributes,
        )


