diff options
Diffstat (limited to 'build/content/autolevel.py')
-rw-r--r-- | build/content/autolevel.py | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/build/content/autolevel.py b/build/content/autolevel.py index eac6e09..345bccf 100644 --- a/build/content/autolevel.py +++ b/build/content/autolevel.py @@ -1,6 +1,6 @@ import json -def vectorize (obj, forbidlist): +def vectorize (obj, forbidlist, _): for c in obj: for key in c: if not(key in forbidlist): @@ -10,13 +10,18 @@ def vectorize (obj, forbidlist): try: val = float(val); except: pass c[key] = [val for i in range(3)] - return obj + +def query (obj, allowlist, op): + for c in obj: + for key in c: + if key in allowlist: + c[key] = op(c[key]) -def comp(filename, forbidlist): +def comp(filename, l, fun, op=None): with open(filename+".txt", "r") as f: obj = json.loads(f.read()) - obj = vectorize(obj, forbidlist) - with open(filename+".txt", "w") as f: + fun(obj, l, op) + with open(filename+"-new"+".txt", "w") as f: f.write(json.dumps(obj, indent=4)) if __name__ == "__main__": @@ -25,4 +30,7 @@ if __name__ == "__main__": #comp("batteries", ["name"]) #comp("armor", ["name"]) #comp("chassis", ["name"]) - comp("brains", ["name"]) + #comp("brains", ["name"]) + #comp("brains", ["name"]) + + #comp("armor", ["weight"], query, lambda x: [x[i]/5 for i in range(3)]) |