Xqt created this task.
Xqt added projects: Pywikibot, Pywikibot-Documentation.
Restricted Application added subscribers: pywikibot-bugs-list, Aklapper.
TASK DESCRIPTION
**List of steps to reproduce**
- run `make html` to render the Pywikibot docs and create html files
**What happens?**:
# Sphinx version: 4.0.0
# Python version: 3.9.0 (CPython)
# Docutils version: 0.16 release
# Jinja2 version: 2.11.3
# Last messages:
# Running Sphinx v4.0.0
# [autosummary] generating autosummary for: api_ref\index.rst,
api_ref\pywikibot.comms.rst, api_ref\pywikibot.config.rst,
api_ref\pywikibot.data.rst, api_ref\pywikibot.families.rst,
api_ref\pywikibot.page.rst, api_ref\pywikibot.rst, api_ref\pywikibot.site.rst,
api_ref\pywikibot.specialbots.rst, api_ref\pywikibot.tools.rst, ...,
library_usage.rst, licenses.rst, recipes.rst, scripts\index.rst,
scripts\scripts.archive.rst, scripts\scripts.i18n.rst,
scripts\scripts.maintenance.rst, scripts\scripts.rst,
scripts\scripts.userscripts.rst, utilities\index.rst
# building [mo]: targets for 0 po files that are out of date
# building [html]: targets for 29 source files that are out of date
# updating environment:
# [new config]
# 29 added, 0 changed, 0 removed
# reading sources... [ 3%] api_ref/index
# reading sources... [ 6%] api_ref/pywikibot
# Loaded extensions:
# sphinx.ext.mathjax (4.0.0) from
c:\python39\lib\site-packages\sphinx\ext\mathjax.py
# sphinxcontrib.applehelp (1.0.2) from
c:\python39\lib\site-packages\sphinxcontrib\applehelp\__init__.py
# sphinxcontrib.devhelp (1.0.2) from
c:\python39\lib\site-packages\sphinxcontrib\devhelp\__init__.py
# sphinxcontrib.htmlhelp (1.0.3) from
c:\python39\lib\site-packages\sphinxcontrib\htmlhelp\__init__.py
# sphinxcontrib.serializinghtml (1.1.4) from
c:\python39\lib\site-packages\sphinxcontrib\serializinghtml\__init__.py
# sphinxcontrib.qthelp (1.0.3) from
c:\python39\lib\site-packages\sphinxcontrib\qthelp\__init__.py
# alabaster (0.7.12) from
c:\python39\lib\site-packages\alabaster\__init__.py
# sphinx.ext.autodoc.preserve_defaults (1.0) from
c:\python39\lib\site-packages\sphinx\ext\autodoc\preserve_defaults.py
# sphinx.ext.autodoc.type_comment (4.0.0) from
c:\python39\lib\site-packages\sphinx\ext\autodoc\type_comment.py
# sphinx.ext.autodoc (4.0.0) from
c:\python39\lib\site-packages\sphinx\ext\autodoc\__init__.py
# sphinx.ext.todo (4.0.0) from
c:\python39\lib\site-packages\sphinx\ext\todo.py
# sphinx.ext.coverage (4.0.0) from
c:\python39\lib\site-packages\sphinx\ext\coverage.py
# sphinx.ext.viewcode (4.0.0) from
c:\python39\lib\site-packages\sphinx\ext\viewcode.py
# sphinx.ext.autosummary (4.0.0) from
c:\python39\lib\site-packages\sphinx\ext\autosummary\__init__.py
# sphinx.ext.napoleon (4.0.0) from
c:\python39\lib\site-packages\sphinx\ext\napoleon\__init__.py
Traceback (most recent call last):
File "c:\python39\lib\site-packages\sphinx\cmd\build.py", line 280, in
build_main
app.build(args.force_all, filenames)
File "c:\python39\lib\site-packages\sphinx\application.py", line 350, in
build
self.builder.build_update()
File "c:\python39\lib\site-packages\sphinx\builders\__init__.py", line
292, in build_update
self.build(to_build,
File "c:\python39\lib\site-packages\sphinx\builders\__init__.py", line
306, in build
updated_docnames = set(self.read())
File "c:\python39\lib\site-packages\sphinx\builders\__init__.py", line
413, in read
self._read_serial(docnames)
File "c:\python39\lib\site-packages\sphinx\builders\__init__.py", line
434, in _read_serial
self.read_doc(docname)
File "c:\python39\lib\site-packages\sphinx\builders\__init__.py", line
474, in read_doc
doctree = read_doc(self.app, self.env, self.env.doc2path(docname))
File "c:\python39\lib\site-packages\sphinx\io.py", line 188, in read_doc
pub.publish()
File "c:\python39\lib\site-packages\docutils\core.py", line 217, in
publish
self.document = self.reader.read(self.source, self.parser,
File "c:\python39\lib\site-packages\sphinx\io.py", line 108, in read
self.parse()
File "c:\python39\lib\site-packages\docutils\readers\__init__.py", line
77, in parse
self.parser.parse(self.input, document)
File "c:\python39\lib\site-packages\sphinx\parsers.py", line 100, in parse
self.statemachine.run(inputlines, document, inliner=self.inliner)
File "c:\python39\lib\site-packages\docutils\parsers\rst\states.py", line
170, in run
results = StateMachineWS.run(self, input_lines, input_offset,
File "c:\python39\lib\site-packages\docutils\statemachine.py", line 241,
in run
context, next_state, result = self.check_line(
File "c:\python39\lib\site-packages\docutils\statemachine.py", line 459,
in check_line
return method(match, context, next_state)
File "c:\python39\lib\site-packages\docutils\parsers\rst\states.py", line
2769, in underline
self.section(title, source, style, lineno - 1, messages)
File "c:\python39\lib\site-packages\docutils\parsers\rst\states.py", line
327, in section
self.new_subsection(title, lineno, messages)
File "c:\python39\lib\site-packages\docutils\parsers\rst\states.py", line
393, in new_subsection
newabsoffset = self.nested_parse(
File "c:\python39\lib\site-packages\docutils\parsers\rst\states.py", line
281, in nested_parse
state_machine.run(block, input_offset, memo=self.memo,
File "c:\python39\lib\site-packages\docutils\parsers\rst\states.py", line
196, in run
results = StateMachineWS.run(self, input_lines, input_offset)
File "c:\python39\lib\site-packages\docutils\statemachine.py", line 241,
in run
context, next_state, result = self.check_line(
File "c:\python39\lib\site-packages\docutils\statemachine.py", line 459,
in check_line
return method(match, context, next_state)
File "c:\python39\lib\site-packages\docutils\parsers\rst\states.py", line
2769, in underline
self.section(title, source, style, lineno - 1, messages)
File "c:\python39\lib\site-packages\docutils\parsers\rst\states.py", line
327, in section
self.new_subsection(title, lineno, messages)
File "c:\python39\lib\site-packages\docutils\parsers\rst\states.py", line
393, in new_subsection
newabsoffset = self.nested_parse(
File "c:\python39\lib\site-packages\docutils\parsers\rst\states.py", line
281, in nested_parse
state_machine.run(block, input_offset, memo=self.memo,
File "c:\python39\lib\site-packages\docutils\parsers\rst\states.py", line
196, in run
results = StateMachineWS.run(self, input_lines, input_offset)
File "c:\python39\lib\site-packages\docutils\statemachine.py", line 241,
in run
context, next_state, result = self.check_line(
File "c:\python39\lib\site-packages\docutils\statemachine.py", line 459,
in check_line
return method(match, context, next_state)
File "c:\python39\lib\site-packages\docutils\parsers\rst\states.py", line
2342, in explicit_markup
nodelist, blank_finish = self.explicit_construct(match)
File "c:\python39\lib\site-packages\docutils\parsers\rst\states.py", line
2354, in explicit_construct
return method(self, expmatch)
File "c:\python39\lib\site-packages\docutils\parsers\rst\states.py", line
2096, in directive
return self.run_directive(
File "c:\python39\lib\site-packages\docutils\parsers\rst\states.py", line
2146, in run_directive
result = directive_instance.run()
File "c:\python39\lib\site-packages\sphinx\ext\autodoc\directive.py",
line 162, in run
documenter.generate(more_content=self.content)
File "c:\python39\lib\site-packages\sphinx\ext\autodoc\__init__.py", line
964, in generate
self.document_members(all_members)
File "c:\python39\lib\site-packages\sphinx\ext\autodoc\__init__.py", line
845, in document_members
documenter.generate(
File "c:\python39\lib\site-packages\sphinx\ext\autodoc\__init__.py", line
1715, in generate
return super().generate(more_content=more_content,
File "c:\python39\lib\site-packages\sphinx\ext\autodoc\__init__.py", line
954, in generate
self.add_directive_header(sig)
File "c:\python39\lib\site-packages\sphinx\ext\autodoc\__init__.py", line
1619, in add_directive_header
bases = [restify(cls) for cls in self.object.__orig_bases__]
File "c:\python39\lib\site-packages\sphinx\ext\autodoc\__init__.py", line
1619, in <listcomp>
bases = [restify(cls) for cls in self.object.__orig_bases__]
File "c:\python39\lib\site-packages\sphinx\util\typing.py", line 126, in
restify
return _restify_py37(cls)
File "c:\python39\lib\site-packages\sphinx\util\typing.py", line 165, in
_restify_py37
text += r"\ [%s]" % ", ".join(restify(a) for a in cls.__args__)
File "c:\python39\lib\site-packages\sphinx\util\typing.py", line 165, in
<genexpr>
text += r"\ [%s]" % ", ".join(restify(a) for a in cls.__args__)
File "c:\python39\lib\site-packages\sphinx\util\typing.py", line 122, in
restify
elif cls.__module__ in ('__builtin__', 'builtins'):
AttributeError: 'str' object has no attribute '__module__'
The reason is an extensely use of typing hints, see
- https://github.com/sphinx-doc/sphinx/issues/8395
- https://github.com/sphinx-doc/sphinx/issues/9195
- https://github.com/sphinx-doc/sphinx/pull/9196
- https://github.com/sphinx-doc/sphinx/issues/9245
**What should have happened instead?**:
Build should pass
**Software version (if not a Wikimedia wiki), browser information,
screenshots, other information, etc**:
See above
TASK DETAIL
https://phabricator.wikimedia.org/T292921
EMAIL PREFERENCES
https://phabricator.wikimedia.org/settings/panel/emailpreferences/
To: Xqt
Cc: Aklapper, atagar, Xqt, pywikibot-bugs-list, Jyoo1011, JohnsonLee01, SHEKH,
Dijkstra, Khutuck, Zkhalido, Urstrulykkr, Viztor, Wenyi, Tbscho, MayS, Mdupont,
JJMC89, Dvorapa, Altostratus, Avicennasis, mys_721tx, jayvdb, Masti, Alchimista
_______________________________________________
pywikibot-bugs mailing list -- [email protected]
To unsubscribe send an email to [email protected]