Files
python-sphinxcontrib-httpdo…/missing_force_decode.patch

90 lines
3.0 KiB
Diff

---
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