make dataset.freeze.config compatible with python3

This commit is contained in:
xrotwang
2014-11-06 11:08:07 +01:00
parent 4bf19159c6
commit 5b7908893d
3 changed files with 74 additions and 7 deletions
+7 -7
View File
@@ -1,10 +1,7 @@
import json
import yaml
try:
str = unicode
except NameError:
pass
from six import text_type, PY3
from dataset.util import FreezeException
@@ -33,14 +30,17 @@ class Configuration(object):
extension = file_name.rsplit('.', 1)[-1]
loader = DECODER.get(extension, json)
try:
fh = open(file_name, 'rb')
if loader == json and PY3: # pragma: no cover
fh = open(file_name, encoding='utf8')
else:
fh = open(file_name, 'rb')
try:
self.data = loader.load(fh)
except ValueError as ve:
raise FreezeException("Invalid freeze file: %s" % ve)
fh.close()
except IOError as ioe:
raise FreezeException(str(ioe))
raise FreezeException(text_type(ioe))
@property
def exports(self):
@@ -64,7 +64,7 @@ class Export(object):
def get_normalized(self, name, default=None):
value = self.get(name, default=default)
if value not in [None, default]:
value = str(value).lower().strip()
value = text_type(value).lower().strip()
return value
def get_bool(self, name, default=False):