else: return tree.PUT(selector,reference,tree=json.loads(parsed['newtree'])) if not tree: raise Exception("Tree %s does not exist" %treename) if req == 'GET': if attrs: return tree.GET(selector,reference,attrs) else: return tree.GET(selector,reference) elif req == 'AGGREGATE': return tree.AGGREGATE(selector,reference,attrs) elif req == 'DELETE': if attrs: return tree.DELETE(selector,reference,attrs) else: if selector == '{}': del trees[treename] fn = os.path.join(folder, treename + '.tree') os.path.exists(fn) and os.remove(fn) return 'Tree %s deleted successfully' %treename return tree.DELETE(selector,reference) elif req == 'SAVE': fname = os.path.join(folder, treename + '.tmp') newname = os.path.join(folder, treename + '.tree') tree.dump(fname) shutil.move(fname, newname) return 'Successfuly saved tree %s' %treename