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

AttributeError in Napoleon extension with Sphinx 2.0.0 #6246

Closed
andy-maier opened this issue Apr 3, 2019 · 1 comment
Closed

AttributeError in Napoleon extension with Sphinx 2.0.0 #6246

andy-maier opened this issue Apr 3, 2019 · 1 comment

Comments

@andy-maier
Copy link

andy-maier commented Apr 3, 2019

Describe the bug

Building the documentation for one of our projects with Sphinx 2.0.0 raises:

AttributeError: 'NoneType' object has no attribute 'groupdict'

in the Napoleon extension of Sphinx.

Here are the details:

(zhmc37) $ make builddoc
rm -fv build_doc/html/docs/index.html
build_doc/html/docs/index.html
sphinx-build -b html -v -d build_doc/doctrees -c docs . build_doc/html
Running Sphinx v2.0.0
conf.py: pwd: /Users/maiera/Projects/zhmcclient/repos/python-zhmcclient/docs
conf.py: zhmcclient version according to pbr: 0.22.1.dev6
conf.py: Last 5 commits:
48c1ece (HEAD -> master, origin/master, origin/HEAD) Added end2end testcases for CPCs.
cbbe216 Added support for faked HMCs to end2end tests
5ecf72d Added support for end2end tests using HMC definition file and fixtures
d18d608 Fixed list_storage_groups.py example
3f01e78 Added support for zeroize single crypto domain
conf.py: End of commits
loading pickled environment... failed
failed: 'str' object has no attribute '__dict__'
loading intersphinx inventory from https://docs.python.org/2/objects.inv...
loading intersphinx inventory from https://docs.python.org/2/objects.inv...
loading intersphinx inventory from https://docs.python.org/3/objects.inv...
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 11 source files that are out of date
updating environment: 11 added, 0 changed, 0 removed
reading sources... [  9%] docs/appendix

Traceback (most recent call last):
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/cmd/build.py", line 284, in build_main
    app.build(args.force_all, filenames)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/application.py", line 338, in build
    self.builder.build_update()
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 326, in build_update
    len(to_build))
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 339, in build
    updated_docnames = set(self.read())
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 445, in read
    self._read_serial(docnames)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 467, in _read_serial
    self.read_doc(docname)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 511, in read_doc
    doctree = read_doc(self.app, self.env, self.env.doc2path(docname))
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/io.py", line 323, in read_doc
    pub.publish()
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/core.py", line 217, in publish
    self.settings)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/io.py", line 116, in read
    self.parse()
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/readers/__init__.py", line 78, in parse
    self.parser.parse(self.input, document)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/parsers.py", line 94, in parse
    self.statemachine.run(inputlines, document, inliner=self.inliner)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 171, in run
    input_source=document['source'])
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 2753, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 327, in section
    self.new_subsection(title, lineno, messages)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 395, in new_subsection
    node=section_node, match_titles=True)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 282, in nested_parse
    node=node, match_titles=match_titles)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 196, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 2753, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 327, in section
    self.new_subsection(title, lineno, messages)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 395, in new_subsection
    node=section_node, match_titles=True)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 282, in nested_parse
    node=node, match_titles=match_titles)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 196, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 2328, in explicit_markup
    self.explicit_list(blank_finish)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 2358, in explicit_list
    match_titles=self.state_machine.match_titles)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 319, in nested_list_parse
    node=node, match_titles=match_titles)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 196, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 2631, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 2338, in explicit_construct
    return method(self, expmatch)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 2081, in directive
    directive_class, match, type_name, option_presets)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 2130, in run_directive
    result = directive_instance.run()
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/ext/autodoc/directive.py", line 135, in run
    documenter.generate(more_content=self.content)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 1204, in generate
    all_members=all_members)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 751, in generate
    self.document_members(all_members)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 1192, in document_members
    super().document_members(all_members)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 672, in document_members
    check_module=members_check_module and not isattr)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 748, in generate
    self.add_content(more_content)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 486, in add_content
    for i, line in enumerate(self.process_doc(docstrings)):
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 454, in process_doc
    self.options, docstringlines)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/application.py", line 441, in emit
    return self.events.emit(event, self, *args)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/events.py", line 76, in emit
    results.append(callback(*args))
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/ext/napoleon/__init__.py", line 381, in _process_docstring
    obj, options)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/ext/napoleon/docstring.py", line 176, in __init__
    self._parse()
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/ext/napoleon/docstring.py", line 578, in _parse
    lines = self._sections[section.lower()](section)
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/ext/napoleon/docstring.py", line 703, in _parse_raises_section
    m = self._name_rgx.match(_type).groupdict()
AttributeError: 'NoneType' object has no attribute 'groupdict'

Exception occurred:
  File "/Users/maiera/virtualenvs/zhmc37/lib/python3.7/site-packages/sphinx/ext/napoleon/docstring.py", line 703, in _parse_raises_section
    m = self._name_rgx.match(_type).groupdict()
