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

sphinx-build executes code in Python modules with 3.0.2 #7532

Closed
pgjones opened this issue Apr 22, 2020 · 3 comments
Closed

sphinx-build executes code in Python modules with 3.0.2 #7532

pgjones opened this issue Apr 22, 2020 · 3 comments

Comments

@pgjones
Copy link

pgjones commented Apr 22, 2020

Describe the bug
Running this command with 3.0.2 executes some of the Quart code that then crashes, with 3.0.1 and previous everything works fine.

To Reproduce
Steps to reproduce the behavior:

$ git clone https://github.com/pgjones/quart
$ cd quart
$ pip install tox
# Edit tox.ini to change the sphinx version pin
$ tox -e docs

Expected behavior
Not execute the quart code.

pgjones added a commit to pallets/quart that referenced this issue Apr 22, 2020
pytest seems to be having issues following the maintainer
issues. Sphinx has a strange bug
sphinx-doc/sphinx#7532.
@tk0miya
Copy link
Member

tk0miya commented Apr 22, 2020

Could you paste a crash log here please? It would be helpful for us.

@tk0miya tk0miya added this to the 3.0.3 milestone Apr 22, 2020
@anlambert
Copy link

I observe the same issue since the upgrade to sphinx 3.0.2.

Below is the crash log:

# Sphinx version: 3.0.2
# Python version: 3.7.3 (CPython)
# Docutils version: 0.15.2 release
# Jinja2 version: 2.10.3
# Last messages:
#   `sphinxcontrib_images_lightbox2.lightbox2:LightBox2`
#   construction en cours [mo]:cibles pour les fichiers po 0 qui sont périmées
#   construction [html]:cibles pour les fichiers sources 605 qui sont périmées
#   mise-à-jour de l'environnement :
#   [nouvelle configuration]
#   605 ajouté, 0 modifié, 0 supprimé
#   lecture des sources... [  0%] apidoc/modules
#   lecture des sources... [  0%] apidoc/swh
#   lecture des sources... [  0%] apidoc/swh.core
#   lecture des sources... [  0%] apidoc/swh.core.api
# Loaded extensions:
#   sphinx.ext.mathjax (3.0.2) from /home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/ext/mathjax.py
#   sphinxcontrib.applehelp (1.0.1) from /home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinxcontrib/applehelp/__init__.py
#   sphinxcontrib.devhelp (1.0.1) from /home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinxcontrib/devhelp/__init__.py
#   sphinxcontrib.htmlhelp (1.0.2) from /home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinxcontrib/htmlhelp/__init__.py
#   sphinxcontrib.serializinghtml (1.1.3) from /home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinxcontrib/serializinghtml/__init__.py
#   sphinxcontrib.qthelp (1.0.2) from /home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinxcontrib/qthelp/__init__.py
#   alabaster (0.7.12) from /home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/alabaster/__init__.py
#   sphinx.ext.autodoc.type_comment (3.0.2) from /home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/ext/autodoc/type_comment.py
#   sphinx.ext.autodoc (3.0.2) from /home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py
#   sphinx.ext.napoleon (3.0.2) from /home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/ext/napoleon/__init__.py
#   sphinxcontrib.httpdomain (unknown version) from /home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinxcontrib/httpdomain.py
#   sphinx.ext.extlinks (3.0.2) from /home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/ext/extlinks.py
#   sphinxcontrib.images (3.0.2) from /home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinxcontrib/images.py
#   sphinxcontrib.programoutput (unknown version) from /home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinxcontrib/programoutput/__init__.py
#   sphinx.ext.viewcode (3.0.2) from /home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/ext/viewcode.py
#   sphinx_tabs.tabs (unknown version) from /home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx_tabs/tabs.py
#   sphinx_rtd_theme (unknown version) from /home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx_rtd_theme/__init__.py
#   sphinx.ext.graphviz (3.0.2) from /home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/ext/graphviz.py
#   sphinx_click.ext (unknown version) from /home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx_click/ext.py
Traceback (most recent call last):
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/cmd/build.py", line 280, in build_main
    app.build(args.force_all, filenames)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/application.py", line 348, in build
    self.builder.build_update()
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 299, in build_update
    len(to_build))
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 311, in build
    updated_docnames = set(self.read())
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 418, in read
    self._read_serial(docnames)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 439, in _read_serial
    self.read_doc(docname)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 479, in read_doc
    doctree = read_doc(self.app, self.env, self.env.doc2path(docname))
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/io.py", line 221, in read_doc
    pub.publish()
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/core.py", line 217, in publish
    self.settings)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/io.py", line 126, in read
    self.parse()
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/readers/__init__.py", line 77, in parse
    self.parser.parse(self.input, document)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/parsers.py", line 102, in parse
    self.statemachine.run(inputlines, document, inliner=self.inliner)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 171, in run
    input_source=document['source'])
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 2771, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 327, in section
    self.new_subsection(title, lineno, messages)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 395, in new_subsection
    node=section_node, match_titles=True)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 282, in nested_parse
    node=node, match_titles=match_titles)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 196, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 2771, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 327, in section
    self.new_subsection(title, lineno, messages)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 395, in new_subsection
    node=section_node, match_titles=True)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 282, in nested_parse
    node=node, match_titles=match_titles)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 196, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 2344, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 2356, in explicit_construct
    return method(self, expmatch)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 2099, in directive
    directive_class, match, type_name, option_presets)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 2148, in run_directive
    result = directive_instance.run()
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/ext/autodoc/directive.py", line 146, in run
    documenter.generate(more_content=self.content)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 775, in generate
    self.document_members(all_members)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 665, in document_members
    for (mname, member, isattr) in self.filter_members(members, want_all):
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 581, in filter_members
    if getattr(member, '__sphinx_mock__', False):
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/werkzeug/local.py", line 348, in __getattr__
    return getattr(self._get_current_object(), name)
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/werkzeug/local.py", line 307, in _get_current_object
    return self.__local()
  File "/home/antoine/.virtualenvs/swh/lib/python3.7/site-packages/flask/globals.py", line 38, in _lookup_req_object
    raise RuntimeError(_request_ctx_err_msg)
RuntimeError: Working outside of request context.

This typically means that you attempted to use functionality that needed
an active HTTP request.  Consult the documentation on testing for
information about how to avoid this problem.

It seems the regression was introduced in 841f1c7.

@tk0miya
Copy link
Member

tk0miya commented Apr 26, 2020

@anlambert Thank you for comment. It seems it was already fixed (see: #7516).
Thanks,

@tk0miya tk0miya closed this as completed Apr 26, 2020
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jul 25, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants