[Python-modules-commits] r22881 - in packages/python-docutils/trunk/debian (3 files)

jwilk at users.alioth.debian.org jwilk at users.alioth.debian.org
Sun Nov 4 09:43:44 UTC 2012


    Date: Sunday, November 4, 2012 @ 09:43:42
  Author: jwilk
Revision: 22881

Use relative __import__().

Added:
  packages/python-docutils/trunk/debian/patches/python3.3-import-compat.diff
Modified:
  packages/python-docutils/trunk/debian/changelog
  packages/python-docutils/trunk/debian/patches/series

Modified: packages/python-docutils/trunk/debian/changelog
===================================================================
--- packages/python-docutils/trunk/debian/changelog	2012-11-03 17:06:44 UTC (rev 22880)
+++ packages/python-docutils/trunk/debian/changelog	2012-11-04 09:43:42 UTC (rev 22881)
@@ -6,8 +6,10 @@
       Dmitry Shachnev for the bug report.
     + Adapt Python 3 tests to the new way 2->3 conversion is being done on
       upstream tests.
+  * Fix FTBFS with Python 3.3 (closes: #681723):
+    + Use relative __import__ (python3.3-import-compat.diff).
 
- -- Jakub Wilk <jwilk at debian.org>  Sat, 03 Nov 2012 17:14:52 +0100
+ -- Jakub Wilk <jwilk at debian.org>  Sun, 04 Nov 2012 10:42:24 +0100
 
 python-docutils (0.9.1-1) experimental; urgency=low
 

Added: packages/python-docutils/trunk/debian/patches/python3.3-import-compat.diff
===================================================================
--- packages/python-docutils/trunk/debian/patches/python3.3-import-compat.diff	                        (rev 0)
+++ packages/python-docutils/trunk/debian/patches/python3.3-import-compat.diff	2012-11-04 09:43:42 UTC (rev 22881)
@@ -0,0 +1,172 @@
+Description: use relative __import__ with Python ≥ 3.3
+ In Python ≥ 3.3, the __import__() function uses absolute imports by
+ default; in previous versions it attempted both absolute and relative
+ imports, which is what Docutils expected.
+ .
+ This patch fixes the code to explicitly use relative imports.
+Origin: upstream
+Bug: http://sourceforge.net/tracker/index.php?func=detail&aid=3541369&group_id=38414&atid=422030
+Bug-Debian: http://bugs.debian.org/681723
+
+--- a/docutils/_compat.py
++++ b/docutils/_compat.py
+@@ -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)
+--- a/docutils/languages/__init__.py
++++ b/docutils/languages/__init__.py
+@@ -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
+--- a/docutils/parsers/__init__.py
++++ b/docutils/parsers/__init__.py
+@@ -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
+--- a/docutils/parsers/rst/directives/__init__.py
++++ b/docutils/parsers/rst/directives/__init__.py
+@@ -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'
+--- a/docutils/parsers/rst/languages/__init__.py
++++ b/docutils/parsers/rst/languages/__init__.py
+@@ -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
+--- a/docutils/readers/__init__.py
++++ b/docutils/readers/__init__.py
+@@ -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
+--- a/docutils/writers/__init__.py
++++ b/docutils/writers/__init__.py
+@@ -8,11 +8,14 @@
+ 
+ __docformat__ = 'reStructuredText'
+ 
+-
+ import os.path
++import sys
++
+ 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

Modified: packages/python-docutils/trunk/debian/patches/series
===================================================================
--- packages/python-docutils/trunk/debian/patches/series	2012-11-03 17:06:44 UTC (rev 22880)
+++ packages/python-docutils/trunk/debian/patches/series	2012-11-04 09:43:42 UTC (rev 22881)
@@ -1,3 +1,4 @@
+python3.3-import-compat.diff
 iepngfix-license.diff
 doc-debian-paths.diff
 emacs-sensible-browser.diff




More information about the Python-modules-commits mailing list