def api(request): ftname = request.GET['ftable'] cmd = request.GET['cmd'] ctx = UserContext(request) try: if ctx.feature_table_exist(ftname): ftable = ctx.get_feature_table(ftname) ftcmd = FeatureTableCommand(ctx,ftname,ftable) if cmd == 'save': return ftcmd.save() elif cmd == 'set-class': return ftcmd.set_class() elif cmd == 'get-distribution-function': return ftcmd.get_distribution_function() elif cmd == 'add-feature': return ftcmd.add_feature() elif cmd == 'get-feature': return ftcmd.get_feature() elif cmd == 'edit-feature': return ftcmd.edit_feature() elif cmd == 'remove-feature': return ftcmd.remove_feature() elif cmd == 'nl-query': return ftcmd.nl_query() elif cmd == 'add-filter': return ftcmd.add_filter() elif cmd == 'select-filter': return ftcmd.select_filter() elif cmd == 'clear-filter': return ftcmd.clear_filter() elif cmd == 'remove-filter': return ftcmd.remove_filter() elif cmd == 'get-featureset': return ftcmd.get_featureset() elif cmd == 'index-query': return ftcmd.index_query() else: return error('No feature feature table %s' % ftname) except Exception, e: print traceback.format_exc() return error(str(e))