Some changes to make it work in non-python2.7

This commit is contained in:
ZyX 2013-03-10 22:35:38 +04:00
parent f75bb9e65b
commit 3fd1215091
2 changed files with 7 additions and 9 deletions

View File

@ -48,10 +48,10 @@ class Mark:
% (self.name, self.line+1, self.column+1)
if snippet is not None:
where += ":\n" + snippet
try:
return where.encode('utf-8')
except AttributeError:
if type(where) is str:
return where
else:
return where.encode('utf-8')
class YAMLError(Exception):
pass

View File

@ -16,13 +16,11 @@ def gen_marked_value(value, mark):
if func not in set(('__init__', '__new__', '__getattribute__')):
if func in set(('__eq__',)):
# HACK to make marked dictionaries always work
exec '''def {0}(self, *args):
return self.value.{0}(*[arg.value if isinstance(arg, MarkedValue) else arg for arg in args])
'''.format(func)
exec (('def {0}(self, *args):\n'
' return self.value.{0}(*[arg.value if isinstance(arg, MarkedValue) else arg for arg in args])').format(func))
else:
exec '''def {0}(self, *args, **kwargs):
return self.value.{0}(*args, **kwargs)
'''.format(func)
exec (('def {0}(self, *args, **kwargs):\n'
' return self.value.{0}(*args, **kwargs)\n').format(func))
classcache[value.__class__] = Marked
return Marked(value, mark)