diff options
| author | Terry Truong <terry06890@gmail.com> | 2022-06-20 15:06:03 +1000 |
|---|---|---|
| committer | Terry Truong <terry06890@gmail.com> | 2022-06-20 15:06:03 +1000 |
| commit | 2374693a86532637ccf472af5960e68851308528 (patch) | |
| tree | 4eec38d1d3fdad6bfdbf61a5cd37a7710fee791c | |
| parent | 0dbcc5607e977e82a15f1f664843343c00c8c0b4 (diff) | |
Make server order children by num-tips
| -rwxr-xr-x | backend/server.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/backend/server.py b/backend/server.py index 9191d8a..5525eb5 100755 --- a/backend/server.py +++ b/backend/server.py @@ -47,9 +47,19 @@ def lookupNodes(names, useReducedTree): "commonName": None, "imgName": None, } + # Get child info query = f"SELECT node, child FROM {edgesTable} WHERE node IN ({queryParamStr})" for (nodeName, childName) in cur.execute(query, names): nodeObjs[nodeName]["children"].append(childName) + # Order children by tips + for (nodeName, nodeObj) in nodeObjs.items(): + childList = nodeObj["children"] + childToTips = {} + query = "SELECT name, tips FROM {} WHERE name IN ({})".format(nodesTable, ",".join(["?"] * len(childList))) + for (n, tips) in cur.execute(query, childList): + childToTips[n] = tips + childList.sort(key=lambda n: childToTips[n], reverse=True) + # Get parent info query = f"SELECT node, child, p_support FROM {edgesTable} WHERE child IN ({queryParamStr})" for (nodeName, childName, pSupport) in cur.execute(query, names): nodeObjs[childName]["parent"] = None if nodeName == "" else nodeName |
