Further fix of places in the code that use__import__
This commit is contained in:
parent
2ebb1af32f
commit
5cb86beae2
66
docutils-__import__-fixes2.patch
Normal file
66
docutils-__import__-fixes2.patch
Normal file
@ -0,0 +1,66 @@
|
||||
Index: docutils/readers/__init__.py
|
||||
===================================================================
|
||||
--- docutils/readers/__init__.py.orig
|
||||
+++ docutils/readers/__init__.py
|
||||
@@ -106,5 +106,8 @@ def get_reader_class(reader_name):
|
||||
reader_name = reader_name.lower()
|
||||
if reader_name in _reader_aliases:
|
||||
reader_name = _reader_aliases[reader_name]
|
||||
- module = __import__(reader_name, globals(), locals(), level=1)
|
||||
+ try:
|
||||
+ module = __import__(reader_name, globals(), locals(), level=0)
|
||||
+ except ImportError:
|
||||
+ module = __import__(reader_name, globals(), locals(), level=1)
|
||||
return module.Reader
|
||||
Index: docutils/parsers/__init__.py
|
||||
===================================================================
|
||||
--- docutils/parsers/__init__.py.orig
|
||||
+++ docutils/parsers/__init__.py
|
||||
@@ -46,5 +46,8 @@ def get_parser_class(parser_name):
|
||||
parser_name = parser_name.lower()
|
||||
if parser_name in _parser_aliases:
|
||||
parser_name = _parser_aliases[parser_name]
|
||||
- module = __import__(parser_name, globals(), locals(), level=1)
|
||||
+ try:
|
||||
+ module = __import__(parser_name, globals(), locals(), level=0)
|
||||
+ except ImportError:
|
||||
+ module = __import__(parser_name, globals(), locals(), level=1)
|
||||
return module.Parser
|
||||
Index: docutils/languages/__init__.py
|
||||
===================================================================
|
||||
--- docutils/languages/__init__.py.orig
|
||||
+++ docutils/languages/__init__.py
|
||||
@@ -30,9 +30,12 @@ def get_language(language_code, reporter
|
||||
if tag in _languages:
|
||||
return _languages[tag]
|
||||
try:
|
||||
- module = __import__(tag, globals(), locals(), level=1)
|
||||
+ module = __import__(tag, globals(), locals(), level=0)
|
||||
except ImportError:
|
||||
- continue
|
||||
+ try:
|
||||
+ module = __import__(tag, globals(), locals(), level=1)
|
||||
+ except ImportError:
|
||||
+ continue
|
||||
_languages[tag] = module
|
||||
return module
|
||||
if reporter is not None:
|
||||
Index: docutils/parsers/rst/languages/__init__.py
|
||||
===================================================================
|
||||
--- docutils/parsers/rst/languages/__init__.py.orig
|
||||
+++ docutils/parsers/rst/languages/__init__.py
|
||||
@@ -25,9 +25,12 @@ def get_language(language_code):
|
||||
if tag in _languages:
|
||||
return _languages[tag]
|
||||
try:
|
||||
- module = __import__(tag, globals(), locals(), level=1)
|
||||
+ module = __import__(tag, globals(), locals(), level=0)
|
||||
except ImportError:
|
||||
- continue
|
||||
+ try:
|
||||
+ module = __import__(tag, globals(), locals(), level=1)
|
||||
+ except ImportError:
|
||||
+ continue
|
||||
_languages[tag] = module
|
||||
return module
|
||||
return None
|
300
docutils-__import__-tests.patch
Normal file
300
docutils-__import__-tests.patch
Normal file
@ -0,0 +1,300 @@
|
||||
Index: test/local-reader.py
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ test/local-reader.py
|
||||
@@ -0,0 +1,20 @@
|
||||
+# -*- coding: utf-8 -*-
|
||||
+# $Id: local-writer.py 7500 2012-08-22 19:38:14Z grubert $
|
||||
+# Authors: Engelbert Gruber <grubert@users.sourceforge.net>
|
||||
+# Toshio Kuratomi <toshio@fedoraproject.org>
|
||||
+# Copyright: This module is put into the public domain.
|
||||
+
|
||||
+"""
|
||||
+mini-reader to test get_reader_class with local reader
|
||||
+"""
|
||||
+
|
||||
+import docutils
|
||||
+from docutils import readers
|
||||
+
|
||||
+class Reader(readers.Reader):
|
||||
+
|
||||
+ supported = ('dummy',)
|
||||
+ """Formats this reader supports."""
|
||||
+
|
||||
+ document = None
|
||||
+ """A document tree."""
|
||||
Index: test/test_readers/test_get_reader_class.py
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ test/test_readers/test_get_reader_class.py
|
||||
@@ -0,0 +1,32 @@
|
||||
+#! /usr/bin/env python
|
||||
+
|
||||
+# $Id: test_get_writer_class.py 7500 2012-08-22 19:38:14Z grubert $
|
||||
+# Author: grubert abadger1999
|
||||
+# Maintainer: docutils-develop@lists.sourceforge.net
|
||||
+# Copyright: This module has been placed in the public domain.
|
||||
+
|
||||
+"""
|
||||
+test get_reader_class
|
||||
+"""
|
||||
+
|
||||
+from __init__ import DocutilsTestSupport
|
||||
+from docutils.readers import get_reader_class
|
||||
+
|
||||
+class GetReaderClassTestCase(DocutilsTestSupport.StandardTestCase):
|
||||
+
|
||||
+ def test_registered_reader(self):
|
||||
+ rdr = get_reader_class('pep')
|
||||
+ # raises ImportError on failure
|
||||
+
|
||||
+ def test_bogus_reader(self):
|
||||
+ self.assertRaises(ImportError,
|
||||
+ get_reader_class, 'nope')
|
||||
+
|
||||
+ def test_local_reader(self):
|
||||
+ # requires local-reader.py in test directory (testroot)
|
||||
+ wr = get_reader_class('local-reader')
|
||||
+
|
||||
+if __name__ == '__main__':
|
||||
+ import unittest
|
||||
+ unittest.main()
|
||||
+
|
||||
Index: test/local-parser.py
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ test/local-parser.py
|
||||
@@ -0,0 +1,21 @@
|
||||
+# -*- coding: utf-8 -*-
|
||||
+# $Id: local-writer.py 7500 2012-08-22 19:38:14Z grubert $
|
||||
+# Authors: Engelbert Gruber <grubert@users.sourceforge.net>
|
||||
+# Toshio Kuratomi <toshio@fedoraproject.org>
|
||||
+# Copyright: This module is put into the public domain.
|
||||
+
|
||||
+"""
|
||||
+mini-reader to test get_reader_class with local reader
|
||||
+"""
|
||||
+
|
||||
+from docutils import parsers
|
||||
+
|
||||
+class Parser(parsers.Parser):
|
||||
+
|
||||
+ supported = ('dummy',)
|
||||
+ """Formats this reader supports."""
|
||||
+
|
||||
+ def parser(self, inputstring, document):
|
||||
+ self.setup_parse(inputstring, document)
|
||||
+ document = dict()
|
||||
+ self.finish_parse()
|
||||
Index: test/test_parsers/test_get_parser_class.py
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ test/test_parsers/test_get_parser_class.py
|
||||
@@ -0,0 +1,32 @@
|
||||
+#! /usr/bin/env python
|
||||
+
|
||||
+# $Id: test_get_writer_class.py 7500 2012-08-22 19:38:14Z grubert $
|
||||
+# Author: grubert abadger1999
|
||||
+# Maintainer: docutils-develop@lists.sourceforge.net
|
||||
+# Copyright: This module has been placed in the public domain.
|
||||
+
|
||||
+"""
|
||||
+test get_parser_class
|
||||
+"""
|
||||
+
|
||||
+from __init__ import DocutilsTestSupport
|
||||
+from docutils.parsers import get_parser_class
|
||||
+
|
||||
+class GetParserClassTestCase(DocutilsTestSupport.StandardTestCase):
|
||||
+
|
||||
+ def test_registered_parser(self):
|
||||
+ rdr = get_parser_class('rst')
|
||||
+ # raises ImportError on failure
|
||||
+
|
||||
+ def test_bogus_parser(self):
|
||||
+ self.assertRaises(ImportError,
|
||||
+ get_parser_class, 'nope')
|
||||
+
|
||||
+ def test_local_parser(self):
|
||||
+ # requires local-parser.py in test directory (testroot)
|
||||
+ wr = get_parser_class('local-parser')
|
||||
+
|
||||
+if __name__ == '__main__':
|
||||
+ import unittest
|
||||
+ unittest.main()
|
||||
+
|
||||
Index: test/test_language.py
|
||||
===================================================================
|
||||
--- test/test_language.py.orig
|
||||
+++ test/test_language.py
|
||||
@@ -53,6 +53,11 @@ class LanguageTestSuite(DocutilsTestSupp
|
||||
# test language tag normalization:
|
||||
self.languages += ['en_gb', 'en_US', 'en-CA', 'de-DE', 'de-AT-1901',
|
||||
'pt-BR', 'pt-foo-BR']
|
||||
+ # test that locally created language files are also loaded.
|
||||
+ # requires local_dummy_lang.py in test directory (testroot)
|
||||
+ # The local_dummy_lang.py contains all the fields from both
|
||||
+ # the docutils language tags and the parser.rst language tags
|
||||
+ self.languages += ['local_dummy_lang']
|
||||
|
||||
def generateTests(self):
|
||||
for language in self.languages:
|
||||
Index: test/local_dummy_lang.py
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ test/local_dummy_lang.py
|
||||
@@ -0,0 +1,154 @@
|
||||
+# $Id: en.py 4564 2006-05-21 20:44:42Z wiemann $
|
||||
+# Author: David Goodger <goodger@python.org>
|
||||
+# Copyright: This module has been placed in the public domain.
|
||||
+
|
||||
+# New language mappings are welcome. Before doing a new translation, please
|
||||
+# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
|
||||
+# translated for each language: one in docutils/languages, the other in
|
||||
+# docutils/parsers/rst/languages.
|
||||
+
|
||||
+"""
|
||||
+English-language mappings for language-dependent features of Docutils.
|
||||
+"""
|
||||
+
|
||||
+__docformat__ = 'reStructuredText'
|
||||
+
|
||||
+labels = {
|
||||
+ # fixed: language-dependent
|
||||
+ 'author': 'dummy Author',
|
||||
+ 'authors': 'dummy Authors',
|
||||
+ 'organization': 'dummy Organization',
|
||||
+ 'address': 'dummy Address',
|
||||
+ 'contact': 'dummy Contact',
|
||||
+ 'version': 'dummy Version',
|
||||
+ 'revision': 'dummy Revision',
|
||||
+ 'status': 'dummy Status',
|
||||
+ 'date': 'dummy Date',
|
||||
+ 'copyright': 'dummy Copyright',
|
||||
+ 'dedication': 'dummy Dedication',
|
||||
+ 'abstract': 'dummy Abstract',
|
||||
+ 'attention': 'dummy Attention!',
|
||||
+ 'caution': 'dummy Caution!',
|
||||
+ 'danger': 'dummy !DANGER!',
|
||||
+ 'error': 'dummy Error',
|
||||
+ 'hint': 'dummy Hint',
|
||||
+ 'important': 'dummy Important',
|
||||
+ 'note': 'dummy Note',
|
||||
+ 'tip': 'dummy Tip',
|
||||
+ 'warning': 'dummy Warning',
|
||||
+ 'contents': 'dummy Contents'}
|
||||
+"""Mapping of node class name to label text."""
|
||||
+
|
||||
+bibliographic_fields = {
|
||||
+ # language-dependent: fixed
|
||||
+ 'dummy author': 'author',
|
||||
+ 'dummy authors': 'authors',
|
||||
+ 'dummy organization': 'organization',
|
||||
+ 'dummy address': 'address',
|
||||
+ 'dummy contact': 'contact',
|
||||
+ 'dummy version': 'version',
|
||||
+ 'dummy revision': 'revision',
|
||||
+ 'dummy status': 'status',
|
||||
+ 'dummy date': 'date',
|
||||
+ 'dummy copyright': 'copyright',
|
||||
+ 'dummy dedication': 'dedication',
|
||||
+ 'dummy abstract': 'abstract'}
|
||||
+"""English (lowcased) to canonical name mapping for bibliographic fields."""
|
||||
+
|
||||
+author_separators = [';', ',']
|
||||
+"""List of separator strings for the 'Authors' bibliographic field. Tried in
|
||||
+order."""
|
||||
+
|
||||
+directives = {
|
||||
+ # language-dependent: fixed
|
||||
+ 'dummy attention': 'attention',
|
||||
+ 'dummy caution': 'caution',
|
||||
+ 'dummy code': 'code',
|
||||
+ 'dummy code-block': 'code',
|
||||
+ 'dummy sourcecode': 'code',
|
||||
+ 'dummy danger': 'danger',
|
||||
+ 'dummy error': 'error',
|
||||
+ 'dummy hint': 'hint',
|
||||
+ 'dummy important': 'important',
|
||||
+ 'dummy note': 'note',
|
||||
+ 'dummy tip': 'tip',
|
||||
+ 'dummy warning': 'warning',
|
||||
+ 'dummy admonition': 'admonition',
|
||||
+ 'dummy sidebar': 'sidebar',
|
||||
+ 'dummy topic': 'topic',
|
||||
+ 'dummy line-block': 'line-block',
|
||||
+ 'dummy parsed-literal': 'parsed-literal',
|
||||
+ 'dummy rubric': 'rubric',
|
||||
+ 'dummy epigraph': 'epigraph',
|
||||
+ 'dummy highlights': 'highlights',
|
||||
+ 'dummy pull-quote': 'pull-quote',
|
||||
+ 'dummy compound': 'compound',
|
||||
+ 'dummy container': 'container',
|
||||
+ #'dummy questions': 'questions',
|
||||
+ 'dummy table': 'table',
|
||||
+ 'dummy csv-table': 'csv-table',
|
||||
+ 'dummy list-table': 'list-table',
|
||||
+ #'dummy qa': 'questions',
|
||||
+ #'dummy faq': 'questions',
|
||||
+ 'dummy meta': 'meta',
|
||||
+ 'dummy math': 'math',
|
||||
+ #'dummy imagemap': 'imagemap',
|
||||
+ 'dummy image': 'image',
|
||||
+ 'dummy figure': 'figure',
|
||||
+ 'dummy include': 'include',
|
||||
+ 'dummy raw': 'raw',
|
||||
+ 'dummy replace': 'replace',
|
||||
+ 'dummy unicode': 'unicode',
|
||||
+ 'dummy date': 'date',
|
||||
+ 'dummy class': 'class',
|
||||
+ 'dummy role': 'role',
|
||||
+ 'dummy default-role': 'default-role',
|
||||
+ 'dummy title': 'title',
|
||||
+ 'dummy contents': 'contents',
|
||||
+ 'dummy sectnum': 'sectnum',
|
||||
+ 'dummy section-numbering': 'sectnum',
|
||||
+ 'dummy header': 'header',
|
||||
+ 'dummy footer': 'footer',
|
||||
+ #'dummy footnotes': 'footnotes',
|
||||
+ #'dummy citations': 'citations',
|
||||
+ 'dummy target-notes': 'target-notes',
|
||||
+ 'dummy restructuredtext-test-directive': 'restructuredtext-test-directive'}
|
||||
+"""English name to registered (in directives/__init__.py) directive name
|
||||
+mapping."""
|
||||
+
|
||||
+roles = {
|
||||
+ # language-dependent: fixed
|
||||
+ 'dummy abbreviation': 'abbreviation',
|
||||
+ 'dummy ab': 'abbreviation',
|
||||
+ 'dummy acronym': 'acronym',
|
||||
+ 'dummy ac': 'acronym',
|
||||
+ 'dummy code': 'code',
|
||||
+ 'dummy index': 'index',
|
||||
+ 'dummy i': 'index',
|
||||
+ 'dummy subscript': 'subscript',
|
||||
+ 'dummy sub': 'subscript',
|
||||
+ 'dummy superscript': 'superscript',
|
||||
+ 'dummy sup': 'superscript',
|
||||
+ 'dummy title-reference': 'title-reference',
|
||||
+ 'dummy title': 'title-reference',
|
||||
+ 'dummy t': 'title-reference',
|
||||
+ 'dummy pep-reference': 'pep-reference',
|
||||
+ 'dummy pep': 'pep-reference',
|
||||
+ 'dummy rfc-reference': 'rfc-reference',
|
||||
+ 'dummy rfc': 'rfc-reference',
|
||||
+ 'dummy emphasis': 'emphasis',
|
||||
+ 'dummy strong': 'strong',
|
||||
+ 'dummy literal': 'literal',
|
||||
+ 'dummy math': 'math',
|
||||
+ 'dummy named-reference': 'named-reference',
|
||||
+ 'dummy anonymous-reference': 'anonymous-reference',
|
||||
+ 'dummy footnote-reference': 'footnote-reference',
|
||||
+ 'dummy citation-reference': 'citation-reference',
|
||||
+ 'dummy substitution-reference': 'substitution-reference',
|
||||
+ 'dummy target': 'target',
|
||||
+ 'dummy uri-reference': 'uri-reference',
|
||||
+ 'dummy uri': 'uri-reference',
|
||||
+ 'dummy url': 'uri-reference',
|
||||
+ 'dummy raw': 'raw',}
|
||||
+"""Mapping of English role names to canonical role names for interpreted text.
|
||||
+"""
|
@ -11,7 +11,7 @@
|
||||
|
||||
Name: python-%{srcname}
|
||||
Version: 0.10
|
||||
Release: 0.5.20120824svn7502%{?dist}
|
||||
Release: 0.6.20120824svn7502%{?dist}
|
||||
Summary: System for processing plaintext documentation
|
||||
|
||||
Group: Development/Languages
|
||||
@ -25,8 +25,9 @@ URL: http://docutils.sourceforge.net
|
||||
# python setup.py sdist
|
||||
# The tarball is in dist/docutils-VERSION.tar.gz
|
||||
Source0: %{srcname}-%{version}.tar.gz
|
||||
#Patch0: docutils-__import__-tests.patch
|
||||
#Patch1: docutils-__import__-fixes.patch
|
||||
# Submitted upstream: https://sourceforge.net/tracker/index.php?func=detail&aid=3560841&group_id=38414&atid=422030
|
||||
Patch0: docutils-__import__-tests.patch
|
||||
Patch1: docutils-__import__-fixes2.patch
|
||||
|
||||
# Disable some tests known to fail with Python 3.3
|
||||
# Bug reports filed upstream as:
|
||||
@ -87,8 +88,8 @@ This package contains the module, ported to run under python3.
|
||||
|
||||
%prep
|
||||
%setup -q -n %{srcname}-%{version}
|
||||
#patch0 -p0
|
||||
#patch1 -p0
|
||||
%patch0 -p0
|
||||
%patch1 -p0
|
||||
%patch100 -p1 -b .disable-failing-tests
|
||||
|
||||
# Remove shebang from library files
|
||||
@ -170,6 +171,9 @@ rm -rf %{buildroot}
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Sat Aug 25 2012 Toshio Kuratomi <toshio@fedoraproject.org> - 0.10-0.6.20120824svn7502
|
||||
- Further fix of places in the code that use__import__
|
||||
|
||||
* Fri Aug 24 2012 Toshio Kuratomi <toshio@fedoraproject.org> - 0.10-0.5.20120824svn7502
|
||||
- Rebase to new snapshot with some fixes integrated
|
||||
- Reenable one test that I can't replicate the failure with.
|
||||
|
Loading…
Reference in New Issue
Block a user