Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.3.0: sphinxcontrib-asyncio does not work on Sphinx 6 #15

Open
kloczek opened this issue Feb 15, 2023 · 5 comments
Open

0.3.0: sphinxcontrib-asyncio does not work on Sphinx 6 #15

kloczek opened this issue Feb 15, 2023 · 5 comments

Comments

@kloczek
Copy link

kloczek commented Feb 15, 2023

I funt that on building aiohttp documetation sphinf fails with call trace

+ /usr/bin/sphinx-build -n -T -b man docs build/sphinx/man
Running Sphinx v6.1.3
making output directory... done
loading intersphinx inventory from http://docs.pytest.org/en/latest/objects.inv...
loading intersphinx inventory from http://docs.python.org/3/objects.inv...
loading intersphinx inventory from https://multidict.readthedocs.io/en/stable/objects.inv...
loading intersphinx inventory from https://yarl.readthedocs.io/en/stable/objects.inv...
loading intersphinx inventory from https://aiosignal.readthedocs.io/en/stable/objects.inv...
loading intersphinx inventory from https://aiohttp-jinja2.readthedocs.io/en/stable/objects.inv...
loading intersphinx inventory from https://aiohttp-remotes.readthedocs.io/en/stable/objects.inv...
loading intersphinx inventory from https://aiohttp-session.readthedocs.io/en/stable/objects.inv...
loading intersphinx inventory from https://aiohttp-demos.readthedocs.io/en/latest/objects.inv...
intersphinx inventory has moved: http://docs.python.org/3/objects.inv -> https://docs.python.org/3/objects.inv
intersphinx inventory has moved: http://docs.pytest.org/en/latest/objects.inv -> https://docs.pytest.org/en/latest/objects.inv
intersphinx inventory has moved: https://multidict.readthedocs.io/en/stable/objects.inv -> https://multidict.aio-libs.org/en/stable/objects.inv
intersphinx inventory has moved: https://yarl.readthedocs.io/en/stable/objects.inv -> https://yarl.aio-libs.org/en/stable/objects.inv
intersphinx inventory has moved: https://aiosignal.readthedocs.io/en/stable/objects.inv -> https://aiosignal.aio-libs.org/en/stable/objects.inv
building [mo]: targets for 0 po files that are out of date
writing output...
building [man]: all manpages
updating environment: [new config] 37 added, 0 changed, 0 removed
reading sources... [  5%] abc
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/sphinx/cmd/build.py", line 284, in build_main
    app.build(args.force_all, args.filenames)
  File "/usr/lib/python3.8/site-packages/sphinx/application.py", line 347, in build
    self.builder.build_update()
  File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 308, in build_update
    self.build(['__all__'], to_build)
  File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 327, in build
    updated_docnames = set(self.read())
  File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 434, in read
    self._read_serial(docnames)
  File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 455, in _read_serial
    self.read_doc(docname)
  File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 511, in read_doc
    publisher.publish()
  File "/usr/lib/python3.8/site-packages/docutils/core.py", line 224, in publish
    self.document = self.reader.read(self.source, self.parser,
  File "/usr/lib/python3.8/site-packages/sphinx/io.py", line 105, in read
    self.parse()
  File "/usr/lib/python3.8/site-packages/docutils/readers/__init__.py", line 76, in parse
    self.parser.parse(self.input, document)
  File "/usr/lib/python3.8/site-packages/sphinx/parsers.py", line 80, in parse
    self.statemachine.run(inputlines, document, inliner=self.inliner)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 169, in run
    results = StateMachineWS.run(self, input_lines, input_offset,
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 445, in check_line
    return method(match, context, next_state)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2785, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 325, in section
    self.new_subsection(title, lineno, messages)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 391, in new_subsection
    newabsoffset = self.nested_parse(
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 279, in nested_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 445, in check_line
    return method(match, context, next_state)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2785, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 325, in section
    self.new_subsection(title, lineno, messages)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 391, in new_subsection
    newabsoffset = self.nested_parse(
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 279, in nested_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 445, in check_line
    return method(match, context, next_state)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct
    return method(self, expmatch)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2104, in directive
    return self.run_directive(
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive
    result = directive_instance.run()
  File "/usr/lib/python3.8/site-packages/sphinx/domains/__init__.py", line 286, in run
    return super().run()
  File "/usr/lib/python3.8/site-packages/sphinx/directives/__init__.py", line 265, in run
    nested_parse_with_titles(self.state, self.content, contentnode)
  File "/usr/lib/python3.8/site-packages/sphinx/util/nodes.py", line 327, in nested_parse_with_titles
    return state.nested_parse(content, 0, node, match_titles=1)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 279, in nested_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 445, in check_line
    return method(match, context, next_state)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct
    return method(self, expmatch)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2104, in directive
    return self.run_directive(
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive
    result = directive_instance.run()
  File "/usr/lib/python3.8/site-packages/sphinx/domains/__init__.py", line 286, in run
    return super().run()
  File "/usr/lib/python3.8/site-packages/sphinxcontrib/asyncio.py", line 65, in run
    return super(PyCoroutineMethod, self).run()
  File "/usr/lib/python3.8/site-packages/sphinx/directives/__init__.py", line 236, in run
    name = self.handle_signature(sig, signode)
  File "/usr/lib/python3.8/site-packages/sphinx/domains/python.py", line 540, in handle_signature
    raise TypeError(
TypeError: Python directive method get_signature_prefix() must return a list of nodes. Return value was 'coroutine '.

Exception occurred:
  File "/usr/lib/python3.8/site-packages/sphinx/domains/python.py", line 540, in handle_signature
    raise TypeError(
TypeError: Python directive method get_signature_prefix() must return a list of nodes. Return value was 'coroutine '.
The full traceback has been saved in /tmp/sphinx-err-00_3cgqr.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!

# Traceback:
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/sphinx/cmd/build.py", line 284, in build_main
    app.build(args.force_all, args.filenames)
  File "/usr/lib/python3.8/site-packages/sphinx/application.py", line 347, in build
    self.builder.build_update()
  File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 308, in build_update
    self.build(['__all__'], to_build)
  File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 327, in build
    updated_docnames = set(self.read())
  File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 434, in read
    self._read_serial(docnames)
  File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 455, in _read_serial
    self.read_doc(docname)
  File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 511, in read_doc
    publisher.publish()
  File "/usr/lib/python3.8/site-packages/docutils/core.py", line 224, in publish
    self.document = self.reader.read(self.source, self.parser,
  File "/usr/lib/python3.8/site-packages/sphinx/io.py", line 105, in read
    self.parse()
  File "/usr/lib/python3.8/site-packages/docutils/readers/__init__.py", line 76, in parse
    self.parser.parse(self.input, document)
  File "/usr/lib/python3.8/site-packages/sphinx/parsers.py", line 80, in parse
    self.statemachine.run(inputlines, document, inliner=self.inliner)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 169, in run
    results = StateMachineWS.run(self, input_lines, input_offset,
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 445, in check_line
    return method(match, context, next_state)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2785, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 325, in section
    self.new_subsection(title, lineno, messages)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 391, in new_subsection
    newabsoffset = self.nested_parse(
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 279, in nested_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 445, in check_line
    return method(match, context, next_state)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2785, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 325, in section
    self.new_subsection(title, lineno, messages)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 391, in new_subsection
    newabsoffset = self.nested_parse(
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 279, in nested_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 445, in check_line
    return method(match, context, next_state)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct
    return method(self, expmatch)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2104, in directive
    return self.run_directive(
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive
    result = directive_instance.run()
  File "/usr/lib/python3.8/site-packages/sphinx/domains/__init__.py", line 286, in run
    return super().run()
  File "/usr/lib/python3.8/site-packages/sphinx/directives/__init__.py", line 265, in run
    nested_parse_with_titles(self.state, self.content, contentnode)
  File "/usr/lib/python3.8/site-packages/sphinx/util/nodes.py", line 327, in nested_parse_with_titles
    return state.nested_parse(content, 0, node, match_titles=1)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 279, in nested_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 445, in check_line
    return method(match, context, next_state)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct
    return method(self, expmatch)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2104, in directive
    return self.run_directive(
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive
    result = directive_instance.run()
  File "/usr/lib/python3.8/site-packages/sphinx/domains/__init__.py", line 286, in run
    return super().run()
  File "/usr/lib/python3.8/site-packages/sphinxcontrib/asyncio.py", line 65, in run
    return super(PyCoroutineMethod, self).run()
  File "/usr/lib/python3.8/site-packages/sphinx/directives/__init__.py", line 236, in run
    name = self.handle_signature(sig, signode)
  File "/usr/lib/python3.8/site-packages/sphinx/domains/python.py", line 540, in handle_signature
    raise TypeError(
TypeError: Python directive method get_signature_prefix() must return a list of nodes. Return value was 'coroutine '.

Here is list of installed modules in build env

Package                       Version
----------------------------- -----------------
aiosignal                     1.3.1
alabaster                     0.7.13
appdirs                       1.4.4
async-generator               1.10
async-timeout                 4.0.2
attrs                         22.2.0
Babel                         2.11.0
Brotli                        1.0.9
build                         0.9.0
charset-normalizer            3.0.1
coverage                      7.1.0
cssselect                     1.1.0
Cython                        0.29.33
distro                        1.8.0
docutils                      0.19
exceptiongroup                1.0.0
extras                        1.0.0
fixtures                      4.0.0
freezegun                     1.2.1
frozenlist                    1.3.3
gpg                           1.18.0-unknown
idna                          3.4
imagesize                     1.4.1
importlib-metadata            6.0.0
iniconfig                     2.0.0
Jinja2                        3.1.2
libcomps                      0.1.19
lxml                          4.9.2
Markdown                      3.4.1
MarkupSafe                    2.1.2
multidict                     6.0.4
numpy                         1.24.2
olefile                       0.46
packaging                     23.0
pbr                           5.9.0
pep517                        0.13.0
Pillow                        9.4.0
pip                           22.3.1
pluggy                        1.0.0
Pygments                      2.14.0
PyGObject                     3.43.1.dev0
pytest                        7.2.1
pytest-cov                    4.0.0
pytest-mock                   3.10.0
python-dateutil               2.8.2
pytz                          2022.4
re-assert                     1.1.0
regex                         2022.10.31
requests                      2.28.2
rpm                           4.17.0
scour                         0.38.2
setuptools                    65.6.3
six                           1.16.0
smartypants                   2.0.1
snowballstemmer               2.2.0
Sphinx                        6.1.3
sphinxcontrib-applehelp       1.0.2.dev20221204
sphinxcontrib-asyncio         0.3.0
sphinxcontrib-devhelp         1.0.2.dev20230202
sphinxcontrib-htmlhelp        2.0.0
sphinxcontrib-jsmath          1.0.1.dev20230128
sphinxcontrib-qthelp          1.0.3.dev20230128
sphinxcontrib-serializinghtml 1.1.5
testtools                     2.5.0
toml                          0.10.2
tomli                         2.0.1
typing_extensions             4.4.0
typogrify                     2.0.7
urllib3                       1.26.12
wheel                         0.38.4
yarl                          1.8.2
zipp                          3.13.0
@musicinmybrain
Copy link

sphinx-doc/sphinx#9832

@kloczek
Copy link
Author

kloczek commented Mar 21, 2023

Hmm .. that ticket from 2021 is about old sphinx version .. 🤔

@hynek
Copy link

hynek commented Apr 4, 2023

The title should be "sphinxcontrib-asyncio does not work on Sphinx 6".

@kloczek kloczek changed the title 0.3.0: sphinx fails on generate documentation in sphinxcontrib-asyncio code 0.3.0: sphinxcontrib-asyncio does not work on Sphinx 6 Apr 4, 2023
@kloczek
Copy link
Author

kloczek commented Apr 4, 2023

done

Nothing4You added a commit to Nothing4You/aiomysql that referenced this issue Jun 11, 2023
- use Python 3.11 for RTD build
- modernize build scripts by newly generating them with Sphinx 7 quickstart
- remove sphinxcontrib.asyncio extension, as it doesn't support Sphinx 6+
  aio-libs/sphinxcontrib-asyncio#15
- add sphinx_copybutton extension to make it easy to copy code snippets
- remove unused and broken (redirected to 2.0) SQLAlchemy intersphinx mapping
- switch to furo theme, which features a number of improvements, including
  Sphinx 7 compatibility
- fix examples/example_sa.py include in docs after it was renamed in
  958fd0b
- fail RTD build if docs build generates warnings
Nothing4You added a commit to Nothing4You/aiomysql that referenced this issue Jun 11, 2023
- use Python 3.11 for RTD build
- modernize build scripts by newly generating them with Sphinx 7 quickstart
- remove sphinxcontrib.asyncio extension, as it doesn't support Sphinx 6+
  aio-libs/sphinxcontrib-asyncio#15
- add sphinx_copybutton extension to make it easy to copy code snippets
- remove unused and broken (redirected to 2.0) SQLAlchemy intersphinx mapping
- switch to furo theme, which features a number of improvements, including
  Sphinx 7 compatibility
- fix examples/example_sa.py include in docs after it was renamed in
  958fd0b
- fail RTD build if docs build generates warnings
@parmentelat
Copy link

for what it's worth, it appears that sphinx core now has native support for asyncio
I was running into the same issue, and the fix for me has been to simply remove this extension from conf.py

musicinmybrain added a commit to musicinmybrain/aiosignal that referenced this issue Nov 15, 2023
It is not compatible with current versions of Sphinx
(aio-libs/sphinxcontrib-asyncio#15), and none
of the extra syntax documented in
https://sphinxcontrib-asyncio.readthedocs.io/en/latest/ appears to be
used anyway.
musicinmybrain added a commit to musicinmybrain/aiosignal that referenced this issue Nov 15, 2023
It is not compatible with current versions of Sphinx
(aio-libs/sphinxcontrib-asyncio#15), and none
of the extra syntax documented in
https://sphinxcontrib-asyncio.readthedocs.io/en/latest/ appears to be
used anyway.
musicinmybrain added a commit to musicinmybrain/aiosignal that referenced this issue Nov 15, 2023
It is not compatible with current versions of Sphinx
(aio-libs/sphinxcontrib-asyncio#15), and none
of the extra syntax documented in
https://sphinxcontrib-asyncio.readthedocs.io/en/latest/ appears to be
used anyway.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants