'Inspects the object and returns a data structure which describes the
available properties and methods.'

def describe(self):

    methods = {}
    for (mount, obj) in self.objects.items():
        if inspect.isroutine(obj):
            methods[mount] = self._describe_method(obj)
        else:
            obj_methods = self._get_methods(obj)
            for (name, description) in obj_methods.items():
                if mount:
                    name = (u'%s.%s' % (mount, name))
                methods[name] = description
    return methods
