File r7486-python33-compat.patch of Package python-docutils

Index: trunk/docutils/docutils/parsers/__init__.py
===================================================================
--- trunk/docutils/docutils/parsers/__init__.py (revision 7485)
+++ trunk/docutils/docutils/parsers/__init__.py (revision 7486)
@@ -8,7 +8,10 @@
 
 __docformat__ = 'reStructuredText'
 
+import sys
 from docutils import Component
+if sys.version_info < (2,5):
+    from docutils._compat import __import__
 
 
 class Parser(Component):
@@ -43,5 +46,5 @@
     parser_name = parser_name.lower()
     if parser_name in _parser_aliases:
         parser_name = _parser_aliases[parser_name]
-    module = __import__(parser_name, globals(), locals())
+    module = __import__(parser_name, globals(), locals(), level=1)
     return module.Parser
Index: trunk/docutils/docutils/parsers/rst/directives/__init__.py
===================================================================
--- trunk/docutils/docutils/parsers/rst/directives/__init__.py  (revision 7485)
+++ trunk/docutils/docutils/parsers/rst/directives/__init__.py  (revision 7486)
@@ -10,8 +10,12 @@
 
 import re
 import codecs
+import sys
+
 from docutils import nodes
 from docutils.parsers.rst.languages import en as _fallback_language_module
+if sys.version_info < (2,5):
+    from docutils._compat import __import__
 
 
 _directive_registry = {
@@ -109,7 +113,7 @@
         # Error handling done by caller.
         return None, messages
     try:
-        module = __import__(modulename, globals(), locals())
+        module = __import__(modulename, globals(), locals(), level=1)
     except ImportError, detail:
         messages.append(document.reporter.error(
             'Error importing directive module "%s" (directive "%s"):\n%s'
Index: trunk/docutils/docutils/parsers/rst/languages/__init__.py
===================================================================
--- trunk/docutils/docutils/parsers/rst/languages/__init__.py   (revision 7485)
+++ trunk/docutils/docutils/parsers/rst/languages/__init__.py   (revision 7486)
@@ -12,7 +12,11 @@
 
 __docformat__ = 'reStructuredText'
 
+import sys
+
 from docutils.utils import normalize_language_tag
+if sys.version_info < (2,5):
+    from docutils._compat import __import__
 
 _languages = {}
 
@@ -21,7 +25,7 @@
         if tag in _languages:
             return _languages[tag]
         try:
-            module = __import__(tag, globals(), locals())
+            module = __import__(tag, globals(), locals(), level=1)
         except ImportError:
             continue
         _languages[tag] = module
Index: trunk/docutils/docutils/writers/__init__.py
===================================================================
--- trunk/docutils/docutils/writers/__init__.py (revision 7485)
+++ trunk/docutils/docutils/writers/__init__.py (revision 7486)
@@ -8,11 +8,14 @@
 
 __docformat__ = 'reStructuredText'
 
+import os.path
+import sys
 
-import os.path
 import docutils
 from docutils import languages, Component
 from docutils.transforms import universal
+if sys.version_info < (2,5):
+    from docutils._compat import __import__
 
 
 class Writer(Component):
@@ -130,5 +133,5 @@
     writer_name = writer_name.lower()
     if writer_name in _writer_aliases:
         writer_name = _writer_aliases[writer_name]
-    module = __import__(writer_name, globals(), locals())
+    module = __import__(writer_name, globals(), locals(), level=1)
     return module.Writer
Index: trunk/docutils/docutils/readers/__init__.py
===================================================================
--- trunk/docutils/docutils/readers/__init__.py (revision 7485)
+++ trunk/docutils/docutils/readers/__init__.py (revision 7486)
@@ -8,9 +8,12 @@
 
 __docformat__ = 'reStructuredText'
 
+import sys
 
 from docutils import utils, parsers, Component
 from docutils.transforms import universal
+if sys.version_info < (2,5):
+    from docutils._compat import __import__
 
 
 class Reader(Component):
@@ -103,5 +106,5 @@
     reader_name = reader_name.lower()
     if reader_name in _reader_aliases:
         reader_name = _reader_aliases[reader_name]
-    module = __import__(reader_name, globals(), locals())
+    module = __import__(reader_name, globals(), locals(), level=1)
     return module.Reader
Index: trunk/docutils/docutils/languages/__init__.py
===================================================================
--- trunk/docutils/docutils/languages/__init__.py       (revision 7485)
+++ trunk/docutils/docutils/languages/__init__.py       (revision 7486)
@@ -11,7 +11,11 @@
 
 __docformat__ = 'reStructuredText'
 
+import sys
+
 from docutils.utils import normalize_language_tag
+if sys.version_info < (2,5):
+    from docutils._compat import __import__
 
 _languages = {}
 
@@ -26,7 +30,7 @@
         if tag in _languages:
             return _languages[tag]
         try:
-            module = __import__(tag, globals(), locals())
+            module = __import__(tag, globals(), locals(), level=1)
         except ImportError:
             continue
         _languages[tag] = module
@@ -35,6 +39,6 @@
         reporter.warning(
             'language "%s" not supported: ' % language_code +
             'Docutils-generated text will be in English.')
-    module = __import__('en', globals(), locals())
+    module = __import__('en', globals(), locals(), level=1)
     _languages[tag] = module # warn only one time!
     return module
Index: trunk/docutils/docutils/_compat.py
===================================================================
--- trunk/docutils/docutils/_compat.py  (revision 7485)
+++ trunk/docutils/docutils/_compat.py  (revision 7486)
@@ -35,3 +35,14 @@
     # using this hack since 2to3 "fixes" the relative import
     # when using ``from io import BytesIO``
     BytesIO = __import__('io').BytesIO
+
+if sys.version_info < (2,5):
+    import __builtin__
+
+    def __import__(name, globals={}, locals={}, fromlist=[], level=-1):
+        """Compatibility definition for Python 2.4.
+
+        Silently ignore the `level` argument missing in Python < 2.5.
+        """
+        # we need the level arg because the default changed in Python 3.3
+        return __builtin__.__import__(name, globals, locals, fromlist)

------------------------------------------------------------------------

openSUSE Build Service is sponsored by