Sphinx 7.4.6: autosummary: Failed to import module
Is there any chance this change would have introduced a warning by mistake? We use our own module.rst and class.rst templates, but they look awfully similar to the ones here.
We're seeing:
Warning, treated as error: [autosummary] failed to import foo. Possible hints: * ModuleNotFoundError: No module named 'foo' * KeyError: 'foo' * ValueError: not enough values to unpack (expected 2, got 1)good chance this is user-error, but thought I would ask (it does work just before 7.4.6)!
Originally posted by @mwalsh161 in https://github.com/sphinx-doc/sphinx/issues/12609#issuecomment-2244089627
Hi Michael (@mwalsh161), thanks for writing. I haven't had any further reports of issues, so my first instinct would be to suspect the templates. The ValueError re unpacking also looks interesting.
Are you able to share either your project or a minimal reporoducer so that we might investigate?
Best, Adam
I am also seeing this issue, I believe there was a change between versions 7.3.7 and 7.4.6, which causes documentation table of contents not to be generated.
I get similar warnings e.g.
WARNING: [autosummary] failed to import i03.
Possible hints:
* ValueError: not enough values to unpack (expected 2, got 1)
* KeyError: 'i03'
* ModuleNotFoundError: No module named 'i03'
Compare the following two github builds:
version 7.3.7
https://github.com/DiamondLightSource/dodal/actions/runs/9891318307/job/27321488418 which builds correctly and generates api documentation: https://diamondlightsource.github.io/dodal/1.29.3/user/reference/generated/dodal.beamlines.html
version 7.4.6
https://github.com/DiamondLightSource/dodal/actions/runs/10009596477/job/27668842307 which builds documentation that no longer includes the subpackages https://diamondlightsource.github.io/dodal/1.29.4/user/reference/generated/dodal.beamlines.html
I believe this may be related to change #12609 as the generated sources no longer appear to have prefixes e.g.
.. autosummary::
:toctree:
:recursive:
i03
i04
i04_1
i20_1
i22
i23
i24
p38
p45
Also xref https://github.com/scikit-image/scikit-image/pull/7297#issuecomment-2245125314 by @mkcor:
Thanks, @AA-Turner, this install worked. Unfortunately, I'm getting the same error as with 7.4.5 and 7.4.6, i.e.,
Warning, treated as error: Summarised items should not include the current module. Replace 'skimage.color' with 'color'. [autosummary.import_cycle] make: *** [Makefile:50: html] Error 2
Also seeing the issue with Sphinx 7.4.6 on building docs for https://github.com/NVIDIA/TensorRT-Model-Optimizer
Do I need to fix these 2 files?
- https://github.com/NVIDIA/TensorRT-Model-Optimizer/blob/main/docs/source/_templates/autosummary/module.rst
- https://github.com/NVIDIA/TensorRT-Model-Optimizer/blob/main/docs/source/reference/1_modelopt_api.rst
Apologies for the delayed response (pinning sphinx was fine for quite some time so we just revisited updating again after the major release). Sphinx 8.2.6 still has this regression.
Whatever change occurred seems to no longer allow autosummary to come before automodule in the module.rst template (I noticed @kevalmorabia97 has the same ordering which is likely no coincidence).
This was our only reason for overriding the template in the first place.
.. autosummary::
:toctree:
:recursive:
{% for item in modules %}
~{{ item }}
{%- endfor %}
{% endif %}
{%- endblock %}
.. automodule:: {{ fullname }}
Based on variable names (not running or patching locally), these lines seem related to the bug: https://github.com/sphinx-doc/sphinx/compare/v7.4.5...v7.4.6#diff-b9feb1a9197bb7ede09e199a2f59dc83f40cc286ff87413496235df48bd05c5eL333-L336
Looks like github isn't the best at rendering which lines were highlighted in above link! They are sphinx/ext/autosummary/generate.py, Lins 333-336 (maybe linking in the commit is easier: https://github.com/sphinx-doc/sphinx/commit/e61f56950d624f5fa540a1c8d4e3baedd2889bd0#diff-b9feb1a9197bb7ede09e199a2f59dc83f40cc286ff87413496235df48bd05c5eL333-L477)
We are also seeing this warning in Sphinx 8.2.3, when trying to get rid of the warning from https://github.com/sphinx-doc/sphinx/issues/12589
WARNING: Summarised items should not include the current module. Replace 'cylc.flow.main_loop.auto_restart' with 'auto_restart'. [autosummary.import_cycle]
We have
Main Loop Plugins
=================
.. automodule:: cylc.flow.main_loop
with a template
{{ fullname | escape | underline }}
.. automodule:: {{ fullname }}
:members: {{ functions | join(', ') }}
{% block functions %}
Python API
----------
{% endblock %}
I tried
-.. automodule:: {{ fullname }}
+.. automodule:: {{ name }}
:members: {{ functions | join(', ') }}
However this results in
WARNING: autodoc: failed to import module 'auto_restart'; the following exception was raised: ['Traceback (most recent call last):\n', ' File ".../lib/python3.13/site-packages/sphinx/ext/autodoc/importer.py", line 269, in import_object\n module = import_module(modname, try_reload=True)\n', ' File ".../lib/python3.13/site-packages/sphinx/ext/autodoc/importer.py", line 172, in import_module\n raise ModuleNotFoundError(msg, name=modname) # NoQA: TRY301\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', "ModuleNotFoundError: No module named 'auto_restart'\n"] [autodoc.import_object]
In addition to the original warning!
We ran into the same error as in the OP breaking the build of the Spyder API docs when trying to customize the template to put the modules block first, and can confirm we can repro it in Sphinx 8.2.3 (current stable as of this writing) with the default template by simply moving the modules block with the autosummary directive to above the automodule directive.
As it seems clearly desirable that a summary table of a module's immediate children belongs near the top where it is easily accessible rather than buried all the way at the bottom of the module's content (not sure why the default template has it seemingly backwards to begin with), this is a pretty important issue for us.
Given the error message doesn't appear to give much obvious insight on what's going on here, I'm not really sure where to start debugging this, but @AA-Turner if you are able to point me in the right direction, I might be able to take a crack at it.
Can you paste the full error with --show-traceback on Sphinx 9.0.0rc1?
A
@AA-Turner I had to do a bit of hackery to get Sphinx 9 to work with that project (as it is partially MyST-based, which doesn't officially support Sphinx 9 yet), but running 9.0.0rc1 with --show-traceback doesn't apparently produce a traceback, just the same messages as before. I also tried with and without -W, -E, -a, and --keep-going but it made no different to showing the traceback, and confirmed autodoc_warningiserror is True; I didn't see any other autodoc or autosummary settings that seemed relevant to not showing the traceback. Am I missing something here?
Full output
$ nox -s clean
nox > Running session clean
Removing generated directory 'D:/Repos/Spyder/spyder-api-docs/docs/_build'
Removing generated directory 'D:/Repos/Spyder/spyder-api-docs/docs/_autosummary'
nox > Session clean was successful.
$ nox -s build -- --show-traceback -t autodoc
nox > Running session build
nox > Session build was successful.
nox > Running session _execute
nox > Reusing existing virtual environment at .nox\_execute.
nox > python -I -m sphinx -b html -W --keep-going --show-traceback -t autodoc -- 'D:\Repos\Spyder\spyder-api-docs\docs' 'D:\Repos\Spyder\spyder-api-docs\docs\_build\html'
Running Sphinx v9.0.0rc1
loading translations [en]... done
making output directory... done
[autosummary] generating autosummary for: index.rst, plugin_development.rst, reference.rst
[autosummary] generating autosummary for: D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.rst
WARNING: [autosummary] failed to import asyncdispatcher.
Possible hints:
* ModuleNotFoundError: No module named 'asyncdispatcher'
* KeyError: 'asyncdispatcher'
* ValueError: not enough values to unpack (expected 2, got 1)
WARNING: [autosummary] failed to import config.
Possible hints:
* KeyError: 'config'
* ModuleNotFoundError: No module named 'config'
* ValueError: not enough values to unpack (expected 2, got 1)
# Etc for every top-level module and import package
loading intersphinx inventory 'python' from https://docs.python.org/objects.inv ...
loading intersphinx inventory 'spyder' from https://docs.spyder-ide.org/current/objects.inv ...
intersphinx inventory has moved: https://docs.python.org/objects.inv -> https://docs.python.org/3/objects.inv
building [mo]: all of 0 po files
writing output...
building [html]: all source files
updating environment: [new config] 4 added, 0 changed, 0 removed
reading sources... [100%] reference
D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.rst:5: WARNING: autosummary: failed to import asyncdispatcher.
Possible hints:
* ValueError: not enough values to unpack (expected 2, got 1)
* KeyError: 'asyncdispatcher'
* ModuleNotFoundError: No module named 'asyncdispatcher'
D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.rst:5: WARNING: autosummary: failed to import config.
Possible hints:
* ModuleNotFoundError: No module named 'config'
* KeyError: 'config'
* ValueError: not enough values to unpack (expected 2, got 1)
# Etc again
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
copying assets...
copying static files...
Writing evaluated template result to D:\Repos\Spyder\spyder-api-docs\docs\_build\html\_static\basic.css
Writing evaluated template result to D:\Repos\Spyder\spyder-api-docs\docs\_build\html\_static\documentation_options.jsWriting evaluated template result to D:\Repos\Spyder\spyder-api-docs\docs\_build\html\_static\language_data.js
copying static files: done
copying extra files...
copying extra files: done
copying assets: done
writing output... [100%] reference
generating indices... genindex py-modindex done
highlighting module code...
writing additional pages... search done
copying images... [100%] images/workshop-3/pd_plugin_publish.png
dumping search index in English (code: en)... done
dumping object inventory... done
build finished with problems, 24 warnings (with warnings treated as errors).
nox > Command python -I -m sphinx -b html -W --show-traceback -t autodoc -- 'D:\Repos\Spyder\spyder-api-docs\docs' 'D:\Repos\Spyder\spyder-api-docs\docs\_build\html' failed with exit code 1
nox > Session _execute failed.
nox > Ran multiple sessions:
nox > * build: success
nox > * _execute: failed
~~Odd, -W should raise an error.~~. Try --exception-on-warning instead.
Can you try editing the file in your venv to insert a raise here?:
https://github.com/sphinx-doc/sphinx/blob/cad3c43f4be2572a1b49a33cfd5bb6b34cf90f80/sphinx/ext/autosummary/init.py#L326
A
Yup, that was my next step looking for where to patch it. Here you go:
Full traceback
+ Exception Group Traceback (most recent call last):
| File "<frozen runpy>", line 198, in _run_module_as_main
| File "<frozen runpy>", line 88, in _run_code
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\__main__.py", line 9, in <module>
| raise SystemExit(main(sys.argv[1:]))
| ^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\cmd\build.py", line 493, in main
| return build_main(argv)
| ^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\cmd\build.py", line 432, in build_main
| app.build(args.force_all, args.filenames)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\application.py", line 436, in build
| self.builder.build_all()
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\builders\__init__.py", line 324, in build_all
| self.build(None, summary=__('all source files'), method='all')
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\builders\__init__.py", line 408, in build
| updated_docnames = set(self.read())
| ^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\builders\__init__.py", line 524, in read
| self._read_serial(docnames)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\builders\__init__.py", line 589, in _read_serial
| self.read_doc(docname)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\builders\__init__.py", line 652, in read_doc
| doctree = _parse_str_to_doctree(
| ^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\util\docutils.py", line 890, in _parse_str_to_doctree
| parser.parse(content, document)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\parsers.py", line 99, in parse
| self.statemachine.run(inputlines, document, inliner=self.inliner)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 169, in run
| results = StateMachineWS.run(self, input_lines, input_offset,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\statemachine.py", line 233, in run
| context, next_state, result = self.check_line(
| ^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\statemachine.py", line 445, in check_line
| return method(match, context, next_state)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 2790, in underline
| self.section(title, source, style, lineno - 1, messages)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 325, in section
| self.new_subsection(title, lineno, messages)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 391, in new_subsection
| newabsoffset = self.nested_parse(
| ^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 279, in nested_parse
| state_machine.run(block, input_offset, memo=self.memo,
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 195, in run
| results = StateMachineWS.run(self, input_lines, input_offset)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\statemachine.py", line 233, in run
| context, next_state, result = self.check_line(
| ^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\statemachine.py", line 445, in check_line
| return method(match, context, next_state)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 2359, in explicit_markup
| self.explicit_list(blank_finish)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 2384, in explicit_list
| newline_offset, blank_finish = self.nested_list_parse(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 316, in nested_list_parse
| state_machine.run(block, input_offset, memo=self.memo,
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 195, in run
| results = StateMachineWS.run(self, input_lines, input_offset)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\statemachine.py", line 233, in run
| context, next_state, result = self.check_line(
| ^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\statemachine.py", line 445, in check_line
| return method(match, context, next_state)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 2662, in explicit_markup
| nodelist, blank_finish = self.explicit_construct(match)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 2369, in explicit_construct
| return method(self, expmatch)
| ^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 2106, in directive
| return self.run_directive(
| ^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 2156, in run_directive
| result = directive_instance.run()
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 218, in run
| items = self.get_items(names)
| ^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 323, in get_items
| real_name, obj, parent, modname = self.import_by_name(
| ^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 282, in import_by_name
| raise ImportExceptionGroup(exc.args[0], errors) from None
| sphinx.ext.autosummary.ImportExceptionGroup: could not import asyncdispatcher (3 sub-exceptions)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 709, in _import_by_name
| _import_module(modname)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autodoc\_dynamic\_importer.py", line 218, in _import_module
| raise ModuleNotFoundError(msg, name=modname) # NoQA: TRY301
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ModuleNotFoundError: No module named 'asyncdispatcher'
+---------------- 2 ----------------
| Traceback (most recent call last):
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 724, in _import_by_name
| return sys.modules[modname], None, modname
| ~~~~~~~~~~~^^^^^^^^^
| KeyError: 'asyncdispatcher'
+---------------- 3 ----------------
| Exception Group Traceback (most recent call last):
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 271, in import_by_name
| return import_by_name(name, prefixes)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 683, in import_by_name
| raise ImportExceptionGroup(msg, exceptions)
| sphinx.ext.autosummary.ImportExceptionGroup: could not import asyncdispatcher (2 sub-exceptions)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 709, in _import_by_name
| _import_module(modname)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autodoc\_dynamic\_importer.py", line 218, in _import_module
| raise ModuleNotFoundError(msg, name=modname) # NoQA: TRY301
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ModuleNotFoundError: No module named 'asyncdispatcher'
+---------------- 2 ----------------
| Traceback (most recent call last):
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 724, in _import_by_name
| return sys.modules[modname], None, modname
| ~~~~~~~~~~~^^^^^^^^^
| KeyError: 'asyncdispatcher'
+------------------------------------
|
| During handling of the above exception, another exception occurred:
|
| Traceback (most recent call last):
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 740, in import_ivar_by_name
| name, attr = name.rsplit('.', 1)
| ^^^^^^^^^^
| ValueError: not enough values to unpack (expected 2, got 1)
+------------------------------------
Full-er output
$ nox -s clean
nox > Running session clean
Removing generated directory 'D:/Repos/Spyder/spyder-api-docs/docs/_build'
Removing generated directory 'D:/Repos/Spyder/spyder-api-docs/docs/_autosummary'
nox > Session clean was successful.
(api-docs)
CAMGerlach@Vger MINGW64 ~/Dev/Repos/Spyder/spyder-api-docs (revise-top-level-docstrings)
$ nox -s build -- --show-traceback -t autodoc
nox > Running session build
nox > Session build was successful.
nox > Running session _execute
nox > Reusing existing virtual environment at .nox\_execute.
nox > python -I -m sphinx -b html -E -a --show-traceback -t autodoc -- 'D:\Repos\Spyder\spyder-api-docs\docs' 'D:\Repos\Spyder\spyder-api-docs\docs\_build\html'
Running Sphinx v9.0.0rc1
loading translations [en]... done
making output directory... done
[autosummary] generating autosummary for: index.rst, plugin_development.rst, reference.rst
[autosummary] generating autosummary for: D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.rst
WARNING: [autosummary] failed to import asyncdispatcher.
Possible hints:
* KeyError: 'asyncdispatcher'
* ValueError: not enough values to unpack (expected 2, got 1)
* ModuleNotFoundError: No module named 'asyncdispatcher'
WARNING: [autosummary] failed to import config.
Possible hints:
* KeyError: 'config'
* ModuleNotFoundError: No module named 'config'
* ValueError: not enough values to unpack (expected 2, got 1)
WARNING: [autosummary] failed to import exceptions.
Possible hints:
* ValueError: not enough values to unpack (expected 2, got 1)
* KeyError: 'exceptions'
* ModuleNotFoundError: No module named 'exceptions'
WARNING: [autosummary] failed to import fonts.
Possible hints:
* ValueError: not enough values to unpack (expected 2, got 1)
* ModuleNotFoundError: No module named 'fonts'
* KeyError: 'fonts'
WARNING: [autosummary] failed to import plugin_registration.
Possible hints:
* ValueError: not enough values to unpack (expected 2, got 1)
* ModuleNotFoundError: No module named 'plugin_registration'
* KeyError: 'plugin_registration'
WARNING: [autosummary] failed to import plugins.
Possible hints:
* ValueError: not enough values to unpack (expected 2, got 1)
* ModuleNotFoundError: No module named 'plugins'
* KeyError: 'plugins'
WARNING: [autosummary] failed to import preferences.
Possible hints:
* KeyError: 'preferences'
* ModuleNotFoundError: No module named 'preferences'
* ValueError: not enough values to unpack (expected 2, got 1)
WARNING: [autosummary] failed to import shellconnect.
Possible hints:
* ValueError: not enough values to unpack (expected 2, got 1)
* ModuleNotFoundError: No module named 'shellconnect'
* KeyError: 'shellconnect'
WARNING: [autosummary] failed to import shortcuts.
Possible hints:
* ValueError: not enough values to unpack (expected 2, got 1)
* KeyError: 'shortcuts'
* ModuleNotFoundError: No module named 'shortcuts'
WARNING: [autosummary] failed to import translations.
Possible hints:
* ValueError: not enough values to unpack (expected 2, got 1)
* KeyError: 'translations'
* ModuleNotFoundError: No module named 'translations'
WARNING: [autosummary] failed to import utils.
Possible hints:
* ValueError: not enough values to unpack (expected 2, got 1)
* KeyError: 'utils'
* ModuleNotFoundError: No module named 'utils'
WARNING: [autosummary] failed to import widgets.
Possible hints:
* KeyError: 'widgets'
* ValueError: not enough values to unpack (expected 2, got 1)
* ModuleNotFoundError: No module named 'widgets'
loading intersphinx inventory 'python' from https://docs.python.org/objects.inv ...
loading intersphinx inventory 'spyder' from https://docs.spyder-ide.org/current/objects.inv ...
intersphinx inventory has moved: https://docs.python.org/objects.inv -> https://docs.python.org/3/objects.inv
building [mo]: all of 0 po files
writing output...
building [html]: all source files
updating environment: [new config] 4 added, 0 changed, 0 removed
+ Exception Group Traceback (most recent call last):
| File "<frozen runpy>", line 198, in _run_module_as_main
| File "<frozen runpy>", line 88, in _run_code
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\__main__.py", line 9, in <module>
| raise SystemExit(main(sys.argv[1:]))
| ^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\cmd\build.py", line 493, in main
| return build_main(argv)
| ^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\cmd\build.py", line 432, in build_main
| app.build(args.force_all, args.filenames)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\application.py", line 436, in build
| self.builder.build_all()
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\builders\__init__.py", line 324, in build_all
| self.build(None, summary=__('all source files'), method='all')
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\builders\__init__.py", line 408, in build
| updated_docnames = set(self.read())
| ^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\builders\__init__.py", line 524, in read
| self._read_serial(docnames)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\builders\__init__.py", line 589, in _read_serial
| self.read_doc(docname)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\builders\__init__.py", line 652, in read_doc
| doctree = _parse_str_to_doctree(
| ^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\util\docutils.py", line 890, in _parse_str_to_doctree
| parser.parse(content, document)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\parsers.py", line 99, in parse
| self.statemachine.run(inputlines, document, inliner=self.inliner)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 169, in run
| results = StateMachineWS.run(self, input_lines, input_offset,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\statemachine.py", line 233, in run
| context, next_state, result = self.check_line(
| ^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\statemachine.py", line 445, in check_line
| return method(match, context, next_state)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 2790, in underline
| self.section(title, source, style, lineno - 1, messages)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 325, in section
| self.new_subsection(title, lineno, messages)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 391, in new_subsection
| newabsoffset = self.nested_parse(
| ^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 279, in nested_parse
| state_machine.run(block, input_offset, memo=self.memo,
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 195, in run
| results = StateMachineWS.run(self, input_lines, input_offset)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\statemachine.py", line 233, in run
| context, next_state, result = self.check_line(
| ^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\statemachine.py", line 445, in check_line
| return method(match, context, next_state)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 2359, in explicit_markup
| self.explicit_list(blank_finish)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 2384, in explicit_list
| newline_offset, blank_finish = self.nested_list_parse(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 316, in nested_list_parse
| state_machine.run(block, input_offset, memo=self.memo,
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 195, in run
| results = StateMachineWS.run(self, input_lines, input_offset)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\statemachine.py", line 233, in run
| context, next_state, result = self.check_line(
| ^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\statemachine.py", line 445, in check_line
| return method(match, context, next_state)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 2662, in explicit_markup
| nodelist, blank_finish = self.explicit_construct(match)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 2369, in explicit_construct
| return method(self, expmatch)
| ^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 2106, in directive
| return self.run_directive(
| ^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\docutils\parsers\rst\states.py", line 2156, in run_directive
| result = directive_instance.run()
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 218, in run
| items = self.get_items(names)
| ^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 323, in get_items
| real_name, obj, parent, modname = self.import_by_name(
| ^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 282, in import_by_name
| raise ImportExceptionGroup(exc.args[0], errors) from None
| sphinx.ext.autosummary.ImportExceptionGroup: could not import asyncdispatcher (3 sub-exceptions)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 709, in _import_by_name
| _import_module(modname)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autodoc\_dynamic\_importer.py", line 218, in _import_module
| raise ModuleNotFoundError(msg, name=modname) # NoQA: TRY301
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ModuleNotFoundError: No module named 'asyncdispatcher'
+---------------- 2 ----------------
| Traceback (most recent call last):
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 724, in _import_by_name
| return sys.modules[modname], None, modname
| ~~~~~~~~~~~^^^^^^^^^
| KeyError: 'asyncdispatcher'
+---------------- 3 ----------------
| Exception Group Traceback (most recent call last):
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 271, in import_by_name
| return import_by_name(name, prefixes)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 683, in import_by_name
| raise ImportExceptionGroup(msg, exceptions)
| sphinx.ext.autosummary.ImportExceptionGroup: could not import asyncdispatcher (2 sub-exceptions)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 709, in _import_by_name
| _import_module(modname)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autodoc\_dynamic\_importer.py", line 218, in _import_module
| raise ModuleNotFoundError(msg, name=modname) # NoQA: TRY301
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ModuleNotFoundError: No module named 'asyncdispatcher'
+---------------- 2 ----------------
| Traceback (most recent call last):
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 724, in _import_by_name
| return sys.modules[modname], None, modname
| ~~~~~~~~~~~^^^^^^^^^
| KeyError: 'asyncdispatcher'
+------------------------------------
|
| During handling of the above exception, another exception occurred:
|
| Traceback (most recent call last):
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 740, in import_ivar_by_name
| name, attr = name.rsplit('.', 1)
| ^^^^^^^^^^
| ValueError: not enough values to unpack (expected 2, got 1)
+------------------------------------
nox > Command python -I -m sphinx -b html -E -a --show-traceback -t autodoc -- 'D:\Repos\Spyder\spyder-api-docs\docs' 'D:\Repos\Spyder\spyder-api-docs\docs\_build\html' failed with exit code 1
nox > Session _execute failed.
nox > Ran multiple sessions:
nox > * build: success
nox > * _execute: failed
(Just for reference, spyder-api-docs has spyder as a submodule, inside which there is a import package directory spyder, the api subpackage of which is (for now) the top-level autosummary:: target, which in turn contains the above-referenced module asyncdispatcher.)
Can you paste the .. autosummary:: directive itself? It's trying (failing) to import a module asyncdispatcher with no context as to the parent package, so clearly that's getting lost somewhere.
Another thing to try is running with --exception-on-warning -vv, though I don't know what (if anything) the extra verbosity will show.
A
Top-level reference.rst containing the root autosummary directive:
API Reference
=============
API reference for all modules in the Spyder application.
.. autosummary::
:toctree: _autosummary
:template: custom-module-template.rst
:recursive:
spyder.api
Autosummary directive in the template (only deltas from the default are moved above automodule and aded :template::
.. autosummary::
:toctree:
:template: custom-module-template.rst
:recursive:
{% for item in modules %}
{{ item }}
{%- endfor %}
Full template
{{ fullname | escape | underline}}
{%- block modules %}
{%- if modules %}
.. rubric:: Modules
.. autosummary::
:toctree:
:template: custom-module-template.rst
:recursive:
{% for item in modules %}
{{ item }}
{%- endfor %}
{% endif %}
{%- endblock %}
.. automodule:: {{ fullname }}
{% block attributes %}
{%- if attributes %}
.. rubric:: {{ _('Module Attributes') }}
.. autosummary::
{% for item in attributes %}
{{ item }}
{%- endfor %}
{% endif %}
{%- endblock %}
{%- block functions %}
{%- if functions %}
.. rubric:: {{ _('Functions') }}
.. autosummary::
{% for item in functions %}
{{ item }}
{%- endfor %}
{% endif %}
{%- endblock %}
{%- block classes %}
{%- if classes %}
.. rubric:: {{ _('Classes') }}
.. autosummary::
{% for item in classes %}
{{ item }}
{%- endfor %}
{% endif %}
{%- endblock %}
{%- block exceptions %}
{%- if exceptions %}
.. rubric:: {{ _('Exceptions') }}
.. autosummary::
{% for item in exceptions %}
{{ item }}
{%- endfor %}
{% endif %}
{%- endblock %}
Running Sphinx with --exception-on-warning -vv (keeping the patch from before) produced a bunch of informational output, but not much more in terms of details on the error:
Traceback
+ Exception Group Traceback (most recent call last):
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\generate.py", line 664, in generate_autosummary_docs
| name, obj, parent, modname = import_by_name(entry.name)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 683, in import_by_name
| raise ImportExceptionGroup(msg, exceptions)
| sphinx.ext.autosummary.ImportExceptionGroup: could not import asyncdispatcher (2 sub-exceptions)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 709, in _import_by_name
| _import_module(modname)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autodoc\_dynamic\_importer.py", line 218, in _import_module
| raise ModuleNotFoundError(msg, name=modname) # NoQA: TRY301
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ModuleNotFoundError: No module named 'asyncdispatcher'
+---------------- 2 ----------------
| Traceback (most recent call last):
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 724, in _import_by_name
| return sys.modules[modname], None, modname
| ~~~~~~~~~~~^^^^^^^^^
| KeyError: 'asyncdispatcher'
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 740, in import_ivar_by_name
name, attr = name.rsplit('.', 1)
^^^^^^^^^^
ValueError: not enough values to unpack (expected 2, got 1)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\generate.py", line 669, in generate_autosummary_docs
name, obj, parent, modname = import_ivar_by_name(entry.name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 761, in import_ivar_by_name
raise ImportError from exc
ImportError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\cmd\build.py", line 414, in build_main
app = Sphinx(
^^^^^^^
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\application.py", line 338, in __init__
self._init_builder()
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\application.py", line 428, in _init_builder
self.events.emit('builder-inited')
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\events.py", line 392, in emit
results.append(listener.handler(self._app, *args))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 871, in process_generate_options
generate_autosummary_docs(
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\generate.py", line 722, in generate_autosummary_docs
generate_autosummary_docs(
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\generate.py", line 678, in generate_autosummary_docs
logger.warning(
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\util\logging.py", line 191, in warning
return super().warning(
^^^^^^^^^^^^^^^^
File "D:\Miniforge3\envs\api-docs\Lib\logging\__init__.py", line 1930, in warning
self.log(WARNING, msg, *args, **kwargs)
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\util\logging.py", line 138, in log
super().log(level, msg, *args, **kwargs)
File "D:\Miniforge3\envs\api-docs\Lib\logging\__init__.py", line 1962, in log
self.logger.log(level, msg, *args, **kwargs)
File "D:\Miniforge3\envs\api-docs\Lib\logging\__init__.py", line 1609, in log
self._log(level, msg, args, **kwargs)
File "D:\Miniforge3\envs\api-docs\Lib\logging\__init__.py", line 1684, in _log
self.handle(record)
File "D:\Miniforge3\envs\api-docs\Lib\logging\__init__.py", line 1700, in handle
self.callHandlers(record)
File "D:\Miniforge3\envs\api-docs\Lib\logging\__init__.py", line 1762, in callHandlers
hdlr.handle(record)
File "D:\Miniforge3\envs\api-docs\Lib\logging\__init__.py", line 1022, in handle
rv = self.filter(record)
^^^^^^^^^^^^^^^^^^^
File "D:\Miniforge3\envs\api-docs\Lib\logging\__init__.py", line 858, in filter
result = f.filter(record)
^^^^^^^^^^^^^^^^
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\util\logging.py", line 412, in filter
raise SphinxWarning(message)
sphinx.errors.SphinxWarning: [autosummary] failed to import asyncdispatcher.
Possible hints:
* KeyError: 'asyncdispatcher'
* ValueError: not enough values to unpack (expected 2, got 1)
* ModuleNotFoundError: No module named 'asyncdispatcher'
Full console output
CAMGerlach@Vger MINGW64 ~/Dev/Repos/Spyder/spyder-api-docs (revise-top-level-docstrings)
$ nox -s clean
nox > Running session clean
Removing generated directory 'D:/Repos/Spyder/spyder-api-docs/docs/_build'
Removing generated directory 'D:/Repos/Spyder/spyder-api-docs/docs/_autosummary'
nox > Session clean was successful.
CAMGerlach@Vger MINGW64 ~/Dev/Repos/Spyder/spyder-api-docs (revise-top-level-docstrings)
$ nox -s build -- --show-traceback --exception-on-warning -vv -t autodoc
nox > Running session build
nox > Session build was successful.
nox > Running session _execute
nox > Reusing existing virtual environment at .nox\_execute.
nox > python -I -m sphinx -b html -E -a --show-traceback --exception-on-warning -vv -t autodoc -- 'D:\Repos\Spyder\spyder-api-docs\docs' 'D:\Repos\Spyder\spyder-api-docs\docs\_build\html'
Running Sphinx v9.0.0rc1
loading translations [en]... locale_dir D:\Repos\Spyder\spyder-api-docs\docs\locales\en\LC_MESSAGES does not exist
locale_dir D:\Repos\Spyder\spyder-api-docs\docs\locales\en\LC_MESSAGES does not exist
done
[app] setting up extension: 'sphinx.addnodes'
[app] adding node: (<class 'sphinx.addnodes.toctree'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.toctree'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_signature'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_signature'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_signature_line'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_signature_line'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_content'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_content'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_inline'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_inline'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_name'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_name'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_addname'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_addname'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_type'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_type'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_returns'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_returns'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_parameterlist'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_parameterlist'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_type_parameter_list'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_type_parameter_list'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_parameter'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_parameter'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_type_parameter'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_type_parameter'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_optional'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_optional'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_annotation'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_annotation'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_sig_literal_char'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_sig_literal_char'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_sig_literal_string'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_sig_literal_string'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_sig_name'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_sig_name'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_sig_literal_number'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_sig_literal_number'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_sig_keyword_type'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_sig_keyword_type'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_sig_keyword'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_sig_keyword'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_sig_operator'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_sig_operator'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_sig_space'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_sig_space'>, {}
[app] adding node: (<class 'sphinx.addnodes.desc_sig_punctuation'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.desc_sig_punctuation'>, {}
[app] adding node: (<class 'sphinx.addnodes.versionmodified'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.versionmodified'>, {}
[app] adding node: (<class 'sphinx.addnodes.seealso'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.seealso'>, {}
[app] adding node: (<class 'sphinx.addnodes.productionlist'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.productionlist'>, {}
[app] adding node: (<class 'sphinx.addnodes.production'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.production'>, {}
[app] adding node: (<class 'sphinx.addnodes.index'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.index'>, {}
[app] adding node: (<class 'sphinx.addnodes.centered'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.centered'>, {}
[app] adding node: (<class 'sphinx.addnodes.acks'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.acks'>, {}
[app] adding node: (<class 'sphinx.addnodes.hlist'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.hlist'>, {}
[app] adding node: (<class 'sphinx.addnodes.hlistcol'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.hlistcol'>, {}
[app] adding node: (<class 'sphinx.addnodes.compact_paragraph'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.compact_paragraph'>, {}
[app] adding node: (<class 'sphinx.addnodes.glossary'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.glossary'>, {}
[app] adding node: (<class 'sphinx.addnodes.only'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.only'>, {}
[app] adding node: (<class 'sphinx.addnodes.start_of_file'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.start_of_file'>, {}
[app] adding node: (<class 'sphinx.addnodes.highlightlang'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.highlightlang'>, {}
[app] adding node: (<class 'sphinx.addnodes.tabular_col_spec'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.tabular_col_spec'>, {}
[app] adding node: (<class 'sphinx.addnodes.pending_xref'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.pending_xref'>, {}
[app] adding node: (<class 'sphinx.addnodes.number_reference'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.number_reference'>, {}
[app] adding node: (<class 'sphinx.addnodes.download_reference'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.download_reference'>, {}
[app] adding node: (<class 'sphinx.addnodes.literal_emphasis'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.literal_emphasis'>, {}
[app] adding node: (<class 'sphinx.addnodes.literal_strong'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.literal_strong'>, {}
[app] adding node: (<class 'sphinx.addnodes.manpage'>, {})
[app] adding translation_handlers: <class 'sphinx.addnodes.manpage'>, {}
[app] setting up extension: 'sphinx.builders.changes'
[app] adding builder: <class 'sphinx.builders.changes.ChangesBuilder'>
[app] setting up extension: 'sphinx.builders.epub3'
[app] adding builder: <class 'sphinx.builders.epub3.Epub3Builder'>
[app] adding config value: ('epub_basename', <function setup.<locals>.<lambda> at 0x00000203607AC680>, '', frozenset({<class 'str'>}))
[app] adding config value: ('epub_version', 3.0, 'epub', frozenset({<class 'float'>}))
[app] adding config value: ('epub_theme', 'epub', 'epub', frozenset({<class 'str'>}))
[app] adding config value: ('epub_theme_options', {}, 'epub', frozenset({<class 'dict'>}))
[app] adding config value: ('epub_title', <function setup.<locals>.<lambda> at 0x0000020360822CA0>, 'epub', frozenset({<class 'str'>}))
[app] adding config value: ('epub_author', <function setup.<locals>.<lambda> at 0x00000203615A80E0>, 'epub', frozenset({<class 'str'>}))
[app] adding config value: ('epub_language', <function setup.<locals>.<lambda> at 0x00000203615A8180>, 'epub', frozenset({<class 'str'>}))
[app] adding config value: ('epub_publisher', <function setup.<locals>.<lambda> at 0x00000203615A8220>, 'epub', frozenset({<class 'str'>}))
[app] adding config value: ('epub_copyright', <function setup.<locals>.<lambda> at 0x00000203615A82C0>, 'epub', frozenset({<class 'str'>}))
[app] adding config value: ('epub_identifier', 'unknown', 'epub', frozenset({<class 'str'>}))
[app] adding config value: ('epub_scheme', 'unknown', 'epub', frozenset({<class 'str'>}))
[app] adding config value: ('epub_uid', 'unknown', 'env', frozenset({<class 'str'>}))
[app] adding config value: ('epub_cover', (), 'env', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('epub_guide', (), 'env', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('epub_pre_files', [], 'env', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('epub_post_files', [], 'env', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('epub_css_files', <function setup.<locals>.<lambda> at 0x00000203615A8400>, 'epub', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('epub_exclude_files', [], 'env', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('epub_tocdepth', 3, 'env', frozenset({<class 'int'>}))
[app] adding config value: ('epub_tocdup', True, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('epub_tocscope', 'default', 'env', frozenset({<class 'str'>}))
[app] adding config value: ('epub_fix_images', False, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('epub_max_image_width', 0, 'env', frozenset({<class 'int'>}))
[app] adding config value: ('epub_show_urls', 'inline', 'epub', frozenset({<class 'str'>}))
[app] adding config value: ('epub_use_index', <function setup.<locals>.<lambda> at 0x00000203615A8540>, 'epub', frozenset({<class 'bool'>}))
[app] adding config value: ('epub_description', 'unknown', 'epub', frozenset({<class 'str'>}))
[app] adding config value: ('epub_contributor', 'unknown', 'epub', frozenset({<class 'str'>}))
[app] adding config value: ('epub_writing_mode', 'horizontal', 'epub', ENUM('horizontal', 'vertical'))
[app] connecting event 'config-inited' (800): <function convert_epub_css_files at 0x000002036159BF60> [id=0]
[app] connecting event 'builder-inited' (500): <function validate_config_values at 0x0000020360822DE0> [id=1]
[app] setting up extension: 'sphinx.builders.dirhtml'
[app] setting up extension: 'sphinx.builders.html'
[app] adding builder: <class 'sphinx.builders.html.StandaloneHTMLBuilder'>
[app] adding config value: ('html_theme', 'alabaster', 'html', frozenset({<class 'str'>}))
[app] adding config value: ('html_theme_path', [], 'html', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('html_theme_options', {}, 'html', frozenset({<class 'dict'>}))
[app] adding config value: ('html_title', <function setup.<locals>.<lambda> at 0x00000203615A8720>, 'html', frozenset({<class 'str'>}))
[app] adding config value: ('html_short_title', <function setup.<locals>.<lambda> at 0x00000203615A8A40>, 'html', frozenset({<class 'str'>}))
[app] adding config value: ('html_style', None, 'html', frozenset({<class 'str'>, <class 'tuple'>, <class 'list'>}))
[app] adding config value: ('html_logo', None, 'html', frozenset({<class 'str'>}))
[app] adding config value: ('html_favicon', None, 'html', frozenset({<class 'str'>}))
[app] adding config value: ('html_css_files', [], 'html', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('html_js_files', [], 'html', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('html_static_path', [], 'html', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('html_extra_path', [], 'html', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('html_last_updated_fmt', None, 'html', frozenset({<class 'str'>}))
[app] adding config value: ('html_last_updated_use_utc', False, 'html', frozenset({<class 'bool'>}))
[app] adding config value: ('html_sidebars', {}, 'html', frozenset({<class 'dict'>}))
[app] adding config value: ('html_additional_pages', {}, 'html', frozenset({<class 'dict'>}))
[app] adding config value: ('html_domain_indices', True, 'html', frozenset({<class 'tuple'>, <class 'list'>, <class 'set'>, <class 'frozenset'>}))
[app] adding config value: ('html_permalinks', True, 'html', frozenset({<class 'bool'>}))
[app] adding config value: ('html_permalinks_icon', '¶', 'html', frozenset({<class 'str'>}))
[app] adding config value: ('html_use_index', True, 'html', frozenset({<class 'bool'>}))
[app] adding config value: ('html_split_index', False, 'html', frozenset({<class 'bool'>}))
[app] adding config value: ('html_copy_source', True, 'html', frozenset({<class 'bool'>}))
[app] adding config value: ('html_show_sourcelink', True, 'html', frozenset({<class 'bool'>}))
[app] adding config value: ('html_sourcelink_suffix', '.txt', 'html', frozenset({<class 'str'>}))
[app] adding config value: ('html_use_opensearch', '', 'html', frozenset({<class 'str'>}))
[app] adding config value: ('html_file_suffix', None, 'html', frozenset({<class 'str'>}))
[app] adding config value: ('html_link_suffix', None, 'html', frozenset({<class 'str'>}))
[app] adding config value: ('html_show_copyright', True, 'html', frozenset({<class 'bool'>}))
[app] adding config value: ('html_show_search_summary', True, 'html', frozenset({<class 'bool'>}))
[app] adding config value: ('html_show_sphinx', True, 'html', frozenset({<class 'bool'>}))
[app] adding config value: ('html_context', {}, 'html', frozenset({<class 'dict'>}))
[app] adding config value: ('html_output_encoding', 'utf-8', 'html', frozenset({<class 'str'>}))
[app] adding config value: ('html_compact_lists', True, 'html', frozenset({<class 'bool'>}))
[app] adding config value: ('html_secnumber_suffix', '. ', 'html', frozenset({<class 'str'>}))
[app] adding config value: ('html_search_language', None, 'html', frozenset({<class 'str'>}))
[app] adding config value: ('html_search_options', {}, 'html', frozenset({<class 'dict'>}))
[app] adding config value: ('html_search_scorer', '', '', frozenset({<class 'str'>}))
[app] adding config value: ('html_scaled_image_link', True, 'html', frozenset({<class 'bool'>}))
[app] adding config value: ('html_baseurl', '', 'html', frozenset({<class 'str'>}))
[app] adding config value: ('html_codeblock_linenos_style', 'inline', 'html', ENUM('inline', 'table'))
[app] adding config value: ('html_math_renderer', None, 'env', frozenset({<class 'str'>, <class 'NoneType'>}))
[app] adding config value: ('html4_writer', False, 'html', frozenset({<class 'bool'>}))
[app] adding event: 'html-collect-pages'
[app] adding event: 'html-page-context'
[app] connecting event 'config-inited' (800): <function convert_html_css_files at 0x0000020361598EA0> [id=2]
[app] connecting event 'config-inited' (800): <function convert_html_js_files at 0x0000020361598F40> [id=3]
[app] connecting event 'config-inited' (800): <function validate_html_extra_path at 0x0000020361599120> [id=4]
[app] connecting event 'config-inited' (800): <function validate_html_static_path at 0x00000203615991C0> [id=5]
[app] connecting event 'config-inited' (800): <function validate_html_logo at 0x0000020361599260> [id=6]
[app] connecting event 'config-inited' (800): <function validate_html_favicon at 0x0000020361599300> [id=7]
[app] connecting event 'config-inited' (800): <function error_on_html_sidebars_string_values at 0x00000203615993A0> [id=8]
[app] connecting event 'config-inited' (800): <function error_on_html_4 at 0x0000020361599440> [id=9]
[app] connecting event 'builder-inited' (500): <function validate_math_renderer at 0x0000020361599080> [id=10]
[app] connecting event 'html-page-context' (500): <function setup_resource_paths at 0x0000020361598FE0> [id=11]
[app] setting up extension: 'sphinx.ext.mathjax'
[app] adding html_math_renderer: mathjax, (<function html_visit_math at 0x00000203615A9260>, None), (<function html_visit_displaymath at 0x00000203615A93A0>, None)
[app] adding config value: ('mathjax_path', 'https://cdn.jsdelivr.net/npm/mathjax@4/tex-mml-chtml.js', 'html', frozenset({<class 'str'>}))
[app] adding config value: ('mathjax_options', {}, 'html', frozenset({<class 'dict'>}))
[app] adding config value: ('mathjax_inline', ['\\(', '\\)'], 'html', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('mathjax_display', ['\\[', '\\]'], 'html', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('mathjax_config', None, 'html', frozenset({<class 'NoneType'>, <class 'dict'>}))
[app] adding config value: ('mathjax2_config', <function setup.<locals>.<lambda> at 0x00000203615A84A0>, 'html', frozenset({<class 'NoneType'>, <class 'dict'>}))
[app] adding config value: ('mathjax3_config', None, 'html', frozenset({<class 'NoneType'>, <class 'dict'>}))
[app] adding config value: ('mathjax4_config', None, 'html', frozenset({<class 'NoneType'>, <class 'dict'>}))
[app] adding config value: ('mathjax_config_path', '', 'html', frozenset({<class 'str'>}))
[app] connecting event 'html-page-context' (500): <function install_mathjax at 0x00000203615A9440> [id=12]
[app] adding builder: <class 'sphinx.builders.dirhtml.DirectoryHTMLBuilder'>
[app] setting up extension: 'sphinx.builders.dummy'
[app] adding builder: <class 'sphinx.builders.dummy.DummyBuilder'>
[app] setting up extension: 'sphinx.builders.gettext'
[app] adding builder: <class 'sphinx.builders.gettext.MessageCatalogBuilder'>
[app] adding config value: ('gettext_compact', True, 'gettext', frozenset({<class 'str'>, <class 'bool'>}))
[app] adding config value: ('gettext_location', True, 'gettext', frozenset({<class 'bool'>}))
[app] adding config value: ('gettext_uuid', False, 'gettext', frozenset({<class 'bool'>}))
[app] adding config value: ('gettext_auto_build', True, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('gettext_additional_targets', [], 'env', frozenset({<class 'tuple'>, <class 'list'>, <class 'set'>, <class 'frozenset'>}))
[app] adding config value: ('gettext_last_translator', 'FULL NAME <EMAIL@ADDRESS>', 'gettext', frozenset({<class 'str'>}))
[app] adding config value: ('gettext_language_team', 'LANGUAGE <[email protected]>', 'gettext', frozenset({<class 'str'>}))
[app] setting up extension: 'sphinx.builders.html'
[app] setting up extension: 'sphinx.builders.latex'
[app] setting up extension: 'sphinx.builders.latex.transforms'
[app] adding transform: <class 'sphinx.builders.latex.transforms.FootnoteDocnameUpdater'>
[app] adding post transform: <class 'sphinx.builders.latex.transforms.SubstitutionDefinitionsRemover'>
[app] adding post transform: <class 'sphinx.builders.latex.transforms.BibliographyTransform'>
[app] adding post transform: <class 'sphinx.builders.latex.transforms.CitationReferenceTransform'>
[app] adding post transform: <class 'sphinx.builders.latex.transforms.DocumentTargetTransform'>
[app] adding post transform: <class 'sphinx.builders.latex.transforms.IndexInSectionTitleTransform'>
[app] adding post transform: <class 'sphinx.builders.latex.transforms.LaTeXFootnoteTransform'>
[app] adding post transform: <class 'sphinx.builders.latex.transforms.LiteralBlockTransform'>
[app] adding post transform: <class 'sphinx.builders.latex.transforms.MathReferenceTransform'>
[app] adding post transform: <class 'sphinx.builders.latex.transforms.ShowUrlsTransform'>
[app] adding builder: <class 'sphinx.builders.latex.LaTeXBuilder'>
[app] connecting event 'config-inited' (800): <function validate_config_values at 0x00000203615F5260> [id=13]
[app] connecting event 'config-inited' (800): <function validate_latex_theme_options at 0x000002036169BE20> [id=14]
[app] connecting event 'builder-inited' (500): <function install_packages_for_ja at 0x000002036169BEC0> [id=15]
[app] adding config value: ('latex_engine', <function default_latex_engine at 0x000002036169BF60>, '', ENUM('lualatex', 'pdflatex', 'platex', 'uplatex', 'xelatex'))
[app] adding config value: ('latex_documents', <function default_latex_documents at 0x000002036169C180>, '', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('latex_logo', None, '', frozenset({<class 'str'>}))
[app] adding config value: ('latex_appendices', [], '', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('latex_use_latex_multicolumn', False, '', frozenset({<class 'bool'>}))
[app] adding config value: ('latex_use_xindy', <function default_latex_use_xindy at 0x000002036169C0E0>, '', frozenset({<class 'bool'>}))
[app] adding config value: ('latex_toplevel_sectioning', None, '', ENUM('chapter', 'part', 'section', None))
[app] adding config value: ('latex_domain_indices', True, '', frozenset({<class 'tuple'>, <class 'list'>, <class 'set'>, <class 'frozenset'>}))
[app] adding config value: ('latex_show_urls', 'no', '', frozenset({<class 'str'>}))
[app] adding config value: ('latex_show_pagerefs', False, '', frozenset({<class 'bool'>}))
[app] adding config value: ('latex_elements', {}, '', frozenset({<class 'dict'>}))
[app] adding config value: ('latex_additional_files', [], '', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('latex_table_style', ['booktabs', 'colorrows'], '', frozenset({<class 'list'>}))
[app] adding config value: ('latex_theme', 'manual', '', frozenset({<class 'str'>}))
[app] adding config value: ('latex_theme_options', {}, '', frozenset({<class 'dict'>}))
[app] adding config value: ('latex_theme_path', [], '', frozenset({<class 'list'>}))
[app] adding config value: ('latex_docclass', <function default_latex_docclass at 0x000002036169C040>, '', frozenset({<class 'dict'>}))
[app] setting up extension: 'sphinx.builders.linkcheck'
[app] adding builder: <class 'sphinx.builders.linkcheck.CheckExternalLinksBuilder'>
[app] adding post transform: <class 'sphinx.builders.linkcheck.HyperlinkCollector'>
[app] adding config value: ('linkcheck_ignore', [], '', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('linkcheck_exclude_documents', [], '', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('linkcheck_allowed_redirects', _SENTINEL_LAR, '', frozenset({<class 'dict'>}))
[app] adding config value: ('linkcheck_auth', [], '', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('linkcheck_request_headers', {}, '', frozenset({<class 'dict'>}))
[app] adding config value: ('linkcheck_retries', 1, '', frozenset({<class 'int'>}))
[app] adding config value: ('linkcheck_timeout', 30, '', frozenset({<class 'int'>, <class 'float'>}))
[app] adding config value: ('linkcheck_workers', 5, '', frozenset({<class 'int'>}))
[app] adding config value: ('linkcheck_anchors', True, '', frozenset({<class 'bool'>}))
[app] adding config value: ('linkcheck_anchors_ignore', ['^!'], '', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('linkcheck_anchors_ignore_for_url', (), '', frozenset({<class 'tuple'>, <class 'list'>})) [app] adding config value: ('linkcheck_rate_limit_timeout', 300.0, '', frozenset({<class 'int'>, <class 'float'>}))
[app] adding config value: ('linkcheck_allow_unauthorized', False, '', frozenset({<class 'bool'>}))
[app] adding config value: ('linkcheck_report_timeouts_as_broken', False, '', frozenset({<class 'bool'>}))
[app] adding config value: ('linkcheck_case_insensitive_urls', (), '', frozenset({<class 'tuple'>, <class 'list'>, <class 'set'>, <class 'frozenset'>}))
[app] adding event: 'linkcheck-process-uri'
[app] connecting event 'config-inited' (900): <function compile_linkcheck_allowed_redirects at 0x00000203629802C0> [id=16]
[app] setting up extension: 'sphinx.builders.manpage'
[app] adding builder: <class 'sphinx.builders.manpage.ManualPageBuilder'>
[app] adding config value: ('man_pages', <function default_man_pages at 0x0000020362980540>, '', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('man_show_urls', False, '', frozenset({<class 'bool'>}))
[app] adding config value: ('man_make_section_directory', False, '', frozenset({<class 'bool'>}))
[app] setting up extension: 'sphinx.builders.singlehtml'
[app] setting up extension: 'sphinx.builders.html'
[app] adding builder: <class 'sphinx.builders.singlehtml.SingleFileHTMLBuilder'>
[app] adding config value: ('singlehtml_sidebars', <function setup.<locals>.<lambda> at 0x00000203629804A0>, 'html', frozenset({<class 'dict'>}))
[app] setting up extension: 'sphinx.builders.texinfo'
[app] adding builder: <class 'sphinx.builders.texinfo.TexinfoBuilder'>
[app] adding config value: ('texinfo_documents', <function default_texinfo_documents at 0x00000203629C4EA0>, '', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('texinfo_appendices', [], '', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('texinfo_elements', {}, '', frozenset({<class 'dict'>}))
[app] adding config value: ('texinfo_domain_indices', True, '', frozenset({<class 'tuple'>, <class 'list'>, <class 'set'>, <class 'frozenset'>}))
[app] adding config value: ('texinfo_show_urls', 'footnote', '', frozenset({<class 'str'>}))
[app] adding config value: ('texinfo_no_detailmenu', False, '', frozenset({<class 'bool'>}))
[app] adding config value: ('texinfo_cross_references', True, '', frozenset({<class 'bool'>}))
[app] setting up extension: 'sphinx.builders.text'
[app] adding builder: <class 'sphinx.builders.text.TextBuilder'>
[app] adding config value: ('text_sectionchars', '*=-~"+`', 'env', frozenset({<class 'str'>}))
[app] adding config value: ('text_newlines', 'unix', 'env', frozenset({<class 'str'>}))
[app] adding config value: ('text_add_secnumbers', True, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('text_secnumber_suffix', '. ', 'env', frozenset({<class 'str'>}))
[app] setting up extension: 'sphinx.builders.xml'
[app] adding builder: <class 'sphinx.builders.xml.XMLBuilder'>
[app] adding builder: <class 'sphinx.builders.xml.PseudoXMLBuilder'>
[app] adding config value: ('xml_pretty', True, 'env', frozenset({<class 'bool'>}))
[app] setting up extension: 'sphinx.config'
[app] connecting event 'config-inited' (790): <function deprecate_source_encoding at 0x000002035F59C540> [id=17]
[app] connecting event 'config-inited' (800): <function convert_source_suffix at 0x000002035F593F60> [id=18]
[app] connecting event 'config-inited' (800): <function convert_highlight_options at 0x000002035F59C040> [id=19]
[app] connecting event 'config-inited' (800): <function init_numfig_format at 0x000002035F59C0E0> [id=20]
[app] connecting event 'config-inited' (795): <function evaluate_copyright_placeholders at 0x000002035F59C180> [id=21][app] connecting event 'config-inited' (800): <function correct_copyright_year at 0x000002035F59C220> [id=22]
[app] connecting event 'config-inited' (800): <function check_confval_types at 0x000002035F59C360> [id=23]
[app] connecting event 'config-inited' (800): <function check_primary_domain at 0x000002035F59C400> [id=24]
[app] connecting event 'env-get-outdated' (500): <function check_master_doc at 0x000002035F59C4A0> [id=25]
[app] setting up extension: 'sphinx.domains.c'
[app] adding domain: <class 'sphinx.domains.c.CDomain'>
[app] adding config value: ('c_id_attributes', [], 'env', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('c_paren_attributes', [], 'env', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('c_extra_keywords', frozenset({'static_assert', 'imaginary', 'complex', 'thread_local', 'alignof', 'alignas', 'bool', 'noreturn'}), 'env', frozenset({<class 'tuple'>, <class 'list'>, <class 'set'>, <class 'frozenset'>}))
[app] adding config value: ('c_maximum_signature_line_length', None, 'env', frozenset({<class 'int'>, <class 'NoneType'>}))
[app] adding post transform: <class 'sphinx.domains.c.AliasTransform'>
[app] setting up extension: 'sphinx.domains.changeset'
[app] adding domain: <class 'sphinx.domains.changeset.ChangeSetDomain'>
[app] adding directive: ('version-deprecated', <class 'sphinx.domains.changeset.VersionChange'>)
[app] adding directive: ('deprecated', <class 'sphinx.domains.changeset.VersionChange'>)
[app] adding directive: ('version-added', <class 'sphinx.domains.changeset.VersionChange'>)
[app] adding directive: ('versionadded', <class 'sphinx.domains.changeset.VersionChange'>)
[app] adding directive: ('version-changed', <class 'sphinx.domains.changeset.VersionChange'>)
[app] adding directive: ('versionchanged', <class 'sphinx.domains.changeset.VersionChange'>)
[app] adding directive: ('version-removed', <class 'sphinx.domains.changeset.VersionChange'>)
[app] adding directive: ('versionremoved', <class 'sphinx.domains.changeset.VersionChange'>)
[app] setting up extension: 'sphinx.domains.citation'
[app] adding domain: <class 'sphinx.domains.citation.CitationDomain'>
[app] adding transform: <class 'sphinx.domains.citation.CitationDefinitionTransform'>
[app] adding transform: <class 'sphinx.domains.citation.CitationReferenceTransform'>
[app] setting up extension: 'sphinx.domains.cpp'
[app] adding domain: <class 'sphinx.domains.cpp.CPPDomain'>
[app] adding config value: ('cpp_index_common_prefix', [], 'env', frozenset({<class 'list'>}))
[app] adding config value: ('cpp_id_attributes', [], 'env', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('cpp_paren_attributes', [], 'env', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('cpp_maximum_signature_line_length', None, 'env', frozenset({<class 'int'>, <class 'NoneType'>}))
[app] adding post transform: <class 'sphinx.domains.cpp.AliasTransform'>
[app] adding config value: ('cpp_debug_lookup', False, '', frozenset({<class 'bool'>}))
[app] adding config value: ('cpp_debug_show_tree', False, '', frozenset({<class 'bool'>}))
[app] connecting event 'builder-inited' (500): <function _init_stuff at 0x0000020362B2D120> [id=26]
[app] setting up extension: 'sphinx.domains.index'
[app] adding domain: <class 'sphinx.domains.index.IndexDomain'>
[app] adding directive: ('index', <class 'sphinx.domains.index.IndexDirective'>)
[app] adding role: ('index', <sphinx.domains.index.IndexRole object at 0x00000203629E7140>)
[app] setting up extension: 'sphinx.domains.javascript'
[app] adding domain: <class 'sphinx.domains.javascript.JavaScriptDomain'>
[app] adding config value: ('javascript_maximum_signature_line_length', None, 'env', frozenset({<class 'int'>, <class 'NoneType'>}))
[app] adding config value: ('javascript_trailing_comma_in_multi_line_signatures', True, 'env', frozenset({<class 'bool'>}))
[app] setting up extension: 'sphinx.domains.math'
[app] adding domain: <class 'sphinx.domains.math.MathDomain'>
[app] adding role: ('eq', <sphinx.domains.math.MathReferenceRole object at 0x0000020362ADDFD0>)
[app] setting up extension: 'sphinx.domains.python'
[app] setting up extension: 'sphinx.directives'
[app] adding config value: ('strip_signature_backslash', False, 'env', frozenset({<class 'bool'>}))
[app] adding event: 'object-description-transform'
[app] adding domain: <class 'sphinx.domains.python.PythonDomain'>
[app] adding config value: ('python_use_unqualified_type_names', False, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('python_maximum_signature_line_length', None, 'env', frozenset({<class 'int'>, <class 'NoneType'>}))
[app] adding config value: ('python_trailing_comma_in_multi_line_signatures', True, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('python_display_short_literal_types', False, 'env', frozenset({<class 'bool'>}))
[app] connecting event 'object-description-transform' (500): <function filter_meta_fields at 0x0000020362BAFCE0> [id=27]
[app] connecting event 'missing-reference' (900): <function builtin_resolver at 0x0000020362BCF060> [id=28]
[app] setting up extension: 'sphinx.domains.rst'
[app] adding domain: <class 'sphinx.domains.rst.ReSTDomain'>
[app] setting up extension: 'sphinx.domains.std'
[app] adding domain: <class 'sphinx.domains.std.StandardDomain'>
[app] connecting event 'warn-missing-reference' (500): <function warn_missing_reference at 0x0000020360776AC0> [id=29][app] setting up extension: 'sphinx.directives'
[app] setting up extension: 'sphinx.directives.admonitions'
[app] adding directive: ('admonition', <class 'sphinx.directives.admonitions.Admonition'>)
[app] adding directive: ('attention', <class 'sphinx.directives.admonitions.Attention'>)
[app] adding directive: ('caution', <class 'sphinx.directives.admonitions.Caution'>)
[app] adding directive: ('danger', <class 'sphinx.directives.admonitions.Danger'>)
[app] adding directive: ('error', <class 'sphinx.directives.admonitions.Error'>)
[app] adding directive: ('hint', <class 'sphinx.directives.admonitions.Hint'>)
[app] adding directive: ('important', <class 'sphinx.directives.admonitions.Important'>)
[app] adding directive: ('note', <class 'sphinx.directives.admonitions.Note'>)
[app] adding directive: ('tip', <class 'sphinx.directives.admonitions.Tip'>)
[app] adding directive: ('warning', <class 'sphinx.directives.admonitions.Warning'>)
[app] adding directive: ('seealso', <class 'sphinx.directives.admonitions.SeeAlso'>)
[app] setting up extension: 'sphinx.directives.code'
[app] setting up extension: 'sphinx.directives.other'
[app] setting up extension: 'sphinx.directives.patches'
[app] setting up extension: 'sphinx.extension'
[app] connecting event 'config-inited' (800): <function verify_needs_extensions at 0x0000020360776D40> [id=30]
[app] setting up extension: 'sphinx.parsers'
[app] adding search source_parser: <class 'sphinx.parsers.RSTParser'>
[app] setting up extension: 'sphinx.registry'
[app] connecting event 'config-inited' (800): <function merge_source_suffix at 0x0000020360738860> [id=31]
[app] setting up extension: 'sphinx.roles'
[app] setting up extension: 'sphinx.transforms'
[app] adding transform: <class 'sphinx.transforms.ApplySourceWorkaround'>
[app] adding transform: <class 'sphinx.transforms.ExtraTranslatableNodes'>
[app] adding transform: <class 'sphinx.transforms.DefaultSubstitutions'>
[app] adding transform: <class 'sphinx.transforms.MoveModuleTargets'>
[app] adding transform: <class 'sphinx.transforms.HandleCodeBlocks'>
[app] adding transform: <class 'sphinx.transforms.SortIds'>
[app] adding transform: <class 'sphinx.transforms.DoctestTransform'>
[app] adding transform: <class 'sphinx.transforms.AutoNumbering'>
[app] adding transform: <class 'sphinx.transforms.AutoIndexUpgrader'>
[app] adding transform: <class 'sphinx.transforms.FilterSystemMessages'>
[app] adding transform: <class 'sphinx.transforms.UnreferencedFootnotesDetector'>
[app] adding transform: <class 'sphinx.transforms.SphinxSmartQuotes'>
[app] adding transform: <class 'sphinx.transforms.DoctreeReadEvent'>
[app] adding transform: <class 'sphinx.transforms.GlossarySorter'>
[app] adding transform: <class 'sphinx.transforms.ReorderConsecutiveTargetAndIndexNodes'>
[app] setting up extension: 'sphinx.transforms.compact_bullet_list'
[app] adding transform: <class 'sphinx.transforms.compact_bullet_list.RefOnlyBulletListTransform'>
[app] setting up extension: 'sphinx.transforms.i18n'
[app] adding transform: <class 'sphinx.transforms.i18n.PreserveTranslatableMessages'>
[app] adding transform: <class 'sphinx.transforms.i18n.Locale'>
[app] adding transform: <class 'sphinx.transforms.i18n.TranslationProgressTotaliser'>
[app] adding transform: <class 'sphinx.transforms.i18n.AddTranslationClasses'>
[app] adding transform: <class 'sphinx.transforms.i18n.RemoveTranslatableInline'>
[app] setting up extension: 'sphinx.transforms.references'
[app] adding transform: <class 'sphinx.transforms.references.SphinxDanglingReferences'>
[app] adding transform: <class 'sphinx.transforms.references.SphinxDomains'>
[app] setting up extension: 'sphinx.transforms.post_transforms'
[app] adding post transform: <class 'sphinx.transforms.post_transforms.ReferencesResolver'>
[app] adding post transform: <class 'sphinx.transforms.post_transforms.OnlyNodeTransform'>
[app] adding post transform: <class 'sphinx.transforms.post_transforms.SigElementFallbackTransform'>
[app] adding post transform: <class 'sphinx.transforms.post_transforms.PropagateDescDomain'>
[app] setting up extension: 'sphinx.transforms.post_transforms.code'
[app] adding post transform: <class 'sphinx.transforms.post_transforms.code.HighlightLanguageTransform'>
[app] adding post transform: <class 'sphinx.transforms.post_transforms.code.TrimDoctestFlagsTransform'>
[app] setting up extension: 'sphinx.transforms.post_transforms.images'
[app] adding post transform: <class 'sphinx.transforms.post_transforms.images.ImageDownloader'>
[app] adding post transform: <class 'sphinx.transforms.post_transforms.images.DataURIExtractor'>
[app] setting up extension: 'sphinx.versioning'
[app] adding transform: <class 'sphinx.versioning.UIDTransform'>
[app] setting up extension: 'sphinx.environment.collectors.dependencies'
[app] adding environment collector: <class 'sphinx.environment.collectors.dependencies.DependenciesCollector'>
[app] connecting event 'doctree-read' (500): <bound method DependenciesCollector.process_doc of <sphinx.environment.collectors.dependencies.DependenciesCollector object at 0x0000020362BF7D40>> [id=32]
[app] connecting event 'env-merge-info' (500): <bound method DependenciesCollector.merge_other of <sphinx.environment.collectors.dependencies.DependenciesCollector object at 0x0000020362BF7D40>> [id=33]
[app] connecting event 'env-purge-doc' (500): <bound method DependenciesCollector.clear_doc of <sphinx.environment.collectors.dependencies.DependenciesCollector object at 0x0000020362BF7D40>> [id=34]
[app] connecting event 'env-get-updated' (500): <bound method EnvironmentCollector.get_updated_docs of <sphinx.environment.collectors.dependencies.DependenciesCollector object at 0x0000020362BF7D40>> [id=35]
[app] connecting event 'env-get-outdated' (500): <bound method EnvironmentCollector.get_outdated_docs of <sphinx.environment.collectors.dependencies.DependenciesCollector object at 0x0000020362BF7D40>> [id=36]
[app] setting up extension: 'sphinx.environment.collectors.asset'
[app] adding environment collector: <class 'sphinx.environment.collectors.asset.ImageCollector'>
[app] connecting event 'doctree-read' (500): <bound method ImageCollector.process_doc of <sphinx.environment.collectors.asset.ImageCollector object at 0x00000203607FE330>> [id=37]
[app] connecting event 'env-merge-info' (500): <bound method ImageCollector.merge_other of <sphinx.environment.collectors.asset.ImageCollector object at 0x00000203607FE330>> [id=38]
[app] connecting event 'env-purge-doc' (500): <bound method ImageCollector.clear_doc of <sphinx.environment.collectors.asset.ImageCollector object at 0x00000203607FE330>> [id=39]
[app] connecting event 'env-get-updated' (500): <bound method EnvironmentCollector.get_updated_docs of <sphinx.environment.collectors.asset.ImageCollector object at 0x00000203607FE330>> [id=40]
[app] connecting event 'env-get-outdated' (500): <bound method EnvironmentCollector.get_outdated_docs of <sphinx.environment.collectors.asset.ImageCollector object at 0x00000203607FE330>> [id=41]
[app] adding environment collector: <class 'sphinx.environment.collectors.asset.DownloadFileCollector'>
[app] connecting event 'doctree-read' (500): <bound method DownloadFileCollector.process_doc of <sphinx.environment.collectors.asset.DownloadFileCollector object at 0x00000203618F2330>> [id=42]
[app] connecting event 'env-merge-info' (500): <bound method DownloadFileCollector.merge_other of <sphinx.environment.collectors.asset.DownloadFileCollector object at 0x00000203618F2330>> [id=43]
[app] connecting event 'env-purge-doc' (500): <bound method DownloadFileCollector.clear_doc of <sphinx.environment.collectors.asset.DownloadFileCollector object at 0x00000203618F2330>> [id=44]
[app] connecting event 'env-get-updated' (500): <bound method EnvironmentCollector.get_updated_docs of <sphinx.environment.collectors.asset.DownloadFileCollector object at 0x00000203618F2330>> [id=45]
[app] connecting event 'env-get-outdated' (500): <bound method EnvironmentCollector.get_outdated_docs of <sphinx.environment.collectors.asset.DownloadFileCollector object at 0x00000203618F2330>> [id=46]
[app] setting up extension: 'sphinx.environment.collectors.metadata'
[app] adding environment collector: <class 'sphinx.environment.collectors.metadata.MetadataCollector'>
[app] connecting event 'doctree-read' (500): <bound method MetadataCollector.process_doc of <sphinx.environment.collectors.metadata.MetadataCollector object at 0x0000020362D21E20>> [id=47]
[app] connecting event 'env-merge-info' (500): <bound method MetadataCollector.merge_other of <sphinx.environment.collectors.metadata.MetadataCollector object at 0x0000020362D21E20>> [id=48]
[app] connecting event 'env-purge-doc' (500): <bound method MetadataCollector.clear_doc of <sphinx.environment.collectors.metadata.MetadataCollector object at 0x0000020362D21E20>> [id=49]
[app] connecting event 'env-get-updated' (500): <bound method EnvironmentCollector.get_updated_docs of <sphinx.environment.collectors.metadata.MetadataCollector object at 0x0000020362D21E20>> [id=50]
[app] connecting event 'env-get-outdated' (500): <bound method EnvironmentCollector.get_outdated_docs of <sphinx.environment.collectors.metadata.MetadataCollector object at 0x0000020362D21E20>> [id=51]
[app] setting up extension: 'sphinx.environment.collectors.title'
[app] adding environment collector: <class 'sphinx.environment.collectors.title.TitleCollector'>
[app] connecting event 'doctree-read' (500): <bound method TitleCollector.process_doc of <sphinx.environment.collectors.title.TitleCollector object at 0x0000020362D21E80>> [id=52]
[app] connecting event 'env-merge-info' (500): <bound method TitleCollector.merge_other of <sphinx.environment.collectors.title.TitleCollector object at 0x0000020362D21E80>> [id=53]
[app] connecting event 'env-purge-doc' (500): <bound method TitleCollector.clear_doc of <sphinx.environment.collectors.title.TitleCollector object at 0x0000020362D21E80>> [id=54]
[app] connecting event 'env-get-updated' (500): <bound method EnvironmentCollector.get_updated_docs of <sphinx.environment.collectors.title.TitleCollector object at 0x0000020362D21E80>> [id=55]
[app] connecting event 'env-get-outdated' (500): <bound method EnvironmentCollector.get_outdated_docs of <sphinx.environment.collectors.title.TitleCollector object at 0x0000020362D21E80>> [id=56]
[app] setting up extension: 'sphinx.environment.collectors.toctree'
[app] adding environment collector: <class 'sphinx.environment.collectors.toctree.TocTreeCollector'>
[app] connecting event 'doctree-read' (500): <bound method TocTreeCollector.process_doc of <sphinx.environment.collectors.toctree.TocTreeCollector object at 0x0000020362D21FD0>> [id=57]
[app] connecting event 'env-merge-info' (500): <bound method TocTreeCollector.merge_other of <sphinx.environment.collectors.toctree.TocTreeCollector object at 0x0000020362D21FD0>> [id=58]
[app] connecting event 'env-purge-doc' (500): <bound method TocTreeCollector.clear_doc of <sphinx.environment.collectors.toctree.TocTreeCollector object at 0x0000020362D21FD0>> [id=59]
[app] connecting event 'env-get-updated' (500): <bound method TocTreeCollector.get_updated_docs of <sphinx.environment.collectors.toctree.TocTreeCollector object at 0x0000020362D21FD0>> [id=60]
[app] connecting event 'env-get-outdated' (500): <bound method EnvironmentCollector.get_outdated_docs of <sphinx.environment.collectors.toctree.TocTreeCollector object at 0x0000020362D21FD0>> [id=61]
[app] setting up extension: 'alabaster'
[app] adding HTML theme: 'alabaster', 'D:\\Repos\\Spyder\\spyder-api-docs\\.nox\\_execute\\Lib\\site-packages\\alabaster'
[app] connecting event 'html-page-context' (500): <function update_context at 0x0000020362D3F240> [id=62]
[app] setting up extension: 'sphinxcontrib.applehelp'
[app] setting up extension: 'sphinx.builders.html'
[app] adding builder: <class 'sphinxcontrib.applehelp.AppleHelpBuilder'>
[app] adding config value: ('applehelp_bundle_name', <function setup.<locals>.<lambda> at 0x0000020362D3E020>, 'applehelp', ())
[app] adding config value: ('applehelp_bundle_id', None, 'applehelp', [<class 'str'>])
[app] adding config value: ('applehelp_dev_region', 'en-us', 'applehelp', ())
[app] adding config value: ('applehelp_bundle_version', '1', 'applehelp', ())
[app] adding config value: ('applehelp_icon', None, 'applehelp', [<class 'str'>])
[app] adding config value: ('applehelp_kb_product', <function setup.<locals>.<lambda> at 0x0000020362D3F4C0>, 'applehelp', ())
[app] adding config value: ('applehelp_kb_url', None, 'applehelp', [<class 'str'>])
[app] adding config value: ('applehelp_remote_url', None, 'applehelp', [<class 'str'>])
[app] adding config value: ('applehelp_index_anchors', False, 'applehelp', [<class 'str'>])
[app] adding config value: ('applehelp_min_term_length', None, 'applehelp', [<class 'str'>])
[app] adding config value: ('applehelp_stopwords', <function setup.<locals>.<lambda> at 0x0000020362C202C0>, 'applehelp', ())
[app] adding config value: ('applehelp_locale', <function setup.<locals>.<lambda> at 0x0000020362D6F740>, 'applehelp', ())
[app] adding config value: ('applehelp_title', <function setup.<locals>.<lambda> at 0x0000020362D6F7E0>, 'applehelp', ())
[app] adding config value: ('applehelp_codesign_identity', <function setup.<locals>.<lambda> at 0x0000020362D6F880>, 'applehelp', ())
[app] adding config value: ('applehelp_codesign_flags', <function setup.<locals>.<lambda> at 0x0000020362D6F920>, 'applehelp', ())
[app] adding config value: ('applehelp_indexer_path', '/usr/bin/hiutil', 'applehelp', ())
[app] adding config value: ('applehelp_codesign_path', '/usr/bin/codesign', 'applehelp', ())
[app] adding config value: ('applehelp_disable_external_tools', False, 'applehelp', ())
[app] setting up extension: 'sphinxcontrib.devhelp'
[app] setting up extension: 'sphinx.builders.html'
[app] adding builder: <class 'sphinxcontrib.devhelp.DevhelpBuilder'>
[app] adding config value: ('devhelp_basename', <function setup.<locals>.<lambda> at 0x000002036079FF60>, 'devhelp', ())
[app] setting up extension: 'sphinxcontrib.htmlhelp'
[app] setting up extension: 'sphinx.builders.html'
[app] adding builder: <class 'sphinxcontrib.htmlhelp.HTMLHelpBuilder'>
[app] adding config value: ('htmlhelp_basename', <function default_htmlhelp_basename at 0x000002036159B7E0>, '', ())
[app] adding config value: ('htmlhelp_file_suffix', None, 'html', [<class 'str'>])
[app] adding config value: ('htmlhelp_link_suffix', None, 'html', [<class 'str'>])
[app] setting up extension: 'sphinxcontrib.serializinghtml'
[app] setting up extension: 'sphinx.builders.html'
[app] adding builder: <class 'sphinxcontrib.serializinghtml.JSONHTMLBuilder'>
[app] adding builder: <class 'sphinxcontrib.serializinghtml.PickleHTMLBuilder'>
[app] setting up extension: 'sphinxcontrib.qthelp'
[app] setting up extension: 'sphinx.builders.html'
[app] adding builder: <class 'sphinxcontrib.qthelp.QtHelpBuilder'>
[app] adding config value: ('qthelp_basename', <function setup.<locals>.<lambda> at 0x0000020362D6FBA0>, 'html', ())
[app] adding config value: ('qthelp_namespace', None, 'html', [<class 'str'>])
[app] adding config value: ('qthelp_theme', 'nonav', 'html', ())
[app] adding config value: ('qthelp_theme_options', {}, 'html', ())
[app] setting up extension: 'sphinx.ext.autodoc'
[app] adding config value: ('autoclass_content', 'class', 'env', ENUM('both', 'class', 'init'))
[app] adding config value: ('autodoc_member_order', 'alphabetical', 'env', ENUM('alphabetical', 'bysource', 'groupwise'))
[app] adding config value: ('autodoc_class_signature', 'mixed', 'env', ENUM('mixed', 'separated'))
[app] adding config value: ('autodoc_default_options', {}, 'env', frozenset({<class 'dict'>}))
[app] adding config value: ('autodoc_docstring_signature', True, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('autodoc_mock_imports', [], 'env', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('autodoc_typehints', 'signature', 'env', ENUM('both', 'description', 'none', 'signature'))[app] adding config value: ('autodoc_typehints_description_target', 'all', 'env', ENUM('all', 'documented', 'documented_params'))
[app] adding config value: ('autodoc_type_aliases', {}, 'env', frozenset({<class 'dict'>}))
[app] adding config value: ('autodoc_typehints_format', 'short', 'env', ENUM('fully-qualified', 'short'))
[app] adding config value: ('autodoc_warningiserror', True, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('autodoc_inherit_docstrings', True, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('autodoc_preserve_defaults', False, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('autodoc_use_type_comments', True, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('autodoc_use_legacy_class_based', False, 'env', frozenset({<class 'bool'>}))
[app] adding event: 'autodoc-before-process-signature'
[app] adding event: 'autodoc-process-docstring'
[app] adding event: 'autodoc-process-signature'
[app] adding event: 'autodoc-skip-member'
[app] adding event: 'autodoc-process-bases'
[app] connecting event 'object-description-transform' (500): <function _merge_typehints at 0x0000020362E39800> [id=63][app] connecting event 'config-inited' (500): <function _register_directives at 0x0000020362E396C0> [id=64]
[app] setting up extension: 'sphinx.ext.autosummary'
[app] setting up extension: 'sphinx.ext.autodoc'
[app] adding node: (<class 'sphinx.ext.autosummary.autosummary_toc'>, {'html': (<function autosummary_toc_visit_html at 0x00000203615A9080>, <function autosummary_noop at 0x0000020362E39F80>), 'latex': (<function autosummary_noop at 0x0000020362E39F80>, <function autosummary_noop at 0x0000020362E39F80>), 'text': (<function autosummary_noop at 0x0000020362E39F80>, <function autosummary_noop at 0x0000020362E39F80>), 'man': (<function autosummary_noop at 0x0000020362E39F80>, <function autosummary_noop at 0x0000020362E39F80>), 'texinfo': (<function autosummary_noop at 0x0000020362E39F80>, <function autosummary_noop at 0x0000020362E39F80>)})
[app] adding translation_handlers: <class 'sphinx.ext.autosummary.autosummary_toc'>, {'html': (<function autosummary_toc_visit_html at 0x00000203615A9080>, <function autosummary_noop at 0x0000020362E39F80>), 'latex': (<function autosummary_noop at 0x0000020362E39F80>, <function autosummary_noop at 0x0000020362E39F80>), 'text': (<function autosummary_noop at 0x0000020362E39F80>, <function autosummary_noop at 0x0000020362E39F80>), 'man': (<function autosummary_noop at 0x0000020362E39F80>, <function autosummary_noop at 0x0000020362E39F80>), 'texinfo': (<function autosummary_noop at 0x0000020362E39F80>, <function autosummary_noop at 0x0000020362E39F80>)}
[app] adding node: (<class 'sphinx.ext.autosummary.autosummary_table'>, {'html': (<function autosummary_table_visit_html at 0x0000020362E3A020>, <function autosummary_noop at 0x0000020362E39F80>), 'latex': (<function autosummary_noop at 0x0000020362E39F80>, <function autosummary_noop at 0x0000020362E39F80>), 'text': (<function autosummary_noop at 0x0000020362E39F80>, <function autosummary_noop at 0x0000020362E39F80>), 'man': (<function autosummary_noop at 0x0000020362E39F80>, <function autosummary_noop at 0x0000020362E39F80>), 'texinfo': (<function autosummary_noop at 0x0000020362E39F80>, <function autosummary_noop at 0x0000020362E39F80>)})
[app] adding translation_handlers: <class 'sphinx.ext.autosummary.autosummary_table'>, {'html': (<function autosummary_table_visit_html at 0x0000020362E3A020>, <function autosummary_noop at 0x0000020362E39F80>), 'latex': (<function autosummary_noop at 0x0000020362E39F80>, <function autosummary_noop at 0x0000020362E39F80>), 'text': (<function autosummary_noop at 0x0000020362E39F80>, <function autosummary_noop at 0x0000020362E39F80>), 'man': (<function autosummary_noop at 0x0000020362E39F80>, <function autosummary_noop at 0x0000020362E39F80>), 'texinfo': (<function autosummary_noop at 0x0000020362E39F80>, <function autosummary_noop at 0x0000020362E39F80>)}
[app] adding directive: ('autosummary', <class 'sphinx.ext.autosummary.Autosummary'>)
[app] adding role: ('autolink', <sphinx.ext.autosummary.AutoLink object at 0x00000203616F67E0>)
[app] connecting event 'builder-inited' (500): <function process_generate_options at 0x0000020362E3AC00> [id=65]
[app] adding config value: ('autosummary_context', {}, 'env', frozenset({<class 'dict'>}))
[app] adding config value: ('autosummary_filename_map', {}, 'html', frozenset({<class 'dict'>}))
[app] adding config value: ('autosummary_generate', True, 'env', frozenset({<class 'bool'>, <class 'list'>}))
[app] adding config value: ('autosummary_generate_overwrite', True, '', frozenset({<class 'bool'>}))
[app] adding config value: ('autosummary_mock_imports', <function setup.<locals>.<lambda> at 0x0000020362D83F60>, 'env', frozenset({<class 'tuple'>, <class 'list'>}))
[app] adding config value: ('autosummary_imported_members', False, '', frozenset({<class 'bool'>}))
[app] adding config value: ('autosummary_ignore_module_all', True, 'env', frozenset({<class 'bool'>}))
[app] setting up extension: 'sphinx.ext.githubpages'
[app] connecting event 'env-updated' (500): <function create_nojekyll_and_cname at 0x0000020362E3AF20> [id=66]
[app] setting up extension: 'sphinx.ext.intersphinx'
[app] adding config value: ('intersphinx_mapping', {}, 'env', frozenset({<class 'dict'>}))
[app] adding config value: ('intersphinx_resolve_self', '', 'env', frozenset({<class 'str'>}))
[app] adding config value: ('intersphinx_cache_limit', 5, '', frozenset({<class 'int'>}))
[app] adding config value: ('intersphinx_timeout', None, '', frozenset({<class 'int'>, <class 'NoneType'>, <class 'float'>}))
[app] adding config value: ('intersphinx_disabled_reftypes', ['std:doc'], 'env', frozenset({<class 'tuple'>, <class 'list'>, <class 'set'>, <class 'frozenset'>}))
[app] connecting event 'config-inited' (800): <function validate_intersphinx_mapping at 0x0000020362E3B880> [id=67]
[app] connecting event 'builder-inited' (500): <function load_mappings at 0x0000020362E39B20> [id=68]
[app] connecting event 'source-read' (500): <function install_dispatcher at 0x0000020362E576A0> [id=69]
[app] connecting event 'missing-reference' (500): <function missing_reference at 0x0000020362E57600> [id=70]
[app] adding post transform: <class 'sphinx.ext.intersphinx._resolve.IntersphinxRoleResolver'>
[app] setting up extension: 'sphinx.ext.napoleon'
[app] setting up extension: 'sphinx.ext.autodoc'
[app] connecting event 'autodoc-process-docstring' (500): <function _process_docstring at 0x0000020362E6B380> [id=71] [app] connecting event 'autodoc-skip-member' (500): <function _skip_member at 0x0000020362E6B420> [id=72]
[app] adding config value: ('napoleon_google_docstring', True, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('napoleon_numpy_docstring', True, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('napoleon_include_init_with_doc', False, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('napoleon_include_private_with_doc', False, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('napoleon_include_special_with_doc', False, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('napoleon_use_admonition_for_examples', False, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('napoleon_use_admonition_for_notes', False, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('napoleon_use_admonition_for_references', False, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('napoleon_use_ivar', False, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('napoleon_use_param', True, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('napoleon_use_rtype', True, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('napoleon_use_keyword', True, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('napoleon_preprocess_types', False, 'env', frozenset({<class 'bool'>}))
[app] adding config value: ('napoleon_type_aliases', None, 'env', frozenset({<class 'NoneType'>, <class 'dict'>}))
[app] adding config value: ('napoleon_custom_sections', None, 'env', frozenset({<class 'NoneType'>, <class 'tuple'>, <class 'list'>}))
[app] adding config value: ('napoleon_attr_annotations', True, 'env', frozenset({<class 'bool'>}))
[app] setting up extension: 'sphinx.ext.viewcode'
[app] adding config value: ('viewcode_import', None, '', frozenset({<class 'NoneType'>}))
[app] adding config value: ('viewcode_enable_epub', False, '', frozenset({<class 'bool'>}))
[app] adding config value: ('viewcode_follow_imported_members', True, '', frozenset({<class 'bool'>}))
[app] adding config value: ('viewcode_line_numbers', False, 'env', frozenset({<class 'bool'>}))
[app] connecting event 'doctree-read' (500): <function doctree_read at 0x0000020362E6B740> [id=73]
[app] connecting event 'env-merge-info' (500): <function env_merge_info at 0x0000020362E6B6A0> [id=74]
[app] connecting event 'env-purge-doc' (500): <function env_purge_doc at 0x0000020362E6B7E0> [id=75]
[app] connecting event 'html-collect-pages' (500): <function collect_pages at 0x0000020362E6BBA0> [id=76]
[app] adding event: 'viewcode-find-source'
[app] adding event: 'viewcode-follow-imported'
[app] adding post transform: <class 'sphinx.ext.viewcode.ViewcodeAnchorTransform'>
making output directory... done
[app] emitting event: 'config-inited'(Config(project='Spyder Developer Docs', author='Spyder-API-Docs Contributors', project_copyright='', copyright=' 2020-2025 Spyder-API-Docs Contributors; MIT License', version='6', release='6', today='', today_fmt=None, language='en', locale_dirs=['locales'], figure_language_filename='{root}.{language}{ext}', gettext_allow_fuzzy_translations=False, translation_progress_classes=False, master_doc='index', root_doc='index', source_suffix={'.rst': 'restructuredtext'}, source_encoding='utf-8-sig', exclude_patterns=['_build', 'Thumbs.db', '.DS_Store', '*.md'], include_patterns=['**'], default_role=None, add_function_parentheses=True, add_module_names=True, toc_object_entries=True, toc_object_entries_show_parents='domain', trim_footnote_reference_space=False, show_authors=False, pygments_style='sphinx', highlight_language='default', highlight_options={}, templates_path=['_templates'], template_bridge=None, keep_warnings=False, suppress_warnings=[], show_warning_types=True, modindex_common_prefix=[], rst_epilog=None, rst_prolog=None, trim_doctest_flags=True, primary_domain='py', needs_sphinx='5', needs_extensions={}, manpages_url=None, nitpicky=False, nitpick_ignore=[], nitpick_ignore_regex=[], numfig=False, numfig_secnum_depth=1, numfig_format={}, maximum_signature_line_length=None, math_number_all=False, math_eqref_format=None, math_numfig=True, math_numsep='.', tls_verify=True, tls_cacerts=None, user_agent=None, smartquotes=True, smartquotes_action='qDe', smartquotes_excludes={'languages': ['ja', 'zh_CN', 'zh_TW'], 'builders': ['man', 'text']}, option_emphasise_placeholders=False, epub_basename='SpyderDeveloperDocs', epub_version=3.0, epub_theme='epub', epub_theme_options={}, epub_title='Spyder Developer Docs', epub_author='Spyder-API-Docs Contributors', epub_language='en', epub_publisher='Spyder-API-Docs Contributors', epub_copyright=' 2020-2025 Spyder-API-Docs Contributors; MIT License', epub_identifier='unknown', epub_scheme='unknown', epub_uid='unknown', epub_cover=(), epub_guide=(), epub_pre_files=[], epub_post_files=[], epub_css_files=[], epub_exclude_files=[], epub_tocdepth=3, epub_tocdup=True, epub_tocscope='default', epub_fix_images=False, epub_max_image_width=0, epub_show_urls='inline', epub_use_index=True, epub_description='unknown', epub_contributor='unknown', epub_writing_mode='horizontal', html_theme='sphinx_book_theme', html_theme_path=[], html_theme_options={'repository_url': 'https://github.com/spyder-ide/spyder-api-docs', 'use_repository_button': True, 'use_issues_button': True, 'use_edit_page_button': True}, html_title='Spyder Developer Docs 6 documentation', html_short_title='Spyder Developer Docs 6 documentation', html_style=None, html_logo='_static/images/spyder_logo.svg', html_favicon='_static/favicon.ico', html_css_files=[], html_js_files=[], html_static_path=['_static'], html_extra_path=[], html_last_updated_fmt=None, html_last_updated_use_utc=False, html_sidebars={}, html_additional_pages={}, html_domain_indices=True, html_permalinks=True, html_permalinks_icon='¶', html_use_index=True, html_split_index=False, html_copy_source=True, html_show_sourcelink=True, html_sourcelink_suffix='.txt', html_use_opensearch='', html_file_suffix=None, html_link_suffix=None, html_show_copyright=True, html_show_search_summary=True, html_show_sphinx=True, html_context={}, html_output_encoding='utf-8', html_compact_lists=True, html_secnumber_suffix='. ', html_search_language=None, html_search_options={}, html_search_scorer='', html_scaled_image_link=True, html_baseurl='', html_codeblock_linenos_style='inline', html_math_renderer=None, html4_writer=False, mathjax_path='https://cdn.jsdelivr.net/npm/mathjax@4/tex-mml-chtml.js', mathjax_options={}, mathjax_inline=['\\(', '\\)'], mathjax_display=['\\[', '\\]'], mathjax_config=None, mathjax2_config=None, mathjax3_config=None, mathjax4_config=None, mathjax_config_path='', gettext_compact=True, gettext_location=True, gettext_uuid=False, gettext_auto_build=True, gettext_additional_targets=[], gettext_last_translator='FULL NAME <EMAIL@ADDRESS>', gettext_language_team='LANGUAGE <[email protected]>', latex_engine='pdflatex', latex_documents=[('index', 'spyder_api_docs.tex', 'Spyder Developer Docs', 'Spyder-API-Docs Contributors', 'manual')], latex_logo=None, latex_appendices=[], latex_use_latex_multicolumn=False, latex_use_xindy=False, latex_toplevel_sectioning=None, latex_domain_indices=True, latex_show_urls='no', latex_show_pagerefs=False, latex_elements={}, latex_additional_files=[], latex_table_style=['booktabs', 'colorrows'], latex_theme='manual', latex_theme_options={}, latex_theme_path=[], latex_docclass={}, linkcheck_ignore=['https://(www\\.)?github\\.com/.+/compare/.+#diff-.+', 'https://(www\\.)?packages\\.gentoo\\.org/?.*', 'https://(www\\.)?software\\.opensuse\\.org/?.*', 'https://(www\\.)?packages\\.ubuntu\\.com/?.*', 'https://(www\\.)?github\\.com/.+/commit/.+', 'https://(www\\.)?figshare\\.com/?.*', 'https://(www\\.)?(\\w+\\.)?reddit\\.com/?.*', 'https://(www\\.)?(\\w+\\.)?(stackoverflow|stackexchange)\\.com/?.*'], linkcheck_exclude_documents=[], linkcheck_allowed_redirects=_SENTINEL_LAR, linkcheck_auth=[], linkcheck_request_headers={}, linkcheck_retries=1, linkcheck_timeout=30, linkcheck_workers=5, linkcheck_anchors=True, linkcheck_anchors_ignore=['^!'], linkcheck_anchors_ignore_for_url=(), linkcheck_rate_limit_timeout=300.0, linkcheck_allow_unauthorized=False, linkcheck_report_timeouts_as_broken=False, linkcheck_case_insensitive_urls=(), man_pages=[('index', 'spyder_api_docs', 'Spyder Developer Docs', ['Spyder-API-Docs Contributors'], 1)], man_show_urls=False, man_make_section_directory=False, singlehtml_sidebars={}, texinfo_documents=[('index', 'spyder_api_docs', 'Spyder Developer Docs', 'Spyder-API-Docs Contributors', 'spyder_api_docs', 'The developer docs for the Spyder scientific Python IDE.', 'Miscellaneous')], texinfo_appendices=[], texinfo_elements={}, texinfo_domain_indices=True, texinfo_show_urls='footnote', texinfo_no_detailmenu=False, texinfo_cross_references=True, text_sectionchars='*=-~"+`', text_newlines='unix', text_add_secnumbers=True, text_secnumber_suffix='. ', xml_pretty=True, c_id_attributes=[], c_paren_attributes=[], c_extra_keywords=frozenset({'static_assert', 'imaginary', 'complex', 'thread_local', 'alignof', 'alignas', 'bool', 'noreturn'}), c_maximum_signature_line_length=None, cpp_index_common_prefix=[], cpp_id_attributes=[], cpp_paren_attributes=[], cpp_maximum_signature_line_length=None, cpp_debug_lookup=False, cpp_debug_show_tree=False, javascript_maximum_signature_line_length=None, javascript_trailing_comma_in_multi_line_signatures=True, strip_signature_backslash=False, python_use_unqualified_type_names=False, python_maximum_signature_line_length=None, python_trailing_comma_in_multi_line_signatures=True, python_display_short_literal_types=False, applehelp_bundle_name='SpyderDeveloperDocs', applehelp_bundle_id=None, applehelp_dev_region='en-us', applehelp_bundle_version='1', applehelp_icon=None, applehelp_kb_product='SpyderDeveloperDocs-6', applehelp_kb_url=None, applehelp_remote_url=None, applehelp_index_anchors=False, applehelp_min_term_length=None, applehelp_stopwords='en', applehelp_locale='en', applehelp_title='Spyder Developer Docs Help', applehelp_codesign_identity=None, applehelp_codesign_flags=[], applehelp_indexer_path='/usr/bin/hiutil', applehelp_codesign_path='/usr/bin/codesign', applehelp_disable_external_tools=False, devhelp_basename='SpyderDeveloperDocs', htmlhelp_basename='spyder_api_doc', htmlhelp_file_suffix=None, htmlhelp_link_suffix=None, qthelp_basename='SpyderDeveloperDocs', qthelp_namespace=None, qthelp_theme='nonav', qthelp_theme_options={}, autoclass_content='class', autodoc_member_order='bysource', autodoc_class_signature='mixed', autodoc_default_options={'members': True, 'private-members': '_', 'special-members': True, 'show-inheritance': True}, autodoc_docstring_signature=True, autodoc_mock_imports=[], autodoc_typehints='signature', autodoc_typehints_description_target='all', autodoc_type_aliases={}, autodoc_typehints_format='short', autodoc_warningiserror=True, autodoc_inherit_docstrings=True, autodoc_preserve_defaults=False, autodoc_use_type_comments=True, autodoc_use_legacy_class_based=False, autosummary_context={'ignore_module_pattern': 'tests', 'ignore_modules': ['spyder.api.editor', 'spyder.api.plugins.enum', 'spyder.api.plugins.new_api', 'spyder.api.plugins.tests']}, autosummary_filename_map={}, autosummary_generate=True, autosummary_generate_overwrite=True, autosummary_mock_imports=[], autosummary_imported_members=False, autosummary_ignore_module_all=True, intersphinx_mapping={'python': ('https://docs.python.org/', None), 'spyder': ('https://docs.spyder-ide.org/current/', None)}, intersphinx_resolve_self='', intersphinx_cache_limit=5, intersphinx_timeout=None, intersphinx_disabled_reftypes=['std:doc'], napoleon_google_docstring=True, napoleon_numpy_docstring=True, napoleon_include_init_with_doc=False, napoleon_include_private_with_doc=False, napoleon_include_special_with_doc=False, napoleon_use_admonition_for_examples=False, napoleon_use_admonition_for_notes=False, napoleon_use_admonition_for_references=False, napoleon_use_ivar=False, napoleon_use_param=True, napoleon_use_rtype=True, napoleon_use_keyword=True, napoleon_preprocess_types=False, napoleon_type_aliases=None, napoleon_custom_sections=None, napoleon_attr_annotations=True, viewcode_import=None, viewcode_enable_epub=False, viewcode_follow_imported_members=True, viewcode_line_numbers=False),)
[app] adding directive: ('automodule', <class 'sphinx.ext.autodoc._directive.AutodocDirective'>)
[app] adding directive: ('autoclass', <class 'sphinx.ext.autodoc._directive.AutodocDirective'>)
[app] adding directive: ('autoexception', <class 'sphinx.ext.autodoc._directive.AutodocDirective'>)
[app] adding directive: ('autofunction', <class 'sphinx.ext.autodoc._directive.AutodocDirective'>)
[app] adding directive: ('autodecorator', <class 'sphinx.ext.autodoc._directive.AutodocDirective'>)
[app] adding directive: ('automethod', <class 'sphinx.ext.autodoc._directive.AutodocDirective'>)
[app] adding directive: ('autoproperty', <class 'sphinx.ext.autodoc._directive.AutodocDirective'>)
[app] adding directive: ('autoattribute', <class 'sphinx.ext.autodoc._directive.AutodocDirective'>)
[app] adding directive: ('autodata', <class 'sphinx.ext.autodoc._directive.AutodocDirective'>)
[app] adding directive: ('autotype', <class 'sphinx.ext.autodoc._directive.AutodocDirective'>)
locale_dir D:\Repos\Spyder\spyder-api-docs\docs\locales\en\LC_MESSAGES does not exist
[app] setting up extension: 'sphinx_book_theme'
[app] adding HTML theme: 'sphinx_book_theme', WindowsPath('D:/Repos/Spyder/spyder-api-docs/.nox/_execute/Lib/site-packages/sphinx_book_theme/theme/sphinx_book_theme')
[app] adding js_file: 'scripts/sphinx-book-theme.js', {'priority': 500}
[app] connecting event 'builder-inited' (500): <function update_mode_thebe_config at 0x00000203632723E0> [id=77]
[app] connecting event 'builder-inited' (500): <function check_deprecation_keys at 0x0000020363272480> [id=78]
[app] connecting event 'builder-inited' (500): <function update_sourcename at 0x00000203632718A0> [id=79]
[app] connecting event 'builder-inited' (500): <function update_context_with_repository_info at 0x0000020363271940> [id=80]
[app] connecting event 'html-page-context' (500): <function add_metadata_to_page at 0x0000020362EA99E0> [id=81]
[app] connecting event 'html-page-context' (500): <function hash_html_assets at 0x0000020363272340> [id=82]
[app] connecting event 'html-page-context' (500): <function update_templates at 0x00000203632725C0> [id=83]
[app] connecting event 'config-inited' (500): <function update_general_config at 0x0000020363272520> [id=84]
[app] adding node: (<class 'sphinx_book_theme.nodes.SideNoteNode'>, {'html': (<function visit_SideNoteNode at 0x0000020363271080>, <function depart_SideNoteNode at 0x0000020363271260>)})
[app] adding translation_handlers: <class 'sphinx_book_theme.nodes.SideNoteNode'>, {'html': (<function visit_SideNoteNode at 0x0000020363271080>, <function depart_SideNoteNode at 0x0000020363271260>)}
[app] connecting event 'html-page-context' (500): <function prep_header_buttons at 0x0000020363271760> [id=85]
[app] connecting event 'html-page-context' (501): <function add_launch_buttons at 0x0000020363271BC0> [id=86]
[app] connecting event 'html-page-context' (501): <function add_source_buttons at 0x0000020363271F80> [id=87]
[app] connecting event 'html-page-context' (501): <function add_header_buttons at 0x0000020363271800> [id=88]
[app] adding directive: ('margin', <class 'sphinx_book_theme.directives.Margin'>)
[app] adding post transform: <class 'sphinx_book_theme._transforms.HandleFootnoteTransform'>
[app] setting up extension: 'pydata_sphinx_theme'
[app] adding HTML theme: 'pydata_sphinx_theme', 'D:\\Repos\\Spyder\\spyder-api-docs\\.nox\\_execute\\Lib\\site-packages\\pydata_sphinx_theme\\theme\\pydata_sphinx_theme'
[app] adding post transform: <class 'pydata_sphinx_theme.short_link.ShortenLinkTransform'>
[app] connecting event 'builder-inited' (500): <function setup_translators at 0x0000020363270A40> [id=89]
[app] connecting event 'builder-inited' (500): <function update_config at 0x0000020362EA9EE0> [id=90]
[app] connecting event 'html-page-context' (500): <function _fix_canonical_url at 0x0000020363270D60> [id=91]
[app] connecting event 'html-page-context' (500): <function setup_edit_url at 0x0000020362EA9E40> [id=92]
[app] connecting event 'html-page-context' (500): <function add_toctree_functions at 0x0000020362EAB2E0> [id=93]
[app] connecting event 'html-page-context' (500): <function update_and_remove_templates at 0x00000203632709A0> [id=94][app] connecting event 'html-page-context' (500): <function setup_logo_path at 0x0000020362EAA0C0> [id=95]
[app] connecting event 'html-page-context' (500): <function set_secondary_sidebar_items at 0x0000020362EAA5C0> [id=96][app] connecting event 'build-finished' (500): <function overwrite_pygments_css at 0x0000020362EAAC00> [id=97]
[app] connecting event 'build-finished' (500): <function copy_logo_images at 0x0000020362EAA840> [id=98]
[app] emitting event: 'builder-inited'()
[autosummary] generating autosummary for: index.rst, plugin_development.rst, reference.rst
[app] emitting event: 'autodoc-skip-member'('data', '__all__', ['__version__'], False, {})
[app] emitting event: 'autodoc-skip-member'('data', '__builtins__', {'__name__': 'builtins', '__doc__': "Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all 'built-in'\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.", '__package__': '', '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), '__build_class__': <built-in function __build_class__>, '__import__': <built-in function __import__>, 'abs': <built-in function abs>, 'all': <built-in function all>, 'any': <built-in function any>, 'ascii': <built-in function ascii>, 'bin': <built-in function bin>, 'breakpoint': <built-in function breakpoint>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'compile': <built-in function compile>, 'delattr': <built-in function delattr>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'eval': <built-in function eval>, 'exec': <built-in function exec>, 'format': <built-in function format>, 'getattr': <built-in function getattr>, 'globals': <built-in function globals>, 'hasattr': <built-in function hasattr>, 'hash': <built-in function hash>, 'hex': <built-in function hex>, 'id': <built-in function id>, 'input': <built-in function input>, 'isinstance': <built-in function isinstance>, 'issubclass': <built-in function issubclass>, 'iter': <built-in function iter>, 'aiter': <built-in function aiter>, 'len': <built-in function len>, 'locals': <built-in function locals>, 'max': <built-in function max>, 'min': <built-in function min>, 'next': <built-in function next>, 'anext': <built-in function anext>, 'oct': <built-in function oct>, 'ord': <built-in function ord>, 'pow': <built-in function pow>, 'print': <built-in function print>, 'repr': <built-in function repr>, 'round': <built-in function round>, 'setattr': <built-in function setattr>, 'sorted': <built-in function sorted>, 'sum': <built-in function sum>, 'vars': <built-in function vars>, 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': <class 'bool'>, 'memoryview': <class 'memoryview'>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'classmethod': <class 'classmethod'>, 'complex': <class 'complex'>, 'dict': <class 'dict'>, 'enumerate': <class 'enumerate'>, 'filter': <class 'filter'>, 'float': <class 'float'>, 'frozenset': <class 'frozenset'>, 'property': <class 'property'>, 'int': <class 'int'>, 'list': <class 'list'>, 'map': <class 'map'>, 'object': <class 'object'>, 'range': <class 'range'>, 'reversed': <class 'reversed'>, 'set': <class 'set'>, 'slice': <class 'slice'>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'zip': <class 'zip'>, '__debug__': True, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'Exception': <class 'Exception'>, 'GeneratorExit': <class 'GeneratorExit'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'SystemExit': <class 'SystemExit'>, 'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BufferError': <class 'BufferError'>, 'EOFError': <class 'EOFError'>, 'ImportError': <class 'ImportError'>, 'LookupError': <class 'LookupError'>, 'MemoryError': <class 'MemoryError'>, 'NameError': <class 'NameError'>, 'OSError': <class 'OSError'>, 'ReferenceError': <class 'ReferenceError'>, 'RuntimeError': <class 'RuntimeError'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'SyntaxError': <class 'SyntaxError'>, 'SystemError': <class 'SystemError'>, 'TypeError': <class 'TypeError'>, 'ValueError': <class 'ValueError'>, 'Warning': <class 'Warning'>, 'FloatingPointError': <class 'FloatingPointError'>, 'OverflowError': <class 'OverflowError'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, 'BytesWarning': <class 'BytesWarning'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'EncodingWarning': <class 'EncodingWarning'>, 'FutureWarning': <class 'FutureWarning'>, 'ImportWarning': <class 'ImportWarning'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'ResourceWarning': <class 'ResourceWarning'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'UserWarning': <class 'UserWarning'>, 'BlockingIOError': <class 'BlockingIOError'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionError': <class 'ConnectionError'>, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'InterruptedError': <class 'InterruptedError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'NotADirectoryError': <class 'NotADirectoryError'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'TimeoutError': <class 'TimeoutError'>, 'IndentationError': <class 'IndentationError'>, 'IndexError': <class 'IndexError'>, 'KeyError': <class 'KeyError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'NotImplementedError': <class 'NotImplementedError'>, 'RecursionError': <class 'RecursionError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'UnicodeError': <class 'UnicodeError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'TabError': <class 'TabError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'ExceptionGroup': <class 'ExceptionGroup'>, 'EnvironmentError': <class 'OSError'>, 'IOError': <class 'OSError'>, 'WindowsError': <class 'OSError'>, 'open': <built-in function open>, 'quit': Use quit() or Ctrl-Z plus Return to exit, 'exit': Use exit() or Ctrl-Z plus Return to exit, 'copyright': Copyright (c) 2001-2023 Python Software Foundation.
All Rights Reserved.
Copyright (c) 2000 BeOpen.com.
All Rights Reserved.
Copyright (c) 1995-2001 Corporation for National Research Initiatives.
All Rights Reserved.
Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.
All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen, Zope Corporation, the Python Software
Foundation, and a cast of thousands for supporting Python
development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help about object.}, False, {})
[app] emitting event: 'autodoc-skip-member'('data', '__cached__', 'D:\\Repos\\Spyder\\spyder-api-docs\\spyder\\spyder\\api\\__pycache__\\__init__.cpython-312.pyc', False, {})
[app] emitting event: 'autodoc-skip-member'('data', '__doc__', '\nBase classes, mixins and widgets for creating plugins to extend Spyder.\n\nThis API should be considered production-ready as of Spyder 6.0.\n', False, {})
[app] emitting event: 'autodoc-skip-member'('data', '__file__', 'D:\\Repos\\Spyder\\spyder-api-docs\\spyder\\spyder\\api\\__init__.py', False, {})
[app] emitting event: 'autodoc-skip-member'('data', '__loader__', <_frozen_importlib_external.SourceFileLoader object at 0x0000020363335400>, False, {})
[app] emitting event: 'autodoc-skip-member'('data', '__name__', 'spyder.api', False, {})
[app] emitting event: 'autodoc-skip-member'('data', '__package__', 'spyder.api', False, {})
[app] emitting event: 'autodoc-skip-member'('data', '__path__', ['D:\\Repos\\Spyder\\spyder-api-docs\\spyder\\spyder\\api'], False, {})
[app] emitting event: 'autodoc-skip-member'('data', '__spec__', ModuleSpec(name='spyder.api', loader=<_frozen_importlib_external.SourceFileLoader object at 0x0000020363335400>, origin='D:\\Repos\\Spyder\\spyder-api-docs\\spyder\\spyder\\api\\__init__.py', submodule_search_locations=['D:\\Repos\\Spyder\\spyder-api-docs\\spyder\\spyder\\api']), False, {})
[app] emitting event: 'autodoc-skip-member'('data', '__version__', '1.4.0', False, {})
[app] emitting event: 'autodoc-skip-member'('module', '_version', <module 'spyder.api._version' from 'D:\\Repos\\Spyder\\spyder-api-docs\\spyder\\spyder\\api\\_version.py'>, False, {})
[autosummary] generating autosummary for: D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.rst
Warning, treated as error!
Versions
========
* Platform: win32; (Windows-11-10.0.26100-SP0)
* Python version: 3.12.12 (CPython)
* Sphinx version: 9.0.0rc1
* Docutils version: 0.21.2
* Jinja2 version: 3.1.6
* Pygments version: 2.19.2
Last Messages
=============
None.
Loaded Extensions
=================
None.
Traceback
=========
+ Exception Group Traceback (most recent call last):
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\generate.py", line 664, in generate_autosummary_docs
| name, obj, parent, modname = import_by_name(entry.name)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 683, in import_by_name
| raise ImportExceptionGroup(msg, exceptions)
| sphinx.ext.autosummary.ImportExceptionGroup: could not import asyncdispatcher (2 sub-exceptions)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 709, in _import_by_name
| _import_module(modname)
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autodoc\_dynamic\_importer.py", line 218, in _import_module
| raise ModuleNotFoundError(msg, name=modname) # NoQA: TRY301
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ModuleNotFoundError: No module named 'asyncdispatcher'
+---------------- 2 ----------------
| Traceback (most recent call last):
| File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 724, in _import_by_name
| return sys.modules[modname], None, modname
| ~~~~~~~~~~~^^^^^^^^^
| KeyError: 'asyncdispatcher'
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 740, in import_ivar_by_name
name, attr = name.rsplit('.', 1)
^^^^^^^^^^
ValueError: not enough values to unpack (expected 2, got 1)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\generate.py", line 669, in generate_autosummary_docs
name, obj, parent, modname = import_ivar_by_name(entry.name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 761, in import_ivar_by_name
raise ImportError from exc
ImportError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\cmd\build.py", line 414, in build_main
app = Sphinx(
^^^^^^^
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\application.py", line 338, in __init__
self._init_builder()
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\application.py", line 428, in _init_builder
self.events.emit('builder-inited')
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\events.py", line 392, in emit
results.append(listener.handler(self._app, *args))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\__init__.py", line 871, in process_generate_options
generate_autosummary_docs(
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\generate.py", line 722, in generate_autosummary_docs
generate_autosummary_docs(
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\ext\autosummary\generate.py", line 678, in generate_autosummary_docs
logger.warning(
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\util\logging.py", line 191, in warning
return super().warning(
^^^^^^^^^^^^^^^^
File "D:\Miniforge3\envs\api-docs\Lib\logging\__init__.py", line 1930, in warning
self.log(WARNING, msg, *args, **kwargs)
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\util\logging.py", line 138, in log
super().log(level, msg, *args, **kwargs)
File "D:\Miniforge3\envs\api-docs\Lib\logging\__init__.py", line 1962, in log
self.logger.log(level, msg, *args, **kwargs)
File "D:\Miniforge3\envs\api-docs\Lib\logging\__init__.py", line 1609, in log
self._log(level, msg, args, **kwargs)
File "D:\Miniforge3\envs\api-docs\Lib\logging\__init__.py", line 1684, in _log
self.handle(record)
File "D:\Miniforge3\envs\api-docs\Lib\logging\__init__.py", line 1700, in handle
self.callHandlers(record)
File "D:\Miniforge3\envs\api-docs\Lib\logging\__init__.py", line 1762, in callHandlers
hdlr.handle(record)
File "D:\Miniforge3\envs\api-docs\Lib\logging\__init__.py", line 1022, in handle
rv = self.filter(record)
^^^^^^^^^^^^^^^^^^^
File "D:\Miniforge3\envs\api-docs\Lib\logging\__init__.py", line 858, in filter
result = f.filter(record)
^^^^^^^^^^^^^^^^
File "D:\Repos\Spyder\spyder-api-docs\.nox\_execute\Lib\site-packages\sphinx\util\logging.py", line 412, in filter
raise SphinxWarning(message)
sphinx.errors.SphinxWarning: [autosummary] failed to import asyncdispatcher.
Possible hints:
* KeyError: 'asyncdispatcher'
* ValueError: not enough values to unpack (expected 2, got 1)
* ModuleNotFoundError: No module named 'asyncdispatcher'
The full traceback has been saved in:
C:\Users\CAMGER~1\AppData\Local\Temp\sphinx-err-f2zrfhso.log
To report this error to the developers, please open an issue at <https://github.com/sphinx-doc/sphinx/issues/>. Thanks!
Please also report this if it was a user error, so that a better error message can be provided next time.
nox > Command python -I -m sphinx -b html -E -a --show-traceback --exception-on-warning -vv -t autodoc -- 'D:\Repos\Spyder\spyder-api-docs\docs' 'D:\Repos\Spyder\spyder-api-docs\docs\_build\html' failed with exit code 2
nox > Session _execute failed.
nox > Ran multiple sessions:
nox > * build: success
nox > * _execute: failed
Just for reference, here's the output of a successful build with the autosummary block moved back below automodule (with only one -v; -vv on a successful build fills my entire 32k line scrollback buffer and then some):
CAMGerlach@Vger MINGW64 ~/Dev/Repos/Spyder/spyder-api-docs (revise-top-level-docstrings)
$ nox -s clean
nox > Running session clean
Removing generated directory 'D:/Repos/Spyder/spyder-api-docs/docs/_build'
Removing generated directory 'D:/Repos/Spyder/spyder-api-docs/docs/_autosummary'
nox > Session clean was successful.
(api-docs)
CAMGerlach@Vger MINGW64 ~/Dev/Repos/Spyder/spyder-api-docs (revise-top-level-docstrings)
$ nox -s build -- --show-traceback --exception-on-warning -v -t autodoc
nox > Running session build
nox > Session build was successful.
nox > Running session _execute
nox > Reusing existing virtual environment at .nox\_execute.
nox > python -I -m sphinx -b html -E -a --show-traceback --exception-on-warning -v -t autodoc -- 'D:\Repos\Spyder\spyder-api-docs\docs' 'D:\Repos\Spyder\spyder-api-docs\docs\_build\html'
Running Sphinx v9.0.0rc1
loading translations [en]... locale_dir D:\Repos\Spyder\spyder-api-docs\docs\locales\en\LC_MESSAGES does not exist
locale_dir D:\Repos\Spyder\spyder-api-docs\docs\locales\en\LC_MESSAGES does not exist
done
making output directory... done
locale_dir D:\Repos\Spyder\spyder-api-docs\docs\locales\en\LC_MESSAGES does not exist
[autosummary] generating autosummary for: index.rst, plugin_development.rst, reference.rst
[autosummary] generating autosummary for: D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.rst
[autosummary] generating autosummary for: D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.asyncdispatcher.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.config.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.exceptions.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.fonts.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.plugin_registration.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.plugins.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.preferences.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.shellconnect.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.shortcuts.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.translations.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.utils.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.widgets.rst
[autosummary] generating autosummary for: D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.config.decorators.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.config.mixins.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.plugin_registration.decorators.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.plugin_registration.mixins.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.plugin_registration.registry.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.shellconnect.main_widget.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.shellconnect.mixins.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.shellconnect.status.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.widgets.auxiliary_widgets.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.widgets.comboboxes.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.widgets.dialogs.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.widgets.main_container.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.widgets.main_widget.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.widgets.menus.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.widgets.mixins.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.widgets.status.rst, D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.widgets.toolbars.rst
loading intersphinx inventory 'python' from https://docs.python.org/objects.inv ...
loading intersphinx inventory 'spyder' from https://docs.spyder-ide.org/current/objects.inv ...
intersphinx inventory has moved: https://docs.python.org/objects.inv -> https://docs.python.org/3/objects.inv
locale_dir D:\Repos\Spyder\spyder-api-docs\docs\locales\en\LC_MESSAGES does not exist
locale_dir D:\Repos\Spyder\spyder-api-docs\docs\locales\en\LC_MESSAGES does not exist
building [mo]: all of 0 po files
writing output...
building [html]: all source files
updating environment: locale_dir D:\Repos\Spyder\spyder-api-docs\docs\locales\en\LC_MESSAGES does not exist
[new config] 33 added, 0 changed, 0 removed
reading sources... [ 3%] _autosummary/spyder.api
reading sources... [ 6%] _autosummary/spyder.api.asyncdispatcher
reading sources... [ 9%] _autosummary/spyder.api.config
reading sources... [ 12%] _autosummary/spyder.api.config.decorators
reading sources... [ 15%] _autosummary/spyder.api.config.mixins
reading sources... [ 18%] _autosummary/spyder.api.exceptions
reading sources... [ 21%] _autosummary/spyder.api.fonts
reading sources... [ 24%] _autosummary/spyder.api.plugin_registration
reading sources... [ 27%] _autosummary/spyder.api.plugin_registration.decorators
reading sources... [ 30%] _autosummary/spyder.api.plugin_registration.mixins
reading sources... [ 33%] _autosummary/spyder.api.plugin_registration.registry
reading sources... [ 36%] _autosummary/spyder.api.plugins
reading sources... [ 39%] _autosummary/spyder.api.preferences
reading sources... [ 42%] _autosummary/spyder.api.shellconnect
reading sources... [ 45%] _autosummary/spyder.api.shellconnect.main_widget
reading sources... [ 48%] _autosummary/spyder.api.shellconnect.mixins
reading sources... [ 52%] _autosummary/spyder.api.shellconnect.status
reading sources... [ 55%] _autosummary/spyder.api.shortcuts
reading sources... [ 58%] _autosummary/spyder.api.translations
reading sources... [ 61%] _autosummary/spyder.api.utils
reading sources... [ 64%] _autosummary/spyder.api.widgets
reading sources... [ 67%] _autosummary/spyder.api.widgets.auxiliary_widgets
reading sources... [ 70%] _autosummary/spyder.api.widgets.comboboxes
reading sources... [ 73%] _autosummary/spyder.api.widgets.dialogs
reading sources... [ 76%] _autosummary/spyder.api.widgets.main_container
reading sources... [ 79%] _autosummary/spyder.api.widgets.main_widget
reading sources... [ 82%] _autosummary/spyder.api.widgets.menus
reading sources... [ 85%] _autosummary/spyder.api.widgets.mixins
reading sources... [ 88%] _autosummary/spyder.api.widgets.status
reading sources... [ 91%] _autosummary/spyder.api.widgets.toolbars
reading sources... [ 94%] index
reading sources... [ 97%] plugin_development
reading sources... [100%] reference
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
copying assets...
copying static files...
Writing evaluated template result to D:\Repos\Spyder\spyder-api-docs\docs\_build\html\_static\basic.css
Writing evaluated template result to D:\Repos\Spyder\spyder-api-docs\docs\_build\html\_static\documentation_options.jsWriting evaluated template result to D:\Repos\Spyder\spyder-api-docs\docs\_build\html\_static\language_data.js
copying static files: done
copying extra files...
copying extra files: done
copying assets: done
writing output... [ 3%] _autosummary/spyder.api
writing output... [ 6%] _autosummary/spyder.api.asyncdispatcher
writing output... [ 9%] _autosummary/spyder.api.config
writing output... [ 12%] _autosummary/spyder.api.config.decorators
writing output... [ 15%] _autosummary/spyder.api.config.mixins
writing output... [ 18%] _autosummary/spyder.api.exceptions
writing output... [ 21%] _autosummary/spyder.api.fonts
writing output... [ 24%] _autosummary/spyder.api.plugin_registration
writing output... [ 27%] _autosummary/spyder.api.plugin_registration.decorators
writing output... [ 30%] _autosummary/spyder.api.plugin_registration.mixins
writing output... [ 33%] _autosummary/spyder.api.plugin_registration.registry
writing output... [ 36%] _autosummary/spyder.api.plugins
writing output... [ 39%] _autosummary/spyder.api.preferences
writing output... [ 42%] _autosummary/spyder.api.shellconnect
writing output... [ 45%] _autosummary/spyder.api.shellconnect.main_widget
writing output... [ 48%] _autosummary/spyder.api.shellconnect.mixins
writing output... [ 52%] _autosummary/spyder.api.shellconnect.status
writing output... [ 55%] _autosummary/spyder.api.shortcuts
writing output... [ 58%] _autosummary/spyder.api.translations
writing output... [ 61%] _autosummary/spyder.api.utils
writing output... [ 64%] _autosummary/spyder.api.widgets
writing output... [ 67%] _autosummary/spyder.api.widgets.auxiliary_widgets
writing output... [ 70%] _autosummary/spyder.api.widgets.comboboxes
writing output... [ 73%] _autosummary/spyder.api.widgets.dialogs
writing output... [ 76%] _autosummary/spyder.api.widgets.main_container
writing output... [ 79%] _autosummary/spyder.api.widgets.main_widget
writing output... [ 82%] _autosummary/spyder.api.widgets.menus
writing output... [ 85%] _autosummary/spyder.api.widgets.mixins
writing output... [ 88%] _autosummary/spyder.api.widgets.status
writing output... [ 91%] _autosummary/spyder.api.widgets.toolbars
writing output... [ 94%] index
writing output... [ 97%] plugin_development
writing output... [100%] reference
generating indices... genindex py-modindex done
highlighting module code... [ 4%] PyQt5.QtCore
highlighting module code... [ 7%] spyder.api.asyncdispatcher
highlighting module code... [ 11%] spyder.api.config.decorators
highlighting module code... [ 14%] spyder.api.config.mixins
highlighting module code... [ 18%] spyder.api.exceptions
highlighting module code... [ 21%] spyder.api.fonts
highlighting module code... [ 25%] spyder.api.plugin_registration.decorators
highlighting module code... [ 29%] spyder.api.plugin_registration.mixins
highlighting module code... [ 32%] spyder.api.plugin_registration.registry
highlighting module code... [ 36%] spyder.api.plugins.enum
highlighting module code... [ 39%] spyder.api.plugins.new_api
highlighting module code... [ 43%] spyder.api.preferences
highlighting module code... [ 46%] spyder.api.shellconnect.main_widget
highlighting module code... [ 50%] spyder.api.shellconnect.mixins
highlighting module code... [ 54%] spyder.api.shellconnect.status
highlighting module code... [ 57%] spyder.api.shortcuts
highlighting module code... [ 61%] spyder.api.utils
highlighting module code... [ 64%] spyder.api.widgets
highlighting module code... [ 68%] spyder.api.widgets.auxiliary_widgets
highlighting module code... [ 71%] spyder.api.widgets.comboboxes
highlighting module code... [ 75%] spyder.api.widgets.dialogs
highlighting module code... [ 79%] spyder.api.widgets.main_container
highlighting module code... [ 82%] spyder.api.widgets.main_widget
highlighting module code... [ 86%] spyder.api.widgets.menus
highlighting module code... [ 89%] spyder.api.widgets.mixins
highlighting module code... [ 93%] spyder.api.widgets.status
highlighting module code... [ 96%] spyder.api.widgets.toolbars
highlighting module code... [100%] spyder.config.base
writing additional pages... search done
copying images... [ 6%] images/workshop-3/pd_spyder_plugins.png
copying images... [ 12%] images/workshop-3/pd_pomodoro_timer.png
copying images... [ 19%] images/workshop-3/pd_spyder_wireframe.png
copying images... [ 25%] images/workshop-3/pd_preferences_wireframe.png
copying images... [ 31%] images/workshop-3/pd_dev_environment.png
copying images... [ 38%] images/workshop-3/pd_github_repo.png
copying images... [ 44%] images/workshop-3/pd_plugin_structure.png
copying images... [ 50%] images/workshop-3/pd_qta-browser_timer.png
copying images... [ 56%] images/workshop-3/pd_plugin_build.png
copying images... [ 62%] images/workshop-3/pd_hello_world.png
copying images... [ 69%] images/workshop-3/pd_timer_countdown.gif
copying images... [ 75%] images/workshop-3/pd_toolbar_actions.gif
copying images... [ 81%] images/workshop-3/pd_view_pomodoro_toolbar.png
copying images... [ 88%] images/workshop-3/pd_toolbar_statusbar_interact.gif
copying images... [ 94%] images/workshop-3/pd_plugin_confpage.gif
copying images... [100%] images/workshop-3/pd_plugin_publish.png
dumping search index in English (code: en)... done
dumping object inventory... done
build succeeded.
The HTML pages are in docs\_build\html.
nox > Session _execute was successful.
nox > Ran multiple sessions:
nox > * build: success
nox > * _execute: success
What's the content of D:\Repos\Spyder\spyder-api-docs\docs\_autosummary\spyder.api.rst?
With autosummary above automodule in the template (failed build, only spyder.api.rst generated):
spyder.api
==========
.. rubric:: Modules
.. autosummary::
:toctree:
:template: custom-module-template.rst
:recursive:
asyncdispatcher
config
exceptions
fonts
plugin_registration
plugins
preferences
shellconnect
shortcuts
translations
utils
widgets
.. automodule:: spyder.api
(only spyder.api.rst is generated, no other files)
With a autosummary below automodule in the template (successful build, all files generated):
spyder.api
==========
.. automodule:: spyder.api
.. rubric:: Modules
.. autosummary::
:toctree:
:template: custom-module-template.rst
:recursive:
asyncdispatcher
config
exceptions
fonts
plugin_registration
plugins
preferences
shellconnect
shortcuts
translations
utils
widgets
I encountered a similar error after updating to branch 8. The issue was resolved by modifying my custom template module.rst.j2:
.. autosummary::
:template: autosummary/module.rst.j2
:toctree:
:recursive:
{% for item in modules %}
- {{ item }}
+ {{ fullname }}.{{ item }}
{%- endfor %}
{% endif %}
{% endblock %}
Hope this helps.
Thanks, I can confirm that temporary workaround does get the build working again with the autosummary module ToC above the automodule section, although with the undesirable side effect of listing every submodule name in fully qualified form, with a redundant prefix of the current module. Hopefully it helps shed light on the root cause of the issue, where it seems autosummary doesn't know/prepend the current fully qualified module if run before automodule, so it can actually be fixed.