From: <mi...@us...> - 2012-07-11 12:25:25
|
Revision: 7486 http://docutils.svn.sourceforge.net/docutils/?rev=7486&view=rev Author: milde Date: 2012-07-11 12:25:14 +0000 (Wed, 11 Jul 2012) Log Message: ----------- Fix [3541369] Relative __import__ also with Python 3.3. Modified Paths: -------------- trunk/docutils/HISTORY.txt trunk/docutils/docutils/_compat.py trunk/docutils/docutils/languages/__init__.py trunk/docutils/docutils/parsers/__init__.py trunk/docutils/docutils/parsers/rst/directives/__init__.py trunk/docutils/docutils/parsers/rst/languages/__init__.py trunk/docutils/docutils/readers/__init__.py trunk/docutils/docutils/writers/__init__.py Modified: trunk/docutils/HISTORY.txt =================================================================== --- trunk/docutils/HISTORY.txt 2012-07-06 08:17:28 UTC (rev 7485) +++ trunk/docutils/HISTORY.txt 2012-07-11 12:25:14 UTC (rev 7486) @@ -21,6 +21,7 @@ - Dropped support for Python 2.3. - ``docutils/math``, ``docutils/error_reporting.py``, and ``docutils/urischemes.py`` moved to the utils package. + - Fix [3541369] Relative __import__ also with Python 3.3. * docutils/io.py Modified: trunk/docutils/docutils/_compat.py =================================================================== --- trunk/docutils/docutils/_compat.py 2012-07-06 08:17:28 UTC (rev 7485) +++ trunk/docutils/docutils/_compat.py 2012-07-11 12:25:14 UTC (rev 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) Modified: trunk/docutils/docutils/languages/__init__.py =================================================================== --- trunk/docutils/docutils/languages/__init__.py 2012-07-06 08:17:28 UTC (rev 7485) +++ trunk/docutils/docutils/languages/__init__.py 2012-07-11 12:25:14 UTC (rev 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 Modified: trunk/docutils/docutils/parsers/__init__.py =================================================================== --- trunk/docutils/docutils/parsers/__init__.py 2012-07-06 08:17:28 UTC (rev 7485) +++ trunk/docutils/docutils/parsers/__init__.py 2012-07-11 12:25:14 UTC (rev 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 Modified: trunk/docutils/docutils/parsers/rst/directives/__init__.py =================================================================== --- trunk/docutils/docutils/parsers/rst/directives/__init__.py 2012-07-06 08:17:28 UTC (rev 7485) +++ trunk/docutils/docutils/parsers/rst/directives/__init__.py 2012-07-11 12:25:14 UTC (rev 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' Modified: trunk/docutils/docutils/parsers/rst/languages/__init__.py =================================================================== --- trunk/docutils/docutils/parsers/rst/languages/__init__.py 2012-07-06 08:17:28 UTC (rev 7485) +++ trunk/docutils/docutils/parsers/rst/languages/__init__.py 2012-07-11 12:25:14 UTC (rev 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 Modified: trunk/docutils/docutils/readers/__init__.py =================================================================== --- trunk/docutils/docutils/readers/__init__.py 2012-07-06 08:17:28 UTC (rev 7485) +++ trunk/docutils/docutils/readers/__init__.py 2012-07-11 12:25:14 UTC (rev 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 Modified: trunk/docutils/docutils/writers/__init__.py =================================================================== --- trunk/docutils/docutils/writers/__init__.py 2012-07-06 08:17:28 UTC (rev 7485) +++ trunk/docutils/docutils/writers/__init__.py 2012-07-11 12:25:14 UTC (rev 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 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |