Drop docutils-0.7, 0.8 and 0.9 support

This commit is contained in:
Takayuki Shimizukawa 2013-12-15 16:25:01 +09:00
parent f7cb510ebd
commit 2050285ebf
9 changed files with 18 additions and 70 deletions

View File

@ -135,8 +135,7 @@ Note that a direct PDF builder using ReportLab is available in `rst2pdf
.. note::
This builder requires the docutils manual page writer, which is only
available as of docutils 0.6.
This builder requires the docutils manual page writer.
.. versionadded:: 1.0

View File

@ -51,7 +51,7 @@ Prerequisites
-------------
Sphinx needs at least **Python 2.6** or **Python 3.2** to run, as well as the
docutils_ and Jinja2_ libraries. Sphinx should work with docutils version 0.7
docutils_ and Jinja2_ libraries. Sphinx should work with docutils version 0.10
or some (not broken) SVN trunk snapshot. If you like to have source code
highlighting support, you must also install the Pygments_ library.

View File

@ -48,10 +48,7 @@ if sys.version_info < (2, 6) or (3, 0) <= sys.version_info < (3, 2):
print('ERROR: Sphinx requires at least Python 2.6 or 3.2 to run.')
sys.exit(1)
requires = ['Pygments>=1.2', 'docutils>=0.7']
if sys.version_info[:3] >= (3, 3, 0):
requires[1] = 'docutils>=0.10'
requires = ['Pygments>=1.2', 'docutils>=0.10']
if (3, 0) <= sys.version_info < (3, 3):
requires.append('Jinja2>=2.3,<2.7')

View File

@ -71,12 +71,12 @@ def main(argv=sys.argv):
sys.stderr.write(hint)
return 1
raise
if sys.version_info[:3] >= (3, 3, 0):
from sphinx.util.compat import docutils_version
if docutils_version < (0, 10):
sys.stderr.write('Error: Sphinx requires at least '
'Docutils 0.10 for Python 3.3 and above.\n')
return 1
from sphinx.util.compat import docutils_version
if docutils_version < (0, 10):
sys.stderr.write('Error: Sphinx requires at least Docutils 0.10 to '
'run.\n')
return 1
return cmdline.main(argv)

View File

@ -20,7 +20,7 @@ from sphinx.builders import Builder
from sphinx.environment import NoUri
from sphinx.util.nodes import inline_all_toctrees
from sphinx.util.console import bold, darkgreen
from sphinx.writers.manpage import ManualPageWriter, has_manpage_writer
from sphinx.writers.manpage import ManualPageWriter
class ManualPageBuilder(Builder):
@ -32,9 +32,6 @@ class ManualPageBuilder(Builder):
supported_image_types = []
def init(self):
if not has_manpage_writer:
raise SphinxError('The docutils manual page writer can\'t be '
'found; it is only available as of docutils 0.6.')
if not self.config.man_pages:
self.warn('no "man_pages" config value found; no manual pages '
'will be written')

View File

@ -142,10 +142,7 @@ class CustomLocaleReporter(object):
self.source, self.line = source, line
def set_reporter(self, document):
if docutils_version < (0, 9):
document.reporter.locator = self.get_source_and_line
else:
document.reporter.get_source_and_line = self.get_source_and_line
document.reporter.get_source_and_line = self.get_source_and_line
def get_source_and_line(self, lineno=None):
return self.source, self.line

View File

@ -223,12 +223,7 @@ def set_source_info(directive, node):
directive.state_machine.get_source_and_line(directive.lineno)
def set_role_source_info(inliner, lineno, node):
try:
node.source, node.line = \
inliner.reporter.locator(lineno)
except AttributeError:
# docutils 0.9+
node.source, node.line = inliner.reporter.get_source_and_line(lineno)
node.source, node.line = inliner.reporter.get_source_and_line(lineno)
# monkey-patch Element.copy to copy the rawsource
@ -236,17 +231,3 @@ def _new_copy(self):
return self.__class__(self.rawsource, **self.attributes)
nodes.Element.copy = _new_copy
# monkey-patch Element.__repr__ to return str if it returns unicode.
# Was fixed in docutils since 0.10. See sf.net/p/docutils/bugs/218/.
if sys.version_info < (3,):
_element_repr_orig = nodes.Element.__repr__
def _new_repr(self):
s = _element_repr_orig(self)
if isinstance(s, unicode):
return s.encode('utf-8')
return s
nodes.Element.__repr__ = _new_repr

View File

@ -10,14 +10,11 @@
"""
from docutils import nodes
try:
from docutils.writers.manpage import MACRO_DEF, Writer, \
Translator as BaseTranslator
has_manpage_writer = True
except ImportError:
# define the classes in any case, sphinx.application needs it
Writer = BaseTranslator = object
has_manpage_writer = False
from docutils.writers.manpage import (
MACRO_DEF,
Writer,
Translator as BaseTranslator
)
from sphinx import addnodes
from sphinx.locale import admonitionlabels, _

22
tox.ini
View File

@ -1,5 +1,5 @@
[tox]
envlist=py26,py27,py32,py33,pypy,du11,du10,du09,du08,du07
envlist=py26,py27,py32,py33,pypy,du11,du10
[testenv]
deps=
@ -12,31 +12,11 @@ commands=
{envpython} tests/run.py {posargs}
sphinx-build -W -b html -d {envtmpdir}/doctrees doc {envtmpdir}/html
[testenv:py33]
deps=
docutils>=0.10.0
{[testenv]deps}
[testenv:pypy]
deps=
simplejson
{[testenv]deps}
[testenv:du07]
deps=
docutils==0.7
{[testenv]deps}
[testenv:du08]
deps=
docutils==0.8.1
{[testenv]deps}
[testenv:du09]
deps=
docutils==0.9.1
{[testenv]deps}
[testenv:du10]
deps=
docutils==0.10