From f24c996bc11aee6ef0e4e7524ca4c186bdb75c2d Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 13 Oct 2017 13:08:50 +0200 Subject: [PATCH] Backport some codegen fixes wrt unicode --- src/ifcexpressparser/codegen.py | 5 +++-- src/ifcexpressparser/schema_class.py | 11 +++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/ifcexpressparser/codegen.py b/src/ifcexpressparser/codegen.py index 6370b3dc87..050562a591 100644 --- a/src/ifcexpressparser/codegen.py +++ b/src/ifcexpressparser/codegen.py @@ -26,9 +26,10 @@ class Base(object): import platform if tuple(map(int, platform.python_version_tuple())) < (2, 8): from io import open as unicode_open + unicode_type = unicode else: unicode_open = open - unicode = lambda x, *args, **kwargs: x + unicode_type = lambda x, *args, **kwargs: x f = unicode_open(self.file_name, 'w', encoding='utf-8') - f.write(unicode(repr(self), encoding='utf-8', errors='ignore')) + f.write(unicode_type(repr(self), encoding='utf-8', errors='ignore')) f.close() diff --git a/src/ifcexpressparser/schema_class.py b/src/ifcexpressparser/schema_class.py index 94e43bea53..31aed5c73c 100644 --- a/src/ifcexpressparser/schema_class.py +++ b/src/ifcexpressparser/schema_class.py @@ -20,9 +20,10 @@ import operator import nodes +import codegen import templates -class SchemaClass: +class SchemaClass(codegen.Base): def __init__(self, mapping): class UnmetDependenciesException(Exception): pass @@ -191,10 +192,8 @@ class SchemaClass: '}','','')) self.str = "\n".join(statements) + + self.file_name = '%s-schema.cpp'%self.schema_name + def __repr__(self): return self.str - def emit(self): - f = open('%s-schema.cpp'%self.schema_name, 'w', encoding='utf-8') - f.write(str(self)) - f.close() -