|
17 | 17 |
|
18 | 18 | import threading
|
19 | 19 |
|
20 |
| -CACHE_AGE = datetime.timedelta(days=1) |
| 20 | +CACHE_AGE = datetime.timedelta(days=14) |
21 | 21 |
|
22 | 22 |
|
23 | 23 | def cache_load(url):
|
@@ -100,9 +100,47 @@ def deferred_load(self, url):
|
100 | 100 | deferred_load = terminologies.deferred_load
|
101 | 101 |
|
102 | 102 |
|
| 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 | + |
103 | 137 | if __name__ == "__main__":
|
| 138 | + from IPython import embed |
104 | 139 | 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() |
107 | 145 | # t.load('http://portal.g-node.org/odml/terminologies/v1.0/analysis/power_spectrum.xml')
|
108 | 146 |
|
0 commit comments