Skip to content

Commit 94ad07b

Browse files
committed
[terminology] add terminology manager class
1 parent 41b096a commit 94ad07b

File tree

1 file changed

+41
-3
lines changed

1 file changed

+41
-3
lines changed

odml/terminology.py

Lines changed: 41 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
import threading
1919

20-
CACHE_AGE = datetime.timedelta(days=1)
20+
CACHE_AGE = datetime.timedelta(days=14)
2121

2222

2323
def cache_load(url):
@@ -100,9 +100,47 @@ def deferred_load(self, url):
100100
deferred_load = terminologies.deferred_load
101101

102102

103+
104+
class TerminologyManager(object) :
105+
106+
def __init__(self, terminology_url='https://portal.g-node.org/odml/terminologies/v1.0/terminologies.xml'):
107+
self.t = Terminologies()
108+
self.types_map = {}
109+
if (terminology_url is not None):
110+
self.load(terminology_url)
111+
112+
def load(self, url):
113+
self.t.load(url)
114+
self.__parse_terminology(url, self.t[url])
115+
116+
def type_list(self):
117+
types = []
118+
for k in self.t.itervalues():
119+
temp = [s.type for s in k.itersections()]
120+
types.extend(temp)
121+
return types
122+
123+
def __parse_terminology(self, url=None, doc=None):
124+
if url is None or doc is None:
125+
print("some is None")
126+
return
127+
for s in doc.itersections():
128+
if s.type in self.types_map.keys():
129+
type_map = self.types_map[s.type]
130+
if url in type_map.keys() and s.get_path() in type_map.itervalues():
131+
continue
132+
type_map[url] = s.get_path()
133+
else:
134+
self.types_map[s.type] = {url: s.get_path()}
135+
136+
103137
if __name__ == "__main__":
138+
from IPython import embed
104139
print ("Terminologies!")
105-
t = Terminologies()
106-
t.load('http://portal.g-node.org/odml/terminologies/v1.0/terminologies.xml')
140+
terms = TerminologyManager()
141+
142+
# t = Terminologies()
143+
# t.load('http://portal.g-node.org/odml/terminologies/v1.0/terminologies.xml')
144+
embed()
107145
# t.load('http://portal.g-node.org/odml/terminologies/v1.0/analysis/power_spectrum.xml')
108146

0 commit comments

Comments
 (0)