Skip to content

Commit 24cc812

Browse files
authored
Merge pull request #77 from jgrewe/terminologies
[terminology] caching and loading now works for py2/3 back and forth
2 parents b2be683 + ce62f8c commit 24cc812

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

odml/terminology.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@
88
import datetime
99
import odml.tools.xmlparser
1010
from hashlib import md5
11+
py3 = True
1112
try:
1213
import urllib.request as urllib2
1314
except ImportError:
1415
import urllib2
16+
py3 = False
1517
import threading
1618

17-
1819
CACHE_AGE = datetime.timedelta(days=1)
1920

2021

@@ -36,12 +37,15 @@ def cache_load(url):
3637
or datetime.datetime.fromtimestamp(os.path.getmtime(cache_file)) < \
3738
datetime.datetime.now() - CACHE_AGE:
3839
try:
39-
data = urllib2.urlopen(url).read()
40+
data = urllib2.urlopen(url).read().decode("latin1")
4041
except Exception as e:
4142
print("failed loading '%s': %s" % (url, e))
4243
return
4344
fp = open(cache_file, "w")
44-
fp.write(str(data))
45+
if py3:
46+
fp.write(data)
47+
else:
48+
fp.write(data.encode('latin1'))
4549
fp.close()
4650
return open(cache_file)
4751

@@ -97,4 +101,8 @@ def deferred_load(self, url):
97101

98102

99103
if __name__ == "__main__":
100-
f = cache_load('http://portal.g-node.org/odml/terminologies/v1.0/analysis/analysis.xml')
104+
print ("Terminologies!")
105+
t = Terminologies()
106+
t.load('http://portal.g-node.org/odml/terminologies/v1.0/terminologies.xml')
107+
# t.load('http://portal.g-node.org/odml/terminologies/v1.0/analysis/power_spectrum.xml')
108+

odml/tools/xmlparser.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,9 @@
88
"""
99
#TODO make this module a parser class, allow arguments (e.g. skip_errors=1 to parse even broken documents)
1010
import sys
11-
1211
from odml import format
1312
from lxml import etree as ET
1413
from lxml.builder import E
15-
1614
# this is needed for py2exe to include lxml completely
1715
from lxml import _elementpath as _dummy
1816

0 commit comments

Comments
 (0)