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