diff --git a/setup.cfg b/setup.cfg index a5ef60265..cf28fc777 100644 --- a/setup.cfg +++ b/setup.cfg @@ -54,6 +54,8 @@ strict_optional = False filterwarnings = all ignore::DeprecationWarning:docutils.io + ignore::DeprecationWarning:pyximport.pyximport + ignore::PendingDeprecationWarning:sphinx.util.pycompat markers = sphinx apidoc diff --git a/sphinx/util/pycompat.py b/sphinx/util/pycompat.py index bcd90a718..7d22a792a 100644 --- a/sphinx/util/pycompat.py +++ b/sphinx/util/pycompat.py @@ -23,8 +23,15 @@ def convert_with_2to3(filepath: str) -> str: warnings.warn('convert_with_2to3() is deprecated', RemovedInSphinx60Warning, stacklevel=2) - from lib2to3.refactor import RefactoringTool, get_fixers_from_package - from lib2to3.pgen2.parse import ParseError + try: + from lib2to3.refactor import RefactoringTool, get_fixers_from_package + from lib2to3.pgen2.parse import ParseError + except ImportError: + # python 3.9.0a6+ emits PendingDeprecationWarning for lib2to3. + # Additionally, removal of the module is still discussed at PEP-594. + # To support future python, this catches ImportError for lib2to3. + raise SyntaxError + fixers = get_fixers_from_package('lib2to3.fixes') refactoring_tool = RefactoringTool(fixers) source = refactoring_tool._read_python_source(filepath)[0] diff --git a/tests/roots/test-ext-autodoc/target/cython.pyx b/tests/roots/test-ext-autodoc/target/cython.pyx index 31ef33c29..5d0329ae5 100644 --- a/tests/roots/test-ext-autodoc/target/cython.pyx +++ b/tests/roots/test-ext-autodoc/target/cython.pyx @@ -1,4 +1,5 @@ # cython: binding=True +# cython: language_level=3str def foo(x: int, *args, y: str, **kwargs): """Docstring.""" diff --git a/tests/test_ext_autosummary.py b/tests/test_ext_autosummary.py index 63fafe860..f97840aa5 100644 --- a/tests/test_ext_autosummary.py +++ b/tests/test_ext_autosummary.py @@ -358,7 +358,7 @@ def test_autosummary_imported_members(app, status, warning): def test_generate_autosummary_docs_property(app): with patch('sphinx.ext.autosummary.generate.find_autosummary_in_files') as mock: mock.return_value = [AutosummaryEntry('target.methods.Base.prop', 'prop', None, False)] - generate_autosummary_docs([], output_dir=app.srcdir, builder=app.builder, app=app) + generate_autosummary_docs([], output_dir=app.srcdir, app=app) content = (app.srcdir / 'target.methods.Base.prop.rst').read_text() assert content == ("target.methods.Base.prop\n" diff --git a/tests/test_markup.py b/tests/test_markup.py index 1d5c81bfa..1b41dc69a 100644 --- a/tests/test_markup.py +++ b/tests/test_markup.py @@ -18,6 +18,7 @@ from docutils.transforms.universal import SmartQuotes from sphinx import addnodes from sphinx.builders.html.transforms import KeyboardTransform from sphinx.builders.latex import LaTeXBuilder +from sphinx.builders.latex.theming import ThemeFactory from sphinx.roles import XRefRole from sphinx.testing.util import Struct, assert_node from sphinx.util import texescape @@ -110,7 +111,8 @@ def verify_re_latex(app, parse): app.builder = LaTeXBuilder(app) app.builder.set_environment(app.env) app.builder.init() - latex_translator = ForgivingLaTeXTranslator(document, app.builder) + theme = app.builder.themes.get('manual') + latex_translator = ForgivingLaTeXTranslator(document, app.builder, theme) latex_translator.first_document = -1 # don't write \begin{document} document.walkabout(latex_translator) latex_translated = ''.join(latex_translator.body).strip() diff --git a/tests/test_util_docstrings.py b/tests/test_util_docstrings.py index 2f0901d06..a57e3f9b1 100644 --- a/tests/test_util_docstrings.py +++ b/tests/test_util_docstrings.py @@ -59,16 +59,6 @@ def test_prepare_docstring(): " Ut enim ad minim veniam, quis nostrud exercitation", " ullamco laboris nisi ut aliquip ex ea commodo consequat.", ""]) - assert (prepare_docstring(docstring, 5) == - ["multiline docstring", - "", - "Lorem ipsum dolor sit amet, consectetur adipiscing elit,", - "sed do eiusmod tempor incididunt ut labore et dolore magna", - "aliqua::", - "", - "Ut enim ad minim veniam, quis nostrud exercitation", - " ullamco laboris nisi ut aliquip ex ea commodo consequat.", - ""]) docstring = """