From bb928382c4dd2673fa11db8eb0b0150b463f9eed Mon Sep 17 00:00:00 2001 From: David Robert Verelst <dave@dtu.dk> Date: Fri, 31 Mar 2017 16:11:47 +0200 Subject: [PATCH] prepost.misc: standalone version of finding tags in master file --- wetb/prepost/misc.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/wetb/prepost/misc.py b/wetb/prepost/misc.py index d95b2b4f..c6ce5759 100644 --- a/wetb/prepost/misc.py +++ b/wetb/prepost/misc.py @@ -24,6 +24,7 @@ import sys import shutil import unittest import pickle +import re import numpy as np import scipy as sp @@ -786,7 +787,24 @@ def find_tags(fname): """ Find all unqiue tags in a text file. """ - pass + + with open(fname, 'r') as f: + lines = f.readlines() + + # regex for finding all tags in a line + regex = re.compile('(\\[.*?\\])') + tags_in_master = {} + + for i, line in enumerate(lines): + # are there any tags on this line? Ignore comment AND label section + tags = regex.findall(line.split(';')[0].split('#')[0]) + for tag in tags: + try: + tags_in_master[tag].append(i) + except KeyError: + tags_in_master[tag] = [i] + + return tags_in_master def read_mathematica_3darray(fname, shape=None, data=None, dtype=None): -- GitLab