[Xcb] [PATCH] Use absolute imports in xcbgen for Python 3 compatibility
David Coles
dcoles at gaikai.com
Fri Apr 8 16:49:30 PDT 2011
Python 3 has stricter syntax for relative imports. Use absolute imports to
ensure compatibility with all versions of Python. Also break cyclical module
import between state.py and matcher.py by deferring import.
Signed-off-by: David Coles <dcoles at gaikai.com>
---
xcbgen/matcher.py | 5 +++--
xcbgen/state.py | 6 +++---
xcbgen/xtypes.py | 2 +-
3 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/xcbgen/matcher.py b/xcbgen/matcher.py
index e7958fa..6e45b23 100644
--- a/xcbgen/matcher.py
+++ b/xcbgen/matcher.py
@@ -9,14 +9,15 @@ we do not create a new type object, we just record the existing one under a new
from os.path import join
from xml.etree.cElementTree import parse
-import state
-from xtypes import *
+from xcbgen.xtypes import *
def import_(node, module, namespace):
'''
For imports, we load the file, create a new namespace object,
execute recursively, then record the import (for header files, etc.)
'''
+ # To avoid circular import error
+ from xcbgen import state
new_file = join(namespace.dir, '%s.xml' % node.text)
new_root = parse(new_file).getroot()
new_namespace = state.Namespace(new_file)
diff --git a/xcbgen/state.py b/xcbgen/state.py
index 51efc94..ae3d2d4 100644
--- a/xcbgen/state.py
+++ b/xcbgen/state.py
@@ -4,9 +4,9 @@ This module contains the namespace class and the singleton module class.
from os.path import dirname, basename
from xml.etree.cElementTree import parse
-import matcher
-from error import *
-from xtypes import *
+from xcbgen import matcher
+from xcbgen.error import *
+from xcbgen.xtypes import *
import __main__
diff --git a/xcbgen/xtypes.py b/xcbgen/xtypes.py
index 1a6c7ce..14c318a 100644
--- a/xcbgen/xtypes.py
+++ b/xcbgen/xtypes.py
@@ -1,7 +1,7 @@
'''
This module contains the classes which represent XCB data types.
'''
-from expr import Field, Expression
+from xcbgen.expr import Field, Expression
import __main__
class Type(object):
--
1.7.3.4
More information about the Xcb
mailing list