diff options
| author | Terry Truong <terry06890@gmail.com> | 2022-04-26 13:53:46 +1000 |
|---|---|---|
| committer | Terry Truong <terry06890@gmail.com> | 2022-04-26 13:53:46 +1000 |
| commit | 04e9444746d3ba8ddcc96d0fd16f1c02adce1389 (patch) | |
| tree | 0f48275709dc676bf8b9ba3c2dbc9f1beeff7b75 /data_tol_old/txtTreeToJSON.py | |
| parent | e8fab23fe92230c2cb42412bb9ea6040ff14f072 (diff) | |
Have tol data in sqlite db, and add server script that accesses it
Adapt otol-data-converting script to generate otol.db, add server.py
script that provides access to that db, and adapt the app to query the
server for tol data when needed.
Diffstat (limited to 'data_tol_old/txtTreeToJSON.py')
| -rwxr-xr-x | data_tol_old/txtTreeToJSON.py | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/data_tol_old/txtTreeToJSON.py b/data_tol_old/txtTreeToJSON.py deleted file mode 100755 index 3b77622..0000000 --- a/data_tol_old/txtTreeToJSON.py +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/python3 - -import sys, re - -usageInfo = f"usage: {sys.argv[0]}\n" -usageInfo += "Reads, from stdin, tab-indented lines representing trees, and outputs corresponding JSON.\n" - -if len(sys.argv) > 1: - print(usageInfo, file=sys.stderr) - sys.exit(1) - -lineNum = 0 -trees = [] #each node is a pair holding a name and an array of child nodes -nodeList = [] -while True: - #read line - line = sys.stdin.readline() - if line == "": break - line = line.rstrip() - lineNum += 1 - #create node - match = re.match(r"^\t*", line) - indent = len(match.group()) - newNode = [line[indent:], []] - #add node - if indent == len(nodeList): #sibling or new tree - if len(nodeList) == 0: - nodeList.append(newNode) - trees.append(newNode) - else: - nodeList[-1] = newNode - if len(nodeList) == 1: - trees[-1][1].append(newNode) - else: - nodeList[-2][1].append(newNode) - elif indent == len(nodeList) + 1: #direct child - if len(nodeList) == 0: - print(f"ERROR: Child without preceding root (line {lineNum})") - sys.exit(1) - nodeList.append(newNode) - nodeList[-2][1].append(newNode) - elif indent < len(nodeList): #ancestor sibling or new tree - nodeList = nodeList[:indent] - if len(nodeList) == 0: - nodeList.append(newNode) - trees.append(newNode) - else: - nodeList[-1] = newNode - if len(nodeList) == 1: - trees[-1][1].append(newNode) - else: - nodeList[-2][1].append(newNode) - else: - print(f"ERROR: Child with invalid relative indent (line {lineNum})") - sys.exit(1) -#print as JSON -if len(trees) > 1: - print("[") -def printNode(node, indent): - if len(node[1]) == 0: - print(indent + "{\"name\": \"" + node[0] + "\"}", end="") - else: - print(indent + "{\"name\": \"" + node[0] + "\", \"children\": [") - for i in range(len(node[1])): - printNode(node[1][i], indent + "\t") - if i < len(node[1])-1: - print(",", end="") - print() - print(indent + "]}", end="") -for i in range(len(trees)): - printNode(trees[i], "") - if i < len(trees)-1: - print(",", end="") - print() -if len(trees) > 1: - print("]") |
