Mercurial > hg > cc > cirrus_home
comparison bin/cdx2tsv.py @ 156:ace590c2fdfc
allow use of global stash
author | Henry S. Thompson <ht@inf.ed.ac.uk> |
---|---|
date | Mon, 04 Jul 2022 18:12:26 +0100 |
parents | 66d17f7410f2 |
children |
comparison
equal
deleted
inserted
replaced
155:58b90cd52c15 | 156:ace590c2fdfc |
---|---|
25 file=sys.stderr) | 25 file=sys.stderr) |
26 exit(1) | 26 exit(1) |
27 | 27 |
28 fields=sys.argv[1:] | 28 fields=sys.argv[1:] |
29 | 29 |
30 fields=[((lambda x,y:(x,eval("lambda f:%s"%y)))(*(f[1:-1].split(',',maxsplit=1))) if f[0]=='(' else f) for f in fields] | 30 stash={} # This can be used to save an expensive field computation for re-use: |
31 # E.g. '(filename,(lambda g:(stash.__setitem__("T1",g) or g)[3].split(".")[1])(f.split("/",maxsplit=5)))' '(filename,(stash["T1"])[4][0]) | |
32 | |
33 fields=[((lambda x,y:(x,eval("lambda f:%s"%y,globals())))(*(f[1:-1].split(',',maxsplit=1))) if f[0]=='(' else f) for f in fields] | |
31 for l in sys.stdin: | 34 for l in sys.stdin: |
32 (key,stamp,jj)=l.rstrip().split(' ',maxsplit=2) | 35 (key,stamp,jj)=l.rstrip().split(' ',maxsplit=2) |
33 ja=json.loads(jj) | 36 ja=json.loads(jj) |
34 #print(ja) | 37 #print(ja) |
35 print('\t'.join((ja.get(f,'NA') if isinstance(f,str) else | 38 print('\t'.join((ja.get(f,'NA') if isinstance(f,str) else |