From 488092dca7e276357b78d78da7a06260d98a5c7f46c7de9b690d85735d77417a Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Mon, 19 Jul 2021 14:01:20 +0000 Subject: [PATCH] - Replace missing_force_decode.patch with 49-remove_force_decode.patch (gh#sphinx-contrib/httpdomain#49). OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-sphinxcontrib-httpdomain?expand=0&rev=44 --- 49-remove_force_decode.patch | 99 +++++++++++++++++++++++++ missing_force_decode.patch | 89 ---------------------- python-sphinxcontrib-httpdomain.changes | 6 ++ python-sphinxcontrib-httpdomain.spec | 6 +- 4 files changed, 108 insertions(+), 92 deletions(-) create mode 100644 49-remove_force_decode.patch delete mode 100644 missing_force_decode.patch diff --git a/49-remove_force_decode.patch b/49-remove_force_decode.patch new file mode 100644 index 0000000..780cf8a --- /dev/null +++ b/49-remove_force_decode.patch @@ -0,0 +1,99 @@ +From f120ce8d1c3089f23c8bfee41e59a4f84044c0c4 Mon Sep 17 00:00:00 2001 +From: Florian Masy +Date: Thu, 24 Jun 2021 21:39:16 +0200 +Subject: [PATCH] Remove imports and calls to depracated function force_decode + who was removed starting with sphinx 4.0 + +--- + sphinxcontrib/autohttp/bottle.py | 6 ++---- + sphinxcontrib/autohttp/flask.py | 1 - + sphinxcontrib/autohttp/flask_base.py | 4 ---- + sphinxcontrib/autohttp/tornado.py | 6 ++---- + 4 files changed, 4 insertions(+), 13 deletions(-) + +diff --git a/sphinxcontrib/autohttp/bottle.py b/sphinxcontrib/autohttp/bottle.py +index d249b30..1e8d709 100644 +--- a/sphinxcontrib/autohttp/bottle.py ++++ b/sphinxcontrib/autohttp/bottle.py +@@ -17,7 +17,6 @@ + from docutils.parsers.rst import directives, Directive + from docutils.statemachine import ViewList + +-from sphinx.util import force_decode + from sphinx.util.nodes import nested_parse_with_titles + from sphinx.util.docstrings import prepare_docstring + from sphinx.pycode import ModuleAnalyzer +@@ -89,11 +88,10 @@ def make_rst(self): + continue + view = target.callback + docstring = view.__doc__ or '' +- if not isinstance(docstring, six.text_type): +- analyzer = ModuleAnalyzer.for_module(view.__module__) +- docstring = force_decode(docstring, analyzer.encoding) ++ + if not docstring and 'include-empty-docstring' not in self.options: + continue ++ + docstring = prepare_docstring(docstring) + for line in http_directive(method, path, docstring): + yield line +diff --git a/sphinxcontrib/autohttp/flask.py b/sphinxcontrib/autohttp/flask.py +index de60c55..761efec 100644 +--- a/sphinxcontrib/autohttp/flask.py ++++ b/sphinxcontrib/autohttp/flask.py +@@ -19,7 +19,6 @@ + from docutils.parsers.rst import directives, Directive + from docutils.statemachine import ViewList + +-from sphinx.util import force_decode + from sphinx.util.nodes import nested_parse_with_titles + from sphinx.util.docstrings import prepare_docstring + from sphinx.pycode import ModuleAnalyzer +diff --git a/sphinxcontrib/autohttp/flask_base.py b/sphinxcontrib/autohttp/flask_base.py +index 782a95d..ba3e7ef 100644 +--- a/sphinxcontrib/autohttp/flask_base.py ++++ b/sphinxcontrib/autohttp/flask_base.py +@@ -17,7 +17,6 @@ + + from docutils.parsers.rst import directives, Directive + +-from sphinx.util import force_decode + from sphinx.util.docstrings import prepare_docstring + from sphinx.pycode import ModuleAnalyzer + +@@ -236,9 +235,6 @@ def inspect_routes(self, app): + if view_func and view_func.__doc__: + view_doc = view_func.__doc__ + +- if not isinstance(view_doc, six.text_type): +- analyzer = ModuleAnalyzer.for_module(view.__module__) +- view_doc = force_decode(view_doc, analyzer.encoding) + + if not view_doc and 'include-empty-docstring' not in self.options: + continue +diff --git a/sphinxcontrib/autohttp/tornado.py b/sphinxcontrib/autohttp/tornado.py +index 9a38b10..1e529ef 100644 +--- a/sphinxcontrib/autohttp/tornado.py ++++ b/sphinxcontrib/autohttp/tornado.py +@@ -18,7 +18,6 @@ + from docutils.parsers.rst import directives, Directive + from docutils.statemachine import ViewList + +-from sphinx.util import force_decode + from sphinx.util.nodes import nested_parse_with_titles + from sphinx.util.docstrings import prepare_docstring + from sphinx.pycode import ModuleAnalyzer +@@ -129,11 +128,10 @@ def make_rst(self): + continue + + docstring = getattr(handler, method).__doc__ or '' +- #if not isinstance(docstring, unicode): +- # analyzer = ModuleAnalyzer.for_module(view.__module__) +- # docstring = force_decode(docstring, analyzer.encoding) ++ + if not docstring and 'include-empty-docstring' not in self.options: + continue ++ + docstring = prepare_docstring(docstring) + for line in http_directive(method, normalize_path(path), docstring): + yield line diff --git a/missing_force_decode.patch b/missing_force_decode.patch deleted file mode 100644 index 1f70216..0000000 --- a/missing_force_decode.patch +++ /dev/null @@ -1,89 +0,0 @@ ---- - sphinxcontrib/autohttp/__init__.py | 19 +++++++++++++++++++ - sphinxcontrib/autohttp/bottle.py | 5 ++++- - sphinxcontrib/autohttp/flask.py | 5 ++++- - sphinxcontrib/autohttp/flask_base.py | 5 ++++- - sphinxcontrib/autohttp/tornado.py | 5 ++++- - 5 files changed, 35 insertions(+), 4 deletions(-) - ---- a/sphinxcontrib/autohttp/__init__.py -+++ b/sphinxcontrib/autohttp/__init__.py -@@ -9,3 +9,22 @@ - :license: BSD, see LICENSE for details. - - """ -+ -+# Taken from gh#sphinx-doc/sphinx#9326 -+def force_decode(string: str, encoding: str) -> str: -+ """Forcibly get a unicode string out of a bytestring.""" -+ warnings.warn('force_decode() is deprecated.', -+ RemovedInSphinx50Warning, stacklevel=2) -+ if isinstance(string, bytes): -+ try: -+ if encoding: -+ string = string.decode(encoding) -+ else: -+ # try decoding with utf-8, should only work for real UTF-8 -+ string = string.decode() -+ except UnicodeError: -+ # last resort -- can't fail -+ string = string.decode('latin1') -+ return string -+ -+ ---- a/sphinxcontrib/autohttp/bottle.py -+++ b/sphinxcontrib/autohttp/bottle.py -@@ -17,7 +17,10 @@ from docutils import nodes - from docutils.parsers.rst import directives, Directive - from docutils.statemachine import ViewList - --from sphinx.util import force_decode -+try: -+ from sphinx.util import force_decode -+except ImportError: -+ from . import force_decode - from sphinx.util.nodes import nested_parse_with_titles - from sphinx.util.docstrings import prepare_docstring - from sphinx.pycode import ModuleAnalyzer ---- a/sphinxcontrib/autohttp/flask.py -+++ b/sphinxcontrib/autohttp/flask.py -@@ -19,7 +19,10 @@ from docutils import nodes - from docutils.parsers.rst import directives, Directive - from docutils.statemachine import ViewList - --from sphinx.util import force_decode -+try: -+ from sphinx.util import force_decode -+except ImportError: -+ from . import force_decode - from sphinx.util.nodes import nested_parse_with_titles - from sphinx.util.docstrings import prepare_docstring - from sphinx.pycode import ModuleAnalyzer ---- a/sphinxcontrib/autohttp/flask_base.py -+++ b/sphinxcontrib/autohttp/flask_base.py -@@ -17,7 +17,10 @@ import collections - - from docutils.parsers.rst import directives, Directive - --from sphinx.util import force_decode -+try: -+ from sphinx.util import force_decode -+except ImportError: -+ from . import force_decode - from sphinx.util.docstrings import prepare_docstring - from sphinx.pycode import ModuleAnalyzer - ---- a/sphinxcontrib/autohttp/tornado.py -+++ b/sphinxcontrib/autohttp/tornado.py -@@ -18,7 +18,10 @@ from docutils import nodes - from docutils.parsers.rst import directives, Directive - from docutils.statemachine import ViewList - --from sphinx.util import force_decode -+try: -+ from sphinx.util import force_decode -+except ImportError: -+ from . import force_decode - from sphinx.util.nodes import nested_parse_with_titles - from sphinx.util.docstrings import prepare_docstring - from sphinx.pycode import ModuleAnalyzer diff --git a/python-sphinxcontrib-httpdomain.changes b/python-sphinxcontrib-httpdomain.changes index 59718cf..d775a19 100644 --- a/python-sphinxcontrib-httpdomain.changes +++ b/python-sphinxcontrib-httpdomain.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Jul 19 13:56:40 UTC 2021 - Matej Cepl + +- Replace missing_force_decode.patch with + 49-remove_force_decode.patch (gh#sphinx-contrib/httpdomain#49). + ------------------------------------------------------------------- Fri Jul 9 19:26:19 UTC 2021 - Matej Cepl diff --git a/python-sphinxcontrib-httpdomain.spec b/python-sphinxcontrib-httpdomain.spec index c5248b1..73733ab 100644 --- a/python-sphinxcontrib-httpdomain.spec +++ b/python-sphinxcontrib-httpdomain.spec @@ -25,9 +25,9 @@ Summary: Sphinx domain for HTTP APIs License: BSD-2-Clause URL: https://github.com/sphinx-contrib/httpdomain Source: https://github.com/sphinx-contrib/httpdomain/archive/%{version}.tar.gz -# PATCH-FIX-UPSTREAM missing_force_decode.patch gh#sphinx-contrib/httpdomain#46 mcepl@suse.com -# Add missing force_decode function in case it is missing in the actual Sphinx -Patch0: missing_force_decode.patch +# PATCH-FIX-UPSTREAM 49-remove_force_decode.patch gh#sphinx-contrib/httpdomain#49 mcepl@suse.com +# Finally remove use of force_decode function (removed from Sphinx). +Patch0: 49-remove_force_decode.patch BuildRequires: %{python_module Flask >= 0.11} BuildRequires: %{python_module Sphinx >= 1.5} BuildRequires: %{python_module bottle >= 0.11.0}