AttributeError: 'NoneType' object has no attribute 'groupdict'
The full traceback has been saved in /var/folders/lh/v0_07k9d7dbfqdytfzzxks3r0000gn/T/sphinx-err-z2hevlz7.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!

This is on MacOS, using a virtualenv with Python 3.7.2, and the following Sphinx-related packages:

$ pip list |grep -i sphinx
Sphinx                        2.0.0   
sphinx-git                    10.1.1  
sphinxcontrib-applehelp       1.0.1   
sphinxcontrib-devhelp         1.0.1   
sphinxcontrib-htmlhelp        1.0.1   
sphinxcontrib-jsmath          1.0.1   
sphinxcontrib-qthelp          1.0.2   
sphinxcontrib-serializinghtml 1.1.1   

To Reproduce

Steps to reproduce the behavior, using a Python 3.7 virtual environment:

$ git clone https://github.com/zhmcclient/python-zhmcclient
$ cd python-zhmcclient
$ make develop
$ make builddoc

Expected behavior

Should work as before (e.g. with Sphinx 1.8.5).

Your project
https://github.com/zhmcclient/python-zhmcclient

Screenshots
None

Environment info

  • OS: macOS 10.13.6
  • Python version: 3.7.2
  • Sphinx version: 2.0.0
  • Sphinx extensions:
    • sphinx.ext.autodoc
    • sphinx.ext.napoleon
    • sphinx.ext.autosummary
    • sphinx.ext.intersphinx
    • sphinx.ext.extlinks
    • sphinx.ext.todo
    • sphinx.ext.coverage
    • sphinx.ext.viewcode
    • sphinx.ext.ifconfig
    • sphinx_git
  • Extra tools: None

Additional context

None

andy-maier added a commit to zhmcclient/python-zhmcclient that referenced this issue Apr 3, 2019
Details:

- Sphinx 2.0.0 requires Python >=3.5, so the Sphinx requirement in
  dev-requirements.txt now limits Sphinx to <2.0.0 for Python <3.5.

- Sphinx 2.0.0 fails (e.g. Python 3.7) with an AttributeError in
  the Napoleon extension.
  Issue sphinx-doc/sphinx#6246 has been
  opened. This change mitigates that failure by pinning Sphinx to
  <2.0.0 also for Python >=3.5.

Signed-off-by: Andreas Maier <maiera@de.ibm.com>
andy-maier added a commit to zhmcclient/python-zhmcclient that referenced this issue Apr 3, 2019
Details:

- Sphinx 2.0.0 requires Python >=3.5, so the Sphinx requirement in
  dev-requirements.txt now limits Sphinx to <2.0.0 for Python <3.5.

- Sphinx 2.0.0 fails (e.g. Python 3.7) with an AttributeError in
  the Napoleon extension.
  Issue sphinx-doc/sphinx#6246 has been
  opened. This change mitigates that failure by pinning Sphinx to
  <2.0.0 also for Python >=3.5.

Signed-off-by: Andreas Maier <maiera@de.ibm.com>
@tk0miya
Copy link
Member

tk0miya commented Apr 4, 2019

Thank you for reporting.
It was fixed by #6237.

I'll ship bugfix release soon. Please wait a moment.

@tk0miya tk0miya closed this as completed Apr 4, 2019
@tk0miya tk0miya added this to the 2.0.1 milestone Apr 4, 2019
andy-maier added a commit to pywbem/pywbem that referenced this issue Apr 4, 2019
Details:

- Sphinx 2.0.0 requires Python >=3.5, so the Sphinx requirement in
  dev-requirements.txt now limits Sphinx to <2.0.0 for Python <3.5.

- Sphinx 2.0.0 fails (e.g. Python 3.7) with an AttributeError in
  the Napoleon extension.
  Issue sphinx-doc/sphinx#6246 has been
  opened. This change mitigates that failure by pinning Sphinx to
  <2.0.0 also for Python >=3.5.

Signed-off-by: Andreas Maier <maiera@de.ibm.com>
andy-maier added a commit to pywbem/pywbem that referenced this issue Apr 4, 2019
Details:

- Sphinx 2.0.0 requires Python >=3.5, so the Sphinx requirement in
  dev-requirements.txt now limits Sphinx to <2.0.0 for Python <3.5.

- Sphinx 2.0.0 fails (e.g. Python 3.7) with an AttributeError in
  the Napoleon extension.
  Issue sphinx-doc/sphinx#6246 has been
  opened. This change mitigates that failure by pinning Sphinx to
  <2.0.0 also for Python >=3.5.

Signed-off-by: Andreas Maier <maiera@de.ibm.com>
andy-maier added a commit to pywbem/pywbem that referenced this issue Apr 4, 2019
Details:

- Sphinx 2.0.0 requires Python >=3.5, so the Sphinx requirement in
  dev-requirements.txt now limits Sphinx to <2.0.0 for Python <3.5.

- Sphinx 2.0.0 fails (e.g. Python 3.7) with an AttributeError in
  the Napoleon extension.
  Issue sphinx-doc/sphinx#6246 has been
  opened. This change mitigates that failure by pinning Sphinx to
  <2.0.0 also for Python >=3.5.

Signed-off-by: Andreas Maier <maiera@de.ibm.com>
andy-maier added a commit to pywbem/pywbem that referenced this issue Apr 4, 2019
Details:

- Sphinx 2.0.0 requires Python >=3.5, so the Sphinx requirement in
  dev-requirements.txt now limits Sphinx to <2.0.0 for Python <3.5.

- Sphinx 2.0.0 fails (e.g. Python 3.7) with an AttributeError in
  the Napoleon extension.
  Issue sphinx-doc/sphinx#6246 has been
  opened. This change mitigates that failure by pinning Sphinx to
  <2.0.0 also for Python >=3.5.

Signed-off-by: Andreas Maier <maiera@de.ibm.com>
andy-maier added a commit to pywbem/pywbem that referenced this issue Apr 5, 2019
Details:

- Sphinx 2.0.0 requires Python >=3.5, so the Sphinx requirement in
  dev-requirements.txt now limits Sphinx to <2.0.0 for Python <3.5.

- Sphinx 2.0.0 fails (e.g. Python 3.7) with an AttributeError in
  the Napoleon extension.
  Issue sphinx-doc/sphinx#6246 has been
  opened. This change mitigates that failure by pinning Sphinx to
  <2.0.0 also for Python >=3.5.

Signed-off-by: Andreas Maier <maiera@de.ibm.com>
andy-maier added a commit to pywbem/pywbem that referenced this issue Apr 5, 2019
Details:

- Sphinx 2.0.0 requires Python >=3.5, so the Sphinx requirement in
  dev-requirements.txt now limits Sphinx to <2.0.0 for Python <3.5.

- Sphinx 2.0.0 fails (e.g. Python 3.7) with an AttributeError in
  the Napoleon extension.
  Issue sphinx-doc/sphinx#6246 has been
  opened. This change mitigates that failure by pinning Sphinx to
  <2.0.0 also for Python >=3.5.

Signed-off-by: Andreas Maier <maiera@de.ibm.com>
andy-maier added a commit to pywbem/pywbem that referenced this issue Apr 5, 2019
Details:

- Sphinx 2.0.0 requires Python >=3.5, so the Sphinx requirement in
  dev-requirements.txt now limits Sphinx to <2.0.0 for Python <3.5.

- Sphinx 2.0.0 fails (e.g. Python 3.7) with an AttributeError in
  the Napoleon extension.
  Issue sphinx-doc/sphinx#6246 has been
  opened. This change mitigates that failure by pinning Sphinx to
  <2.0.0 also for Python >=3.5.

Signed-off-by: Andreas Maier <maiera@de.ibm.com>
andy-maier added a commit to pywbem/pywbem that referenced this issue Apr 12, 2019
Details:

- Sphinx 2.0.0 requires Python >=3.5, so the Sphinx requirement in
  dev-requirements.txt now limits Sphinx to <2.0.0 for Python <3.5.

- Sphinx 2.0.0 fails (e.g. Python 3.7) with an AttributeError in
  the Napoleon extension.
  Issue sphinx-doc/sphinx#6246 has been
  opened. This change mitigates that failure by pinning Sphinx to
  <2.0.0 also for Python >=3.5.

Signed-off-by: Andreas Maier <maiera@de.ibm.com>
andy-maier added a commit to pywbem/pywbem that referenced this issue Apr 12, 2019
Details:

- Sphinx 2.0.0 requires Python >=3.5, so the Sphinx requirement in
  dev-requirements.txt now limits Sphinx to <2.0.0 for Python <3.5.

- Sphinx 2.0.0 fails (e.g. Python 3.7) with an AttributeError in
  the Napoleon extension.
  Issue sphinx-doc/sphinx#6246 has been
  opened. This change mitigates that failure by pinning Sphinx to
  <2.0.0 also for Python >=3.5.

Signed-off-by: Andreas Maier <maiera@de.ibm.com>
andy-maier added a commit to pywbem/pywbem that referenced this issue Apr 13, 2019
Details:

- Sphinx 2.0.0 requires Python >=3.5, so the Sphinx requirement in
  dev-requirements.txt now limits Sphinx to <2.0.0 for Python <3.5.

- Sphinx 2.0.0 fails (e.g. Python 3.7) with an AttributeError in
  the Napoleon extension.
  Issue sphinx-doc/sphinx#6246 has been
  opened. This change mitigates that failure by pinning Sphinx to
  <2.0.0 also for Python >=3.5.

Signed-off-by: Andreas Maier <maiera@de.ibm.com>
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 5, 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

2 participants