Coder Social home page Coder Social logo

sphinx-toolbox / sphinx-toolbox Goto Github PK

View Code? Open in Web Editor NEW
73.0 4.0 8.0 2.49 MB

Box of handy tools for Sphinx ๐Ÿงฐ ๐Ÿ“”

Home Page: https://sphinx-toolbox.readthedocs.io/en/latest

License: MIT License

Python 46.01% HTML 34.40% CSS 0.20% JavaScript 0.09% TeX 19.28% Just 0.03%
documentation python sphinx sphinx-extension

sphinx-toolbox's Introduction

sphinx-toolbox

Box of handy tools for Sphinx ๐Ÿงฐ ๐Ÿ“”

Docs Documentation Build Status Docs Check Status
Tests Linux Test Status Windows Test Status macOS Test Status Coverage
PyPI PyPI - Package Version PyPI - Supported Python Versions PyPI - Supported Implementations PyPI - Wheel
Anaconda Conda - Package Version Conda - Platform
Activity GitHub last commit GitHub commits since tagged version Maintenance PyPI - Downloads
QA CodeFactor Grade Flake8 Status mypy status
Other License GitHub top language Requirements Status

Installation

sphinx-toolbox can be installed from PyPI or Anaconda.

To install with pip:

$ python -m pip install sphinx-toolbox

To install with conda:

  • First add the required channels
$ conda config --add channels https://conda.anaconda.org/conda-forge
$ conda config --add channels https://conda.anaconda.org/domdfcoding
  • Then install
$ conda install sphinx-toolbox

sphinx-toolbox's People

Contributors

arisp99 avatar dependabot-preview[bot] avatar domdfcoding avatar heinischvalentin avatar jorgepiloto avatar pre-commit-ci[bot] avatar repo-helper[bot] avatar vladimirfokow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

sphinx-toolbox's Issues

3.2.0 + master [24dff76d]: pytest is failing in few units

Description

I'm packaging your module as an rpm package so I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.

  • python3 -sBm build -w --no-isolation
  • because I'm calling build with --no-isolation I'm using during all processes only locally installed modules
  • install .whl file in </install/prefix>
  • run pytest with PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>

Reproduces how often:

Easily reproduced

Version

  • Operating System: Linux x86/64
  • Python: 3.8.15
  • sphinx-toolbox: 5.3.0

Installation source

GitHub Releases + patches up to master

Other Additional Information:

Here is list of installed modules in build env

Package                       Version
----------------------------- -----------------
alabaster                     0.7.12
apeye                         1.2.0
appdirs                       1.4.4
astatine                      0.3.2
asttokens                     2.2.0
attrs                         22.1.0
autodocsumm                   0.2.9
Babel                         2.11.0
beautifulsoup4                4.11.1
Brlapi                        0.8.3
build                         0.9.0
CacheControl                  0.12.11
certifi                       2022.9.24
charset-normalizer            3.0.1
click                         8.1.3
coincidence                   0.6.2
consolekit                    1.4.1
contourpy                     1.0.6
cssselect                     1.1.0
cssutils                      2.6.0
cycler                        0.11.0
deprecation                   2.1.0
deprecation-alias             0.3.1
dict2css                      0.3.0
dist-meta                     0.6.0
distro                        1.8.0
dnspython                     2.2.1
docutils                      0.19
dom_toml                      0.6.0
domdf-python-tools            3.3.0
exceptiongroup                1.0.0
extras                        1.0.0
fixtures                      4.0.0
flake8                        5.0.4
flake8-dunder-all             0.2.2
fonttools                     4.38.0
gpg                           1.17.1-unknown
handy-archives                0.1.2
html5lib                      1.1
hypothesis                    6.58.2
idna                          3.4
imagesize                     1.4.1
importlib-metadata            5.1.0
importlib-resources           5.9.0
iniconfig                     1.1.1
Jinja2                        3.1.2
jsonschema                    4.17.3
kiwisolver                    1.4.4
libcomps                      0.1.19
lockfile                      0.12.2
louis                         3.23.0
lxml                          4.9.1
MarkupSafe                    2.1.1
matplotlib                    3.6.2
mccabe                        0.7.0
mistletoe                     0.9.0
msgpack                       1.0.4
natsort                       8.0.2
numpy                         1.23.1
olefile                       0.46
packaging                     21.3
pbr                           5.9.0
pep517                        0.13.0
Pillow                        9.3.0
pip                           22.3.1
pkgutil_resolve_name          1.3.10
platformdirs                  2.5.2
pluggy                        1.0.0
pycodestyle                   2.9.1
pyflakes                      2.5.0
Pygments                      2.13.0
PyGObject                     3.42.2
pyparsing                     3.0.9
pyproject-parser              0.5.0
pyrsistent                    0.19.2
pytest                        7.2.0
pytest-datadir                1.4.1
pytest-httpserver             1.0.4
pytest-regressions            2.4.1
pytest-timeout                2.1.0
python-dateutil               2.8.2
pytz                          2022.4
PyYAML                        6.0
requests                      2.28.1
rpm                           4.17.0
ruamel.yaml                   0.17.21
ruamel.yaml.clib              0.2.6
scour                         0.38.2
setuptools                    65.6.3
shippinglabel                 1.4.1
six                           1.16.0
snowballstemmer               2.2.0
sortedcontainers              2.4.0
soupsieve                     2.3.2.post1
Sphinx                        5.3.0
sphinx_autodoc_typehints      1.19.4
sphinx-prompt                 1.4.0
sphinx-tabs                   3.4.1
sphinxcontrib-applehelp       1.0.2.dev20220730
sphinxcontrib-devhelp         1.0.2.dev20220730
sphinxcontrib-htmlhelp        2.0.0
sphinxcontrib-jsmath          1.0.1.dev20220730
sphinxcontrib-qthelp          1.0.3.dev20220730
sphinxcontrib-serializinghtml 1.1.5
sphobjinv                     2.3.1
tabulate                      0.9.0
testtools                     2.5.0
toml                          0.10.2
tomli                         2.0.1
typing_extensions             4.4.0
urllib3                       1.26.12
webencodings                  0.5.1
Werkzeug                      2.2.2
wheel                         0.38.4
whey                          0.0.23
zipp                          3.11.0

3.1.2: sphinx is failing

[tkloczko@devel-g2v sphinx-toolbox-3.1.2]$ /usr/bin/sphinx-build -n -T -b man doc-source build/sphinx/man
Running Sphinx v5.0.2

Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/sphinx/registry.py", line 430, in load_extension
    mod = import_module(extname)
  File "/usr/lib64/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 843, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/tkloczko/rpmbuild/BUILD/sphinx-toolbox-3.1.2/./sphinx_toolbox/more_autodoc/autoprotocol.py", line 153, in <module>
    from sphinx_toolbox.more_autodoc.generic_bases import _add_generic_bases
  File "/home/tkloczko/rpmbuild/BUILD/sphinx-toolbox-3.1.2/./sphinx_toolbox/more_autodoc/generic_bases.py", line 86, in <module>
    from sphinx_toolbox.more_autosummary import PatchedAutoSummClassDocumenter
  File "/home/tkloczko/rpmbuild/BUILD/sphinx-toolbox-3.1.2/./sphinx_toolbox/more_autosummary/__init__.py", line 170, in <module>
    from sphinx.ext.autodoc.importer import get_module_members
ImportError: cannot import name 'get_module_members' from 'sphinx.ext.autodoc.importer' (/usr/lib/python3.8/site-packages/sphinx/ext/autodoc/importer.py)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/sphinx/cmd/build.py", line 272, in build_main
    app = Sphinx(args.sourcedir, args.confdir, args.outputdir,
  File "/usr/lib/python3.8/site-packages/sphinx/application.py", line 223, in __init__
    self.setup_extension(extension)
  File "/usr/lib/python3.8/site-packages/sphinx/application.py", line 380, in setup_extension
    self.registry.load_extension(self, extname)
  File "/usr/lib/python3.8/site-packages/sphinx/registry.py", line 443, in load_extension
    metadata = setup(app)
  File "/home/tkloczko/rpmbuild/BUILD/sphinx-toolbox-3.1.2/./sphinx_toolbox/__init__.py", line 95, in setup
    app.setup_extension("sphinx_toolbox.more_autodoc.autoprotocol")
  File "/usr/lib/python3.8/site-packages/sphinx/application.py", line 380, in setup_extension
    self.registry.load_extension(self, extname)
  File "/usr/lib/python3.8/site-packages/sphinx/registry.py", line 433, in load_extension
    raise ExtensionError(__('Could not import extension %s') % extname,
sphinx.errors.ExtensionError: Could not import extension sphinx_toolbox.more_autodoc.autoprotocol (exception: cannot import name 'get_module_members' from 'sphinx.ext.autodoc.importer' (/usr/lib/python3.8/site-packages/sphinx/ext/autodoc/importer.py))

Extension error:
Could not import extension sphinx_toolbox.more_autodoc.autoprotocol (exception: cannot import name 'get_module_members' from 'sphinx.ext.autodoc.importer' (/usr/lib/python3.8/site-packages/sphinx/ext/autodoc/importer.py))

And indeed it there is no that name

[tkloczko@devel-g2v sphinx-toolbox-3.1.2]$ grep get_module_members sphinx_toolbox/more_autodoc/autoprotocol.py
[tkloczko@devel-g2v sphinx-toolbox-3.1.2]$

`__future__` import causing autonamedtuple not to import `typing` classes

I searched Google and could not find any results about this particular issue.

Description

I have put together a minimal working example (MWE), see the attached tarball.
The problem is that the import

from __future__ import annotations

is needed in order for classes to use themselves as types.
In the MWE, the test.Test class (a NamedTuple) has the field func, which is a Callable type that involes Test itself, so that the above import is necessary in Python 3.7+.
Evidently this will become standard in Python 3.10 and the __future__ import will no longer be necessary, but we are not there yet.
Moreover it is required that this import be the very first in the file, otherwise it throws an exception.

However, the presence of this import causes a problem when building the document (only tested using html output, which is what I ultimately need).
In particular, an exception occurs from within autonamedtuple that indicates that the classes from the typing modules aren't being properly imported.

Note that, if func field of Test is removed, this allows removal of the above __future__ import, which causes the documentation to build just fine.
So it seems to be this import in particular that is causing the issue.
Note also that test.py executes just fine if run normally.

Steps to Reproduce

Just try to make html to build the Sphinx documentation in the MWE.

Actual result:

An exception occurs saying that it can't find any of the classes imported from the typing module despite them being imported.

Expected result:

Successful building of the html documentation.

Reproduces how often:

Consistently, every time.

Version

  • Operating System: Gentoo Linux, fully up to date
  • Python: 3.8.7
  • sphinx-toolbox: 2.0.3

Installation source

pip install --user sphinx-toolbox

Other Additional Information:

It could very well be that I did not configure sphinx-toolbox correctly in my conf.py file and that there is some setting that solves this issue.
autonamedtuple-mwe.tar.gz

3.5.0: test suite uses deprecated `sphinx.testing.path` module

Sphinx 7.2.6 and pytest fails with:

+ /usr/bin/pytest -ra -m 'not network' --ignore tests/test_tweaks/test_tabsize.py
ImportError while loading conftest '/home/tkloczko/rpmbuild/BUILD/sphinx-toolbox-3.5.0/tests/conftest.py'.
tests/conftest.py:39: in <module>
    from sphinx.testing.path import path
/usr/lib/python3.10/site-packages/sphinx/testing/path.py:14: in <module>
    warnings.warn("'sphinx.testing.path' is deprecated. "
E   sphinx.deprecation.RemovedInSphinx90Warning: 'sphinx.testing.path' is deprecated. Use 'os.path' or 'pathlib' instead.
[tkloczko@pers-jacek sphinx-toolbox-3.5.0]$ grep -r sphinx.testing.path
tests/test_issues_output/conftest.py:from sphinx.testing.path import path
tests/test_output/conftest.py:from sphinx.testing.path import path
tests/test_source_output_github/conftest.py:from sphinx.testing.path import path
tests/test_source_output_sphinx/conftest.py:from sphinx.testing.path import path
tests/conftest.py:from sphinx.testing.path import path

autodocsumm<0.2.3,>=0.2.0 does not support sphinx 4.0

Description

When installing sphinx-toolbox 2.14.0 with sphinx==4.0.3 you get an error message when attempting to
build documentation.

This seems to be due to a missing upper version bound on sphinx in autodocsumm=2.2.0 : https://github.com/Chilipp/autodocsumm/blob/6bc58151e1b4cbe0eece7810dc1844a49c72d82f/setup.py#L39

Steps to Reproduce

  1. pip install Sphinx==4.0.3 sphinx-toolbox
  2. sphinx-build -W docs tmp/docs (project used is github.com/equinor/xtgeo).

Actual result:

  File "[...]/Python/3.9.7/x64/lib/python3.9/site-packages/autodocsumm/__init__.py", line 410, in get_doc
    return super(CallableAttributeDocumenter, self).get_doc(
TypeError: get_doc() got an unexpected keyword argument 'encoding'

Expected result:

builds documentation.

Reproduces how often:

100%

Version

  • Operating System: Ubuntu
  • Python: 3.9
  • sphinx-toolbox: 2.14.0

Installation source

pypi

Suppress warnings

Is there a way to suppress warnings from this extension?
Particularly, I'm using sphinx_toolbox.confval and want to define multiple confvals with the same name in different parts of my documentation. I get a warning similar to this:

WARNING: duplicate confval description of C10, other instance in input-file-json/material/elasticity

It's an issue for me since I build my documentation with warnings treated as errors for CI jobs.

Sphinx has this suppress_warnings configuration variable, but it's hard to tell if it is applicable to extensions: https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-suppress_warnings

display of collapse labels in PDF

Description

Hi there. I really like the collapse extension and it looks great in HTML. However, I would also like to generate latex files with sphinx to create a PDF file. Unfortunately the labels of the collapsibles go missing. Here's the PDF output of your documentation example:

image

I know, the collapse functionality is intended for HTML but it would be great to have both options depending on the target audience.
Do you think this could somehow be made possible?

Version

  • Operating System: Windows 10
  • Python: 3.10.5
  • sphinx-toolbox: 3.1.2

Extension error related to apeye

Description

I want to use the extension sphinx_toolbox.sidebar_links, but when running make html to create my sphinx documentation, I get the following error:

Could not import extension sphinx_toolbox.sidebar_links (exception: cannot import name 'RequestsURL' from 'apeye.url' (C:\Users\Hanni\anaconda3\envs\co2calculator\lib\site-packages\apeye\url.py))

Steps to Reproduce

  1. I installed sphinx-toolbox to my anaconda environment with the command conda install sphinx-toolbox (after adding the necessary channels), following the instructions on the website (https://sphinx-toolbox.readthedocs.io/en/stable/index.html#installation)
  2. In the conf.py in the docs folder of my project, I added the extensions "sphinx_toolbox.sidebar_links" and "sphinx_toolbox.github").
    My full list of extensions looks like this:
extensions = [
 "sphinx.ext.autodoc",
 "sphinx.ext.coverage",
 "sphinx.ext.napoleon",
 "sphinx.ext.autosectionlabel",
 "sphinx.ext.viewcode",
 "sphinx_toolbox.sidebar_links",
 "sphinx_toolbox.github"
]

(I also defined my github_username and github_project)
3. To my index.rst, I added the lines:

.. sidebar-links::
:github:
  1. I ran make html in my docs folder to compile my documentation.

Actual result:

The output is:

Running Sphinx v4.2.0

Extension error:
Could not import extension sphinx_toolbox.sidebar_links (exception: cannot import name 'RequestsURL' from 'apeye.url' (C:\Users\Hanni\anaconda3\envs\co2calculator\lib\site-packages\apeye\url.py))

Expected result:

Normal build of my documentation, with a toctree added to the sidebar containing links to the GitHub repository.

Reproduces how often:

Easily reproduced

Version

  • Operating System: Windows 10
  • Python: 3.8.12
  • sphinx-toolbox: 0.3.3 (according to conda)

Installation source

Anaconda/conda

Other Additional Information:

I tried installing sphinx-toolbox via pip as well, but this did not help.
When I list the packages in my anaconda environment, I get the following for sphinx-toolbox:

sphinx-toolbox            0.3.3                      py_0    domdfcoding

I was not able to update to a newer version.

Markup support for collapse label

Description

The collapse block does not allow for label markup:

image

Version

  • Operating System: macOS Ventura 13.4.1
  • Python: 3.11
  • sphinx-toolbox: 3.4.0

RFE: move away from deprecated `html5lib`

Is your feature request related to a problem? Please describe.
It would be nice tu cut tail of some legacy modules decencies.
One of those modules is html5lib.

Describe the solution you'd like
it wold be good to remove use od=f the html5lib deprecated html5lib like it has been done with pip ~2 years ago.
pypa/pip#11259

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
html5lib depends on six which is on list of deprecated modules even longer implanting this RFE would make easier kill two birds using one stone ๐Ÿ˜‹

Force `sphinx.ext.viewcode` to generate pages for every module

  • I have checked existing issues

Description

Currently sphinx.ext.viewcode is checking every documented object and generating pages for its module:

This extension looks at your Python object descriptions (.. class::, .. function:: etc.) and tries to find the source files where the objects are contained.

from https://www.sphinx-doc.org/en/master/usage/extensions/viewcode.html

But sphinx_toolbox.more_autodoc.sourcelink could make a link that leads to a 404.

A flag or another extension that generates the pages would be great.

Version

  • Operating System: Windows
  • Python: 3.10-x64
  • sphinx-toolbox: 1.1.1

Other Additional Information:

An example of a missing link is here:
https://docs.pyunity.x10.bz/en/develop/api/pyunity.physics.html
Usually this happens with __init__.py files.

sphinx-build fails to load the `sphinx_toolbox.more_autodoc` because of a missing `github_username`

Description

sphinx-build fails to load the sphinx_toolbox.more_autodoc because of a missing github_username in the configuration. I supposed in my CI system I could set a fake username, but that still seems unnecessary

Steps to Reproduce

  1. pip install sphinx-toolbox==3.2.0
  2. write a simple conf.py
extensions = ["sphinx_toolbox.more_autodoc"]
  1. sphinx-build . _build

Actual result:

[app] emitting event: 'config-inited'(<sphinx.config.Config object at 0x7fcb515a9820>,)

Traceback (most recent call last):
  File "/home/glefalher/.pyenv/versions/3.9.13/lib/python3.9/site-packages/sphinx/events.py", line 94, in emit
    results.append(listener.handler(self.app, *args))
  File "/home/glefalher/.pyenv/versions/3.9.13/lib/python3.9/site-packages/sphinx_toolbox/github/__init__.py", line 246, in validate_config
    raise MissingOptionError("The 'github_username' option is required.")
sphinx_toolbox.config.MissingOptionError: The 'github_username' option is required.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/glefalher/.pyenv/versions/3.9.13/lib/python3.9/site-packages/sphinx/cmd/build.py", line 276, in build_main
    app = Sphinx(args.sourcedir, args.confdir, args.outputdir,
  File "/home/glefalher/.pyenv/versions/3.9.13/lib/python3.9/site-packages/sphinx/application.py", line 247, in __init__
    self.events.emit('config-inited', self.config)
  File "/home/glefalher/.pyenv/versions/3.9.13/lib/python3.9/site-packages/sphinx/events.py", line 105, in emit
    raise ExtensionError(__("Handler %r for event %r threw an exception") %
sphinx.errors.ExtensionError: Handler <function validate_config at 0x7fcb504cf4c0> for event 'config-inited' threw an exception (exception: The 'github_username' option is required.)

Extension error (sphinx_toolbox.github):
Handler <function validate_config at 0x7fcb504cf4c0> for event 'config-inited' threw an exception (exception: The 'github_username' option is required.)

Expected result:

sphinx-build start building the documentation

Reproduces how often:

Easily reproduced

Version

  • Operating System: linux
  • Python: 3.9.13
  • sphinx-toolbox: 3.2.0

Installation source

pip

Could not import extension sphinx_toolbox.more_autodoc.autonamedtuple

Description

When building my docs, they fail with the message Could not import extension sphinx_toolbox.more_autodoc.autonamedtuple (exception: cannot import name 'RemovedInSphinx50Warning' from 'sphinx.deprecation' (/home/runner/.local/lib/python3.10/site-packages/sphinx/deprecation.py)).

Steps to Reproduce

Run cd ./docs/ && make html SPHINXOPTS="-W --keep-going", see, e.g., https://github.com/1kastner/conflowgen/runs/7601083543?check_suite_focus=true for reference.

Expected result:

At this stage, this faulty import should not happen I guess?

Reproduces how often:

Every time.

Version

  • Operating System: Linux
  • Python: 3.8, 3.10
  • sphinx-toolbox: 3.1.2 (newest version is installed in pipeline, currently no fixed version)
  • sphinx: 5.1.1 (newest version is installed in pipeline, currently no fixed version)

Installation source

pip

conda-forge package

Thanks for this library! I am looking for a conda-forge package. I'm happy to make/maintain it, but it would be great to know if there is a scaffold for the domdfcoding channel, and if everything from requirements.txt is needed. In particular, are the following needed

  • dict2css >=0.2.3: same question: is there a scaffold?
  • docutils <0.18, >=0.16: is the maximum version needed?
  • sphinx-jinja2-compat >=0.1.0: same question: is there a scaffold?
  • typing-extensions !=3.10.0.1, >=3.7.4.3: I guess this is absolute from Python >= 3.6, correct?
  • typing-inspect >=0.6.0: I guess we could require Python >= 3.8, or is that still too restrictive?

3.0.0: pytest is failimg with errors

I'm trying to package your module as an rpm package. So I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.

  • python3 -sBm build -w --no-isolation
  • because I'm calling build with --no-isolation I'm using during all processes only locally installed modules
  • install .whl file in </install/prefix>
  • run pytest with PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>

Here is pytest output:

+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-sphinx-toolbox-3.0.0-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-sphinx-toolbox-3.0.0-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra --ignore tests/test_tweaks/test_tabsize.py
=========================================================================== test session starts ============================================================================
platform linux -- Python 3.8.13, pytest-7.1.2, pluggy-1.0.0
Test session started at 19:20:57
rootdir: /home/tkloczko/rpmbuild/BUILD/sphinx-toolbox-3.0.0, configfile: tox.ini
plugins: datadir-1.3.1, regressions-2.3.1, timeout-2.1.0, hypothesis-6.41.0, httpserver-1.0.4
timeout: 600.0s
timeout method: signal
timeout func_only: False
collected 2360 items / 11 errors

================================================================================== ERRORS ==================================================================================
____________________________________________________ ERROR collecting tests/test_more_autodoc/test_autodoc_typehints.py ____________________________________________________
tests/test_more_autodoc/test_autodoc_typehints.py:52: in <module>
    from sphinx_toolbox.more_autodoc.typehints import format_annotation, process_docstring
sphinx_toolbox/more_autodoc/typehints.py:231: in <module>
    builder_ready = sphinx_autodoc_typehints.builder_ready
E   AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
_____________________________________________________ ERROR collecting tests/test_more_autodoc/test_autonamedtuple.py ______________________________________________________
tests/test_more_autodoc/test_autonamedtuple.py:6: in <module>
    from sphinx_toolbox.more_autodoc import autonamedtuple
sphinx_toolbox/more_autodoc/autonamedtuple.py:150: in <module>
    from sphinx_toolbox.more_autodoc.typehints import format_annotation
sphinx_toolbox/more_autodoc/typehints.py:231: in <module>
    builder_ready = sphinx_autodoc_typehints.builder_ready
E   AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
______________________________________________________ ERROR collecting tests/test_more_autodoc/test_autoprotocol.py _______________________________________________________
tests/test_more_autodoc/test_autoprotocol.py:6: in <module>
    from sphinx_toolbox.more_autodoc import autoprotocol
sphinx_toolbox/more_autodoc/autoprotocol.py:153: in <module>
    from sphinx_toolbox.more_autodoc.generic_bases import _add_generic_bases
sphinx_toolbox/more_autodoc/generic_bases.py:85: in <module>
    from sphinx_toolbox.more_autodoc.typehints import format_annotation
sphinx_toolbox/more_autodoc/typehints.py:231: in <module>
    builder_ready = sphinx_autodoc_typehints.builder_ready
E   AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
______________________________________________________ ERROR collecting tests/test_more_autodoc/test_autotypeddict.py ______________________________________________________
tests/test_more_autodoc/test_autotypeddict.py:6: in <module>
    from sphinx_toolbox.more_autodoc import autotypeddict
sphinx_toolbox/more_autodoc/autotypeddict.py:145: in <module>
    from sphinx_toolbox.more_autodoc.typehints import format_annotation
sphinx_toolbox/more_autodoc/typehints.py:231: in <module>
    builder_ready = sphinx_autodoc_typehints.builder_ready
E   AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
______________________________________________________ ERROR collecting tests/test_more_autodoc/test_generic_bases.py ______________________________________________________
tests/test_more_autodoc/test_generic_bases.py:6: in <module>
    from sphinx_toolbox.more_autodoc import generic_bases
sphinx_toolbox/more_autodoc/generic_bases.py:85: in <module>
    from sphinx_toolbox.more_autodoc.typehints import format_annotation
sphinx_toolbox/more_autodoc/typehints.py:231: in <module>
    builder_ready = sphinx_autodoc_typehints.builder_ready
E   AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
______________________________________________________ ERROR collecting tests/test_more_autodoc/test_genericalias.py _______________________________________________________
tests/test_more_autodoc/test_genericalias.py:6: in <module>
    from sphinx_toolbox.more_autodoc import genericalias
sphinx_toolbox/more_autodoc/genericalias.py:80: in <module>
    from sphinx_toolbox.more_autodoc.typehints import format_annotation
sphinx_toolbox/more_autodoc/typehints.py:231: in <module>
    builder_ready = sphinx_autodoc_typehints.builder_ready
E   AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
________________________________________________________ ERROR collecting tests/test_more_autodoc/test_overloads.py ________________________________________________________
tests/test_more_autodoc/test_overloads.py:6: in <module>
    from sphinx_toolbox.more_autodoc import overloads
sphinx_toolbox/more_autodoc/overloads.py:109: in <module>
    from sphinx_toolbox.more_autodoc.typehints import _resolve_forwardref, default_preprocessors, format_annotation
sphinx_toolbox/more_autodoc/typehints.py:231: in <module>
    builder_ready = sphinx_autodoc_typehints.builder_ready
E   AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
__________________________________________________________ ERROR collecting tests/test_more_autodoc/test_regex.py __________________________________________________________
tests/test_more_autodoc/test_regex.py:12: in <module>
    from sphinx_toolbox.more_autodoc import regex
sphinx_toolbox/more_autodoc/regex.py:157: in <module>
    from sphinx_toolbox.more_autodoc.variables import VariableDocumenter
sphinx_toolbox/more_autodoc/variables.py:132: in <module>
    from sphinx_toolbox.more_autodoc.typehints import _resolve_forwardref, format_annotation
sphinx_toolbox/more_autodoc/typehints.py:231: in <module>
    builder_ready = sphinx_autodoc_typehints.builder_ready
E   AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
________________________________________________________ ERROR collecting tests/test_more_autodoc/test_typehints.py ________________________________________________________
tests/test_more_autodoc/test_typehints.py:27: in <module>
    from sphinx_toolbox.more_autodoc import typehints
sphinx_toolbox/more_autodoc/typehints.py:231: in <module>
    builder_ready = sphinx_autodoc_typehints.builder_ready
E   AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
________________________________________________________ ERROR collecting tests/test_more_autodoc/test_typevars.py _________________________________________________________
tests/test_more_autodoc/test_typevars.py:7: in <module>
    from sphinx_toolbox.more_autodoc import typevars
sphinx_toolbox/more_autodoc/typevars.py:123: in <module>
    from sphinx_toolbox.more_autodoc.typehints import format_annotation
sphinx_toolbox/more_autodoc/typehints.py:231: in <module>
    builder_ready = sphinx_autodoc_typehints.builder_ready
E   AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
________________________________________________________ ERROR collecting tests/test_more_autodoc/test_variables.py ________________________________________________________
tests/test_more_autodoc/test_variables.py:11: in <module>
    from sphinx_toolbox.more_autodoc import variables
sphinx_toolbox/more_autodoc/variables.py:132: in <module>
    from sphinx_toolbox.more_autodoc.typehints import _resolve_forwardref, format_annotation
sphinx_toolbox/more_autodoc/typehints.py:231: in <module>
    builder_ready = sphinx_autodoc_typehints.builder_ready
E   AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
========================================================================= short test summary info ==========================================================================
ERROR tests/test_more_autodoc/test_autodoc_typehints.py - AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
ERROR tests/test_more_autodoc/test_autonamedtuple.py - AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
ERROR tests/test_more_autodoc/test_autoprotocol.py - AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
ERROR tests/test_more_autodoc/test_autotypeddict.py - AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
ERROR tests/test_more_autodoc/test_generic_bases.py - AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
ERROR tests/test_more_autodoc/test_genericalias.py - AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
ERROR tests/test_more_autodoc/test_overloads.py - AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
ERROR tests/test_more_autodoc/test_regex.py - AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
ERROR tests/test_more_autodoc/test_typehints.py - AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
ERROR tests/test_more_autodoc/test_typevars.py - AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
ERROR tests/test_more_autodoc/test_variables.py - AttributeError: module 'sphinx_autodoc_typehints' has no attribute 'builder_ready'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 11 errors during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
============================================================================ 11 errors in 1.77s ============================================================================

Above is against:

[tkloczko@devel-g2v SPECS]$ pip list | grep sphinx-autodoc-typehints
sphinx-autodoc-typehints      1.18.1

WARNING: Undefined substitution referenced: "nbsp".

Description

I have enabled the regex extension like so:

extensions = [
    'sphinx.ext.autodoc',
    'sphinx.ext.viewcode',
    'sphinx_toolbox.more_autodoc.regex',
]

However, I get the following warning:

/.../schema.py:docstring of pyeda...SOME_RE:1: WARNING: Undefined substitution referenced: "nbsp".

For

SOME_RE: object = re.compile("^\\w+:[a-zA-Z]+$")
"""Some Regex."""

This feels like user error to me, but I don't see anything obvious in the docs to fix this. Is there something else I'm supposed to do to get that warning to go away? The pattern looks fine, but the type just shows

Type: |nbsp| |nbsp| |nbsp| |nbsp| object

Version

  • Operating System: Centos 7 and Ubuntu 20.04
  • Python: 3.8
  • sphinx-toolbox: 2.15.1

Installation source

Installed via pip

Allow support docutils==0.18

๐Ÿž Problem
When using the latest Sphinx version and some modern extensions, the following dependency conflict shows up:

The conflict is caused by:
    The user requested docutils==0.18.1
    sphinx 5.1.1 depends on docutils<0.20 and >=0.14
    sphinx-tabs 3.4.1 depends on docutils~=0.18.0
    sphinx-toolbox 3.1.2 depends on docutils<0.18 and >=0.16

There is a new version of docutils==0.19.0. If possible, it would be nice for sphinx-toolbox to support docutils==0.18.0.

Support arbitrary parsers

It is clear that this extension has been developed with reST in mind. However, Sphinx allows supplying arbitrary parsers. In particular, I find MyST to be a fantastic choice.

However, lines like this:

content.extend(('', ".. raw:: latex", '', r" \vspace{-45px}", ''))

with source like this:

```{confval} example
:type: string
:required: False

Lorem ipsum
```

lead to results like this:

Screenshot_20240517_181037

It would be great if the extension worked parser agnostic. Instead of writing to the content like that, proper nodes should be inserted into the AST.

There is a workaround mentioned in a similar issue of another extension here. Unfortunately, sphinx-toolbox requires a lot more source written inside the eval-rst fences, so one might as well just use reST if there are a lot of confvals.

What do you think? Thanks for your consideration!

`|nbsp|` appearing for the `.. autonamedtuple::` directive resulting documentation

Description

I just started using the .. autonamedtuple:: directive to begin formatting the namedtuples in some of my projects. And they look great aside from the peculiar |nbsp| appearing between the field index and its short description.

Steps to Reproduce

  1. Implement a collections.namedtuple in source that you would like to document.
  2. Configure Sphinx documentation to use .. autonamedtuple:: for the value.
  3. Build documentation and verify that |nbsp| is used to separate the field index and brief description.

Actual result:

image

Expected result:

I would have expected something like a paragraph symbol used in place of the nbsp here.
image

Reproduces how often:

Standard behavior -- appears every time Sphinx is built.

Version

  • Operating System: Windows 11
  • Python: 3.11.1
  • sphinx-toolbox: 3.3.0

Installation source

  • PyPI

Other Additional Information:

I've identified this as coming from line 401 in sphinx_toolbox/more_autodoc/autonamedtuple.py. It seems like this was perhaps a placeholder, or just a location that Sphinx was intended to swap in an HTML &nbsp character? I would like to suggest that the characters nbsp be replaced with the appropriate content to format a paragraph symbol such as the following:

image

Thank you so much! I think this is marvelous to have such additional tooling for the Sphinx ecosystem. I desirable, I would be willing to investigate contributing a change to modify nbsp --> <paragraph symbol> myself.

autonamedtuple leaves (constructor?) parameters blank

Description

I have a NamedTuple I want to document. However, the parameters remain empty but are shown. This happens because of autodoc_typehints = 'both' I guess.

Steps to Reproduce

Have a NamedTuple like this:

class A(NamedTuple):

    #: abc
    def: float

    #: xyz
    ghi: float

Actual result:

One example:

grafik

Expected result:

Either, the parameters could also be documented, just like the enum values, or they should be hidden. While a NamedTuple technically has a constructor, this is nothing to explicitely document and discuss in the docs.

Reproduces how often:

always

Version

  • Operating System:
  • Python: 3.9
  • sphinx-toolbox: current

Installation source

pip

Clicking sphinx-toolbox.install tabs does not change tabs

Description

The Install plugin gallery tabs don't appear to do anything when clicked.

Steps to Reproduce

  1. Go to https://sphinx-toolbox.readthedocs.io/en/latest/extensions/installation.html
  2. Scroll down to the Example
  3. Click any tab other than the default from PyPI tab

Actual result:

The tab set remains on the from PyPI tab

Expected result:

The the tab set changes to the clicked tab.

Reproduces how often:

Easily reproduced

Version

  • Operating System: N/A
  • Python: N/A
  • sphinx-toolbox: latest on readthedocs

Installation source

N/A, readthedocs

Other Additional Information:

Browsers tested: Firefox 115.10.0esr, Chromium 120.0.6099.224

sidebar-links (AttributeError: 'NoneType' object has no attribute 'replace')

Error during internalization. I run: sphinx-build -b gettext docs/source/ docs/build/gettext

I am getting an error:

Exception occurred:
  File ".../lib/python3.9/site-packages/sphinx/util/osutil.py", line 35, in canon_path
    return nativepath.replace(path.sep, SEP)
AttributeError: 'NoneType' object has no attribute 'replace'
The full traceback has been saved in /var/folders/gw/w3k5kxtx0s3_nqdqw94zr8yh0000gn/T/sphinx-err-20kitkeg.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!

`sphinx_toolbox.more_autodoc.typehints' breaks when using 'attrs' default decorator

Description

When using attrs to define a class, using the @default decorator is not possible.

Steps to Reproduce

test.py:

from attrs import define, field

@define
class X_decorator:
    value: int = field()

    @value.default
    def _value_default(self) -> int:
        return 3

@define
class X_no_decorator:
    value: int = field(default=3)

conf.py:

extensions = [
    "sphinx_toolbox.more_autodoc.typehints",
    "sphinx.ext.autodoc",
]
master_doc = "index"
autodoc_preserve_defaults = False

index.rst:

.. automodule:: test
    :members:
    :undoc-members:

Actual result:

Performing pip-run sphinx -- -m sphinx . build then creates the correct documentation for the class X_no_decorator, but fails to do so for the X_decorator one due to an error:
image

image

Expected result:

I would have expected that one gets the same result for both classes.

Version

  • Operating System: MacOS
  • Python: 3.9.18
  • sphinx-toolbox: 3.5.0

Installation source

pip

sphinx-toolbox creating a build failed

Hello!

I am tying to work with sphinx-toolbox and unfortunately I am receiving a fatal error when trying to run my build :

Handler <function validate_config at 0x7fbf73619f70> for event 'config-inited' threw an exception (exception: The 'github_username' option is required.)
make: *** [html] Error 2

I've tried different variations within my conf.py and requirements.txt file but nothing has worked.

Sphinx 8 compatibility

Description

In Sphinx 7, you already saw

 โ€ฆ/site-packages/sphinx_toolbox/more_autodoc/autoprotocol.py:324:
  RemovedInSphinx80Warning:
  The tuple interface of ObjectMember is deprecated. Use (obj.__name__, obj.object) instead. 

Steps to Reproduce

Use e.g. autoprotocol with sphinx 8

Actual result:

Traceback (most recent call last):
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/sphinx/cmd/build.py", line 337, in build_main
    app.build(args.force_all, args.filenames)
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/sphinx/application.py", line 378, in build
    self.builder.build_update()
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 296, in build_update
    self.build(to_build,
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 317, in build
    updated_docnames = set(self.read())
                           ^^^^^^^^^^^
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 424, in read
    self._read_serial(docnames)
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 476, in _read_serial
    self.read_doc(docname)
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 535, in read_doc
    publisher.publish()
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/core.py", line 234, in publish
    self.document = self.reader.read(self.source, self.parser,
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/sphinx/io.py", line 106, in read
    self.parse()
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/readers/__init__.py", line 76, in parse
    self.parser.parse(self.input, document)
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/sphinx/parsers.py", line 83, in parse
    self.statemachine.run(inputlines, document, inliner=self.inliner)
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 169, in run
    results = StateMachineWS.run(self, input_lines, input_offset,
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
                                  ^^^^^^^^^^^^^^^^
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/statemachine.py", line 445, in check_line
    return method(match, context, next_state)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 2790, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 325, in section
    self.new_subsection(title, lineno, messages)
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 391, in new_subsection
    newabsoffset = self.nested_parse(
                   ^^^^^^^^^^^^^^^^^^
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 279, in nested_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
                                  ^^^^^^^^^^^^^^^^
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/statemachine.py", line 445, in check_line
    return method(match, context, next_state)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 2359, in explicit_markup
    self.explicit_list(blank_finish)
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 2384, in explicit_list
    newline_offset, blank_finish = self.nested_list_parse(
                                   ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 316, in nested_list_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
                                  ^^^^^^^^^^^^^^^^
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/statemachine.py", line 445, in check_line
    return method(match, context, next_state)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 2662, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 2369, in explicit_construct
    return method(self, expmatch)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 2106, in directive
    return self.run_directive(
           ^^^^^^^^^^^^^^^^^^^
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 2156, in run_directive
    result = directive_instance.run()
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/sphinx/ext/autodoc/directive.py", line 139, in run
    documenter.generate(more_content=self.content)
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/sphinx/ext/autodoc/__init__.py", line 1872, in generate
    return super().generate(more_content=more_content,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/sphinx/ext/autodoc/__init__.py", line 943, in generate
    self.document_members(all_members)
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/sphinx_toolbox/more_autodoc/autoprotocol.py", line 307, in document_members
    super().document_members(True)
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/sphinx/ext/autodoc/__init__.py", line 1858, in document_members
    super().document_members(all_members)
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/sphinx/ext/autodoc/__init__.py", line 799, in document_members
    for (mname, member, isattr) in self.filter_members(members, want_all):
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/phil/.local/share/hatch/env/virtual/anndata/PUvSwSLS/docs/lib/python3.12/site-packages/sphinx_toolbox/more_autodoc/autoprotocol.py", line 324, in filter_members
    for (membername, member) in members:
        ^^^^^^^^^^^^^^^^^^^^
TypeError: cannot unpack non-iterable ObjectMember object

Expected result:

you run your tests so they fail when encountering a deprecationwarning and fix things before deprecations become removals

Reproduces how often:

yes

Version

  • Operating System: irrelevant
  • Python: irrelevant
  • sphinx-toolbox: 3.7.0

Installation source

pip

Other Additional Information:

`more_autodoc.regex` breaks regular expressions under special conditions

Non-capturing groups with alternations issue

regex module incorrectly processes regexps having non-capturing groups combined with alternation operator.

Steps to Reproduce

Example function:

def contains_sgr(string: str, *codes: int) -> re.Match | None:
    """
    Example regex used for searching: :regex:`\\x1b\\[(?:|[\\d;]*;)(48;5)(?:|;[\\d;]*)m`.
    """
    ...

Actual result:

image

At least two issues here:

  • The lack of non-capturing groups completely ruins the flow, as alternating operators now affect the whole expression, not just the parts inside now-defunct groups;

  • Second one is that escaped \[ transformed into a regular one [, even though the syntax color is correct (honestly not sure is it a bug or a feature).

Expected result:

image

Reproduces how often:

Always

Version

  • Operating System: Ubuntu 20.04
  • Python: 3.8
  • sphinx-toolbox: 3.3

Installation source

PyPI/pip

Collapseable tables

Description

Hi,

Sorry if this is the wrong place to ask, but is there a way to use the collapse tool to wrap a table? I have a markdown-styled table that is rendering correctly when I don't put it in a collapse block, but essentially renders as plaintext when using collapse.

Code:

.. collapse:: Details

  |BED file path|Reference|Add ends|Source name|
  |---|---|---|---|
  |path/to/bed/v40_tss.bed|True|True|v40|
  |path/to/bed/encode_tss.bed|False|True|encode|

Screenshot of table using collapse:
Screenshot 2023-04-25 at 3 15 39 PM

Screenshot of table when not using collapse:
Screenshot 2023-04-25 at 3 16 32 PM

Version

  • Operating System: macOS 13.0.1 (22A400)
  • Python: 3.7.4
  • sphinx-toolbox: 3.4.0

Sphinx toolbox unable to parse issue titles with code

Description

Sphinx toolbox is unable to parse issues that contain code in their title. If the code is in the middle of the title, the issue will still be linked to the correct location, but the title will not show up completely when hovering over the link.

This becomes problematic when the title begins with a block of code. If this is the case, you are unable to build the documentation.

Steps to Reproduce

  1. Clone example repo: gh repo clone arisp99/sphinx-test
  2. Make docs: cd sphinx-test && make html
  3. Open docs: open build/html/index.html

Actual result:

Result if code is in the title but not at the beginning:

image

Result if code is in the beginning of the title:

cd sphinx-test && make html
#> Exception occurred:
#>   File "/usr/local/lib/python3.9/site-packages/sphinx_toolbox/github/issues.py", line 329, in get_issue_title
#>     return soup.find_all("span", attrs={"class": "js-issue-title"})[0].contents[0].strip().strip()
#> TypeError: 'NoneType' object is not callable

Expected result:

The title should be able to contain code in it. The simplest solution I suspect would be to parse code as normal text. So, in the case where code is in the title but not in the beginning, the link on hover should read:

Unable to install latest version of flake8 and Sphinx together.

Reproduces how often:

Occurs every time the docs are built.

Version

  • Operating System: macOS
  • Python: 3.9.10
  • sphinx-toolbox: Latest release (2.18.0)

Installation source

Installed via pip.

sphinx-toolbox in combination with other Sphinx packages leads to dependency resolution issues when installing with pip

Description

While building the docs on RTD, the setup using pip takes too much time so that the whole build is canceled. The logs suggest that stricter version constraints might help to solve this issue but those constraints are not in my hand but in the hands of other package developers like you. The first package this is reported on are the dependencies of sphinx-toolbox. I am not sure whether this is an issue of sphinx-toolbox, of pip, or something completely different. In case this is unrelated to your package, I am sorry to bother you.

Steps to Reproduce

  1. Include sphinx-toolbox and several other packages (?) in a requirements.txt file
  2. Have pip install those requirements with the RTD default command.

Actual result:

Here is the log:

Processing /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/checkouts/201
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Collecting scipy
  Downloading scipy-1.11.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (60 kB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 60.4/60.4 kB 3.9 MB/s eta 0:00:00
Collecting numpy
  Downloading numpy-1.26.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 61.2/61.2 kB 49.1 MB/s eta 0:00:00
Collecting pandas>=1
  Downloading pandas-2.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (18 kB)
Collecting openpyxl
  Downloading openpyxl-3.1.2-py2.py3-none-any.whl (249 kB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 250.0/250.0 kB 20.3 MB/s eta 0:00:00
Collecting peewee>=3
  Downloading peewee-3.17.0.tar.gz (2.9 MB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 2.9/2.9 MB 82.7 MB/s eta 0:00:00
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
Collecting enum_tools>=0.7
  Downloading enum_tools-0.11.0-py3-none-any.whl.metadata (7.9 kB)
Collecting matplotlib
  Downloading matplotlib-3.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.8 kB)
Collecting plotly
  Downloading plotly-5.18.0-py3-none-any.whl.metadata (7.0 kB)
Collecting kaleido
  Downloading kaleido-0.2.1-py2.py3-none-manylinux1_x86_64.whl (79.9 MB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 79.9/79.9 MB 125.0 MB/s eta 0:00:00
Collecting pytest
  Downloading pytest-7.4.3-py3-none-any.whl.metadata (7.9 kB)
Collecting pytest-cov
  Downloading pytest_cov-4.1.0-py3-none-any.whl.metadata (26 kB)
Collecting pytest-xdist
  Downloading pytest_xdist-3.5.0-py3-none-any.whl.metadata (3.1 kB)
Collecting pytest-github-actions-annotate-failures
  Downloading pytest_github_actions_annotate_failures-0.2.0-py3-none-any.whl (5.5 kB)
Collecting seaborn
  Downloading seaborn-0.13.0-py3-none-any.whl.metadata (5.3 kB)
Collecting nbformat
  Downloading nbformat-5.9.2-py3-none-any.whl.metadata (3.4 kB)
Collecting nbconvert
  Downloading nbconvert-7.12.0-py3-none-any.whl.metadata (7.7 kB)
Requirement already satisfied: sphinx in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (7.2.6)
Collecting sphinx-rtd-theme
  Downloading sphinx_rtd_theme-2.0.0-py2.py3-none-any.whl.metadata (4.4 kB)
Collecting sphinx-toolbox
  Downloading sphinx_toolbox-3.5.0-py3-none-any.whl.metadata (8.0 kB)
Collecting myst-parser
  Downloading myst_parser-2.0.0-py3-none-any.whl.metadata (5.4 kB)
Collecting sphinxcontrib-bibtex
  Downloading sphinxcontrib_bibtex-2.6.1-py3-none-any.whl.metadata (6.1 kB)
Collecting nbsphinx
  Downloading nbsphinx-0.9.3-py3-none-any.whl.metadata (2.1 kB)
Collecting ipython
  Downloading ipython-8.18.1-py3-none-any.whl.metadata (6.0 kB)
Collecting ipykernel
  Downloading ipykernel-6.27.1-py3-none-any.whl.metadata (6.3 kB)
Collecting jupyterlab
  Downloading jupyterlab-4.0.9-py3-none-any.whl.metadata (15 kB)
Collecting pylint
  Downloading pylint-3.0.2-py3-none-any.whl.metadata (12 kB)
Collecting flake8<6.0
  Downloading flake8-5.0.4-py2.py3-none-any.whl (61 kB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 61.9/61.9 kB 136.1 MB/s eta 0:00:00
Collecting flake8_nb
  Downloading flake8_nb-0.5.3-py3-none-any.whl (23 kB)
Requirement already satisfied: wheel in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (0.40.0)
Collecting twine
  Downloading twine-4.0.2-py3-none-any.whl (36 kB)
Requirement already satisfied: pygments>=2.6.1 in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (from enum_tools>=0.7) (2.17.2)
Collecting typing-extensions>=3.7.4.3 (from enum_tools>=0.7)
  Downloading typing_extensions-4.8.0-py3-none-any.whl.metadata (3.0 kB)
Collecting mccabe<0.8.0,>=0.7.0 (from flake8<6.0)
  Downloading mccabe-0.7.0-py2.py3-none-any.whl (7.3 kB)
Collecting pycodestyle<2.10.0,>=2.9.0 (from flake8<6.0)
  Downloading pycodestyle-2.9.1-py2.py3-none-any.whl (41 kB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 41.5/41.5 kB 108.5 MB/s eta 0:00:00
Collecting pyflakes<2.6.0,>=2.5.0 (from flake8<6.0)
  Downloading pyflakes-2.5.0-py2.py3-none-any.whl (66 kB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 66.1/66.1 kB 123.9 MB/s eta 0:00:00
Collecting python-dateutil>=2.8.2 (from pandas>=1)
  Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 247.7/247.7 kB 150.6 MB/s eta 0:00:00
Collecting pytz>=2020.1 (from pandas>=1)
  Downloading pytz-2023.3.post1-py2.py3-none-any.whl.metadata (22 kB)
Collecting tzdata>=2022.1 (from pandas>=1)
  Downloading tzdata-2023.3-py2.py3-none-any.whl (341 kB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 341.8/341.8 kB 153.1 MB/s eta 0:00:00
Collecting decorator (from ipython)
  Downloading decorator-5.1.1-py3-none-any.whl (9.1 kB)
Collecting jedi>=0.16 (from ipython)
  Downloading jedi-0.19.1-py2.py3-none-any.whl.metadata (22 kB)
Collecting matplotlib-inline (from ipython)
  Downloading matplotlib_inline-0.1.6-py3-none-any.whl (9.4 kB)
Collecting prompt-toolkit<3.1.0,>=3.0.41 (from ipython)
  Downloading prompt_toolkit-3.0.41-py3-none-any.whl.metadata (6.5 kB)
Collecting stack-data (from ipython)
  Downloading stack_data-0.6.3-py3-none-any.whl.metadata (18 kB)
Collecting traitlets>=5 (from ipython)
  Downloading traitlets-5.14.0-py3-none-any.whl.metadata (10 kB)
Collecting exceptiongroup (from ipython)
  Downloading exceptiongroup-1.2.0-py3-none-any.whl.metadata (6.6 kB)
Collecting pexpect>4.3 (from ipython)
  Downloading pexpect-4.9.0-py2.py3-none-any.whl.metadata (2.5 kB)
Collecting beautifulsoup4 (from nbconvert)
  Downloading beautifulsoup4-4.12.2-py3-none-any.whl (142 kB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 143.0/143.0 kB 158.0 MB/s eta 0:00:00
Collecting bleach!=5.0.0 (from nbconvert)
  Downloading bleach-6.1.0-py3-none-any.whl.metadata (30 kB)
Collecting defusedxml (from nbconvert)
  Downloading defusedxml-0.7.1-py2.py3-none-any.whl (25 kB)
Requirement already satisfied: jinja2>=3.0 in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (from nbconvert) (3.1.2)
Collecting jupyter-core>=4.7 (from nbconvert)
  Downloading jupyter_core-5.5.0-py3-none-any.whl.metadata (3.4 kB)
Collecting jupyterlab-pygments (from nbconvert)
  Downloading jupyterlab_pygments-0.3.0-py3-none-any.whl.metadata (4.4 kB)
Requirement already satisfied: markupsafe>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (from nbconvert) (2.1.3)
Collecting mistune<4,>=2.0.3 (from nbconvert)
  Downloading mistune-3.0.2-py3-none-any.whl.metadata (1.7 kB)
Collecting nbclient>=0.5.0 (from nbconvert)
  Downloading nbclient-0.9.0-py3-none-any.whl.metadata (7.8 kB)
Requirement already satisfied: packaging in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (from nbconvert) (23.2)
Collecting pandocfilters>=1.4.1 (from nbconvert)
  Downloading pandocfilters-1.5.0-py2.py3-none-any.whl (8.7 kB)
Collecting tinycss2 (from nbconvert)
  Downloading tinycss2-1.2.1-py3-none-any.whl (21 kB)
Collecting fastjsonschema (from nbformat)
  Downloading fastjsonschema-2.19.0-py3-none-any.whl.metadata (2.0 kB)
Collecting jsonschema>=2.6 (from nbformat)
  Downloading jsonschema-4.20.0-py3-none-any.whl.metadata (8.1 kB)
Collecting comm>=0.1.1 (from ipykernel)
  Downloading comm-0.2.0-py3-none-any.whl.metadata (3.7 kB)
Collecting debugpy>=1.6.5 (from ipykernel)
  Downloading debugpy-1.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.0 kB)
Collecting jupyter-client>=6.1.12 (from ipykernel)
  Downloading jupyter_client-8.6.0-py3-none-any.whl.metadata (8.3 kB)
Collecting nest-asyncio (from ipykernel)
  Downloading nest_asyncio-1.5.8-py3-none-any.whl.metadata (2.8 kB)
Collecting psutil (from ipykernel)
  Downloading psutil-5.9.6-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (21 kB)
Collecting pyzmq>=20 (from ipykernel)
  Downloading pyzmq-25.1.2-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (4.9 kB)
Collecting tornado>=6.1 (from ipykernel)
  Downloading tornado-6.4-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.5 kB)
Collecting async-lru>=1.0.0 (from jupyterlab)
  Downloading async_lru-2.0.4-py3-none-any.whl.metadata (4.5 kB)
Collecting jupyter-lsp>=2.0.0 (from jupyterlab)
  Downloading jupyter_lsp-2.2.1-py3-none-any.whl.metadata (1.8 kB)
Collecting jupyter-server<3,>=2.4.0 (from jupyterlab)
  Downloading jupyter_server-2.12.1-py3-none-any.whl.metadata (8.4 kB)
Collecting jupyterlab-server<3,>=2.19.0 (from jupyterlab)
  Downloading jupyterlab_server-2.25.2-py3-none-any.whl.metadata (5.9 kB)
Collecting notebook-shim>=0.2 (from jupyterlab)
  Downloading notebook_shim-0.2.3-py3-none-any.whl (13 kB)
Collecting tomli (from jupyterlab)
  Downloading tomli-2.0.1-py3-none-any.whl (12 kB)
Collecting contourpy>=1.0.1 (from matplotlib)
  Downloading contourpy-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.8 kB)
Collecting cycler>=0.10 (from matplotlib)
  Downloading cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)
Collecting fonttools>=4.22.0 (from matplotlib)
  Downloading fonttools-4.46.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (156 kB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 156.2/156.2 kB 143.2 MB/s eta 0:00:00
Collecting kiwisolver>=1.3.1 (from matplotlib)
  Downloading kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.metadata (6.4 kB)
Collecting pillow>=8 (from matplotlib)
  Downloading Pillow-10.1.0-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (9.5 kB)
Collecting pyparsing>=2.3.1 (from matplotlib)
  Downloading pyparsing-3.1.1-py3-none-any.whl.metadata (5.1 kB)
Requirement already satisfied: docutils<0.21,>=0.16 in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (from myst-parser) (0.20.1)
Collecting markdown-it-py~=3.0 (from myst-parser)
  Downloading markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB)
Collecting mdit-py-plugins~=0.4 (from myst-parser)
  Downloading mdit_py_plugins-0.4.0-py3-none-any.whl.metadata (2.7 kB)
Collecting pyyaml (from myst-parser)
  Downloading PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB)
Requirement already satisfied: sphinxcontrib-applehelp in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (from sphinx) (1.0.7)
Requirement already satisfied: sphinxcontrib-devhelp in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (from sphinx) (1.0.5)
Requirement already satisfied: sphinxcontrib-jsmath in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (from sphinx) (1.0.1)
Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (from sphinx) (2.0.4)
Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.9 in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (from sphinx) (1.1.9)
Requirement already satisfied: sphinxcontrib-qthelp in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (from sphinx) (1.0.6)
Requirement already satisfied: snowballstemmer>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (from sphinx) (2.2.0)
Requirement already satisfied: babel>=2.9 in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (from sphinx) (2.13.1)
Requirement already satisfied: alabaster<0.8,>=0.7 in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (from sphinx) (0.7.13)
Requirement already satisfied: imagesize>=1.3 in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (from sphinx) (1.4.1)
Requirement already satisfied: requests>=2.25.0 in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (from sphinx) (2.31.0)
Collecting et-xmlfile (from openpyxl)
  Downloading et_xmlfile-1.1.0-py3-none-any.whl (4.7 kB)
Collecting tenacity>=6.2.0 (from plotly)
  Downloading tenacity-8.2.3-py3-none-any.whl.metadata (1.0 kB)
Collecting platformdirs>=2.2.0 (from pylint)
  Downloading platformdirs-4.1.0-py3-none-any.whl.metadata (11 kB)
Collecting astroid<=3.1.0-dev0,>=3.0.1 (from pylint)
  Downloading astroid-3.0.1-py3-none-any.whl.metadata (4.5 kB)
Collecting isort<6,>=4.2.5 (from pylint)
  Downloading isort-5.13.0-py3-none-any.whl.metadata (12 kB)
Collecting tomlkit>=0.10.1 (from pylint)
  Downloading tomlkit-0.12.3-py3-none-any.whl.metadata (2.7 kB)
Collecting dill>=0.2 (from pylint)
  Downloading dill-0.3.7-py3-none-any.whl.metadata (9.9 kB)
Collecting iniconfig (from pytest)
  Downloading iniconfig-2.0.0-py3-none-any.whl (5.9 kB)
Collecting pluggy<2.0,>=0.12 (from pytest)
  Downloading pluggy-1.3.0-py3-none-any.whl.metadata (4.3 kB)
Collecting coverage>=5.2.1 (from coverage[toml]>=5.2.1->pytest-cov)
  Downloading coverage-7.3.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (8.1 kB)
Collecting execnet>=1.1 (from pytest-xdist)
  Downloading execnet-2.0.2-py3-none-any.whl.metadata (2.9 kB)
Collecting sphinxcontrib-jquery<5,>=4 (from sphinx-rtd-theme)
  Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl (121 kB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 121.1/121.1 kB 149.5 MB/s eta 0:00:00
Collecting apeye>=0.4.0 (from sphinx-toolbox)
  Downloading apeye-1.4.1-py3-none-any.whl.metadata (7.3 kB)
Collecting autodocsumm>=0.2.0 (from sphinx-toolbox)
  Downloading autodocsumm-0.2.11-py3-none-any.whl (14 kB)
Collecting cachecontrol>=0.13.0 (from cachecontrol[filecache]>=0.13.0->sphinx-toolbox)
  Downloading cachecontrol-0.13.1-py3-none-any.whl.metadata (3.0 kB)
Collecting dict2css>=0.2.3 (from sphinx-toolbox)
  Downloading dict2css-0.3.0.post1-py3-none-any.whl.metadata (7.4 kB)
Collecting domdf-python-tools>=2.9.0 (from sphinx-toolbox)
  Downloading domdf_python_tools-3.7.0-py3-none-any.whl.metadata (8.9 kB)
Collecting filelock>=3.8.0 (from sphinx-toolbox)
  Downloading filelock-3.13.1-py3-none-any.whl.metadata (2.8 kB)
Collecting html5lib>=1.1 (from sphinx-toolbox)
  Downloading html5lib-1.1-py2.py3-none-any.whl (112 kB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 112.2/112.2 kB 152.2 MB/s eta 0:00:00
Collecting ruamel.yaml>=0.16.12 (from sphinx-toolbox)
  Downloading ruamel.yaml-0.18.5-py3-none-any.whl.metadata (23 kB)
Collecting sphinx-autodoc-typehints>=1.11.1 (from sphinx-toolbox)
  Downloading sphinx_autodoc_typehints-1.25.2-py3-none-any.whl.metadata (7.8 kB)
Collecting sphinx-jinja2-compat>=0.1.0 (from sphinx-toolbox)
  Downloading sphinx_jinja2_compat-0.2.0.post1-py3-none-any.whl.metadata (6.8 kB)
Collecting sphinx-prompt>=1.1.0 (from sphinx-toolbox)
  Downloading sphinx_prompt-1.8.0-py3-none-any.whl.metadata (3.1 kB)
Collecting sphinx-tabs<3.5.0,>=1.2.1 (from sphinx-toolbox)
  Downloading sphinx_tabs-3.4.4-py3-none-any.whl.metadata (6.3 kB)
Collecting tabulate>=0.8.7 (from sphinx-toolbox)
  Downloading tabulate-0.9.0-py3-none-any.whl (35 kB)
Collecting pybtex>=0.24 (from sphinxcontrib-bibtex)
  Downloading pybtex-0.24.0-py2.py3-none-any.whl (561 kB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 561.4/561.4 kB 152.6 MB/s eta 0:00:00
Collecting pybtex-docutils>=1.0.0 (from sphinxcontrib-bibtex)
  Downloading pybtex_docutils-1.0.3-py3-none-any.whl.metadata (4.3 kB)
Collecting pkginfo>=1.8.1 (from twine)
  Downloading pkginfo-1.9.6-py3-none-any.whl (30 kB)
Collecting readme-renderer>=35.0 (from twine)
  Downloading readme_renderer-42.0-py3-none-any.whl.metadata (2.8 kB)
Collecting requests-toolbelt!=0.9.0,>=0.8.0 (from twine)
  Downloading requests_toolbelt-1.0.0-py2.py3-none-any.whl (54 kB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 54.5/54.5 kB 130.0 MB/s eta 0:00:00
Requirement already satisfied: urllib3>=1.26.0 in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (from twine) (2.1.0)
Collecting importlib-metadata>=3.6 (from twine)
  Downloading importlib_metadata-7.0.0-py3-none-any.whl.metadata (4.9 kB)
Collecting keyring>=15.1 (from twine)
  Downloading keyring-24.3.0-py3-none-any.whl.metadata (20 kB)
Collecting rfc3986>=1.4.0 (from twine)
  Downloading rfc3986-2.0.0-py2.py3-none-any.whl (31 kB)
Collecting rich>=12.0.0 (from twine)
  Downloading rich-13.7.0-py3-none-any.whl.metadata (18 kB)
Collecting apeye-core>=1.0.0b2 (from apeye>=0.4.0->sphinx-toolbox)
  Downloading apeye_core-1.1.4-py3-none-any.whl.metadata (7.6 kB)
Collecting soupsieve>1.2 (from beautifulsoup4->nbconvert)
  Downloading soupsieve-2.5-py3-none-any.whl.metadata (4.7 kB)
Collecting six>=1.9.0 (from bleach!=5.0.0->nbconvert)
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting webencodings (from bleach!=5.0.0->nbconvert)
  Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB)
Collecting msgpack>=0.5.2 (from cachecontrol>=0.13.0->cachecontrol[filecache]>=0.13.0->sphinx-toolbox)
  Downloading msgpack-1.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (9.1 kB)
Collecting cssutils>=2.2.0 (from dict2css>=0.2.3->sphinx-toolbox)
  Downloading cssutils-2.9.0-py3-none-any.whl.metadata (9.1 kB)
Collecting natsort>=7.0.1 (from domdf-python-tools>=2.9.0->sphinx-toolbox)
  Downloading natsort-8.4.0-py3-none-any.whl.metadata (21 kB)
Collecting zipp>=0.5 (from importlib-metadata>=3.6->twine)
  Downloading zipp-3.17.0-py3-none-any.whl.metadata (3.7 kB)
Collecting pip-api (from isort<6,>=4.2.5->pylint)
  Downloading pip_api-0.0.30-py3-none-any.whl (111 kB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 111.6/111.6 kB 156.1 MB/s eta 0:00:00
Collecting pipreqs (from isort<6,>=4.2.5->pylint)
  Downloading pipreqs-0.4.13-py2.py3-none-any.whl (33 kB)
Collecting requirementslib (from isort<6,>=4.2.5->pylint)
  Downloading requirementslib-3.0.0-py2.py3-none-any.whl.metadata (13 kB)
Collecting parso<0.9.0,>=0.8.3 (from jedi>=0.16->ipython)
  Downloading parso-0.8.3-py2.py3-none-any.whl (100 kB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 100.8/100.8 kB 146.3 MB/s eta 0:00:00
Collecting attrs>=22.2.0 (from jsonschema>=2.6->nbformat)
  Downloading attrs-23.1.0-py3-none-any.whl (61 kB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 61.2/61.2 kB 144.8 MB/s eta 0:00:00
Collecting jsonschema-specifications>=2023.03.6 (from jsonschema>=2.6->nbformat)
  Downloading jsonschema_specifications-2023.11.2-py3-none-any.whl.metadata (3.0 kB)
Collecting referencing>=0.28.4 (from jsonschema>=2.6->nbformat)
  Downloading referencing-0.32.0-py3-none-any.whl.metadata (2.7 kB)
Collecting rpds-py>=0.7.1 (from jsonschema>=2.6->nbformat)
  Downloading rpds_py-0.13.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.9 kB)
Collecting anyio>=3.1.0 (from jupyter-server<3,>=2.4.0->jupyterlab)
  Downloading anyio-4.1.0-py3-none-any.whl.metadata (4.5 kB)
Collecting argon2-cffi (from jupyter-server<3,>=2.4.0->jupyterlab)
  Downloading argon2_cffi-23.1.0-py3-none-any.whl.metadata (5.2 kB)
Collecting jupyter-events>=0.9.0 (from jupyter-server<3,>=2.4.0->jupyterlab)
  Downloading jupyter_events-0.9.0-py3-none-any.whl.metadata (5.7 kB)
Collecting jupyter-server-terminals (from jupyter-server<3,>=2.4.0->jupyterlab)
  Downloading jupyter_server_terminals-0.4.4-py3-none-any.whl (13 kB)
Collecting overrides (from jupyter-server<3,>=2.4.0->jupyterlab)
  Downloading overrides-7.4.0-py3-none-any.whl.metadata (5.7 kB)
Collecting prometheus-client (from jupyter-server<3,>=2.4.0->jupyterlab)
  Downloading prometheus_client-0.19.0-py3-none-any.whl.metadata (1.8 kB)
Collecting send2trash>=1.8.2 (from jupyter-server<3,>=2.4.0->jupyterlab)
  Downloading Send2Trash-1.8.2-py3-none-any.whl (18 kB)
Collecting terminado>=0.8.3 (from jupyter-server<3,>=2.4.0->jupyterlab)
  Downloading terminado-0.18.0-py3-none-any.whl.metadata (5.8 kB)
Collecting websocket-client (from jupyter-server<3,>=2.4.0->jupyterlab)
  Downloading websocket_client-1.7.0-py3-none-any.whl.metadata (7.9 kB)
Collecting json5>=0.9.0 (from jupyterlab-server<3,>=2.19.0->jupyterlab)
  Downloading json5-0.9.14-py2.py3-none-any.whl.metadata (10 kB)
Collecting jaraco.classes (from keyring>=15.1->twine)
  Downloading jaraco.classes-3.3.0-py3-none-any.whl.metadata (2.9 kB)
Collecting SecretStorage>=3.2 (from keyring>=15.1->twine)
  Downloading SecretStorage-3.3.3-py3-none-any.whl (15 kB)
Collecting jeepney>=0.4.2 (from keyring>=15.1->twine)
  Downloading jeepney-0.8.0-py3-none-any.whl (48 kB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 48.4/48.4 kB 134.7 MB/s eta 0:00:00
Collecting mdurl~=0.1 (from markdown-it-py~=3.0->myst-parser)
  Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)
Collecting ptyprocess>=0.5 (from pexpect>4.3->ipython)
  Downloading ptyprocess-0.7.0-py2.py3-none-any.whl (13 kB)
Collecting wcwidth (from prompt-toolkit<3.1.0,>=3.0.41->ipython)
  Downloading wcwidth-0.2.12-py2.py3-none-any.whl.metadata (14 kB)
Collecting latexcodec>=1.0.4 (from pybtex>=0.24->sphinxcontrib-bibtex)
  Downloading latexcodec-2.0.1-py2.py3-none-any.whl (18 kB)
Collecting nh3>=0.2.14 (from readme-renderer>=35.0->twine)
  Downloading nh3-0.2.15-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.7 kB)
Requirement already satisfied: charset-normalizer<4,>=2 in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (from requests>=2.25.0->sphinx) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (from requests>=2.25.0->sphinx) (3.6)
Requirement already satisfied: certifi>=2017.4.17 in /home/docs/checkouts/readthedocs.org/user_builds/conflowgen/envs/201/lib/python3.10/site-packages (from requests>=2.25.0->sphinx) (2023.11.17)
Collecting ruamel.yaml.clib>=0.2.7 (from ruamel.yaml>=0.16.12->sphinx-toolbox)
  Downloading ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl.metadata (2.2 kB)
INFO: pip is looking at multiple versions of sphinx-tabs to determine which version is compatible with other requirements. This could take a while.
Collecting sphinx-tabs<3.5.0,>=1.2.1 (from sphinx-toolbox)
  Downloading sphinx_tabs-3.4.1-py3-none-any.whl (10.0 kB)
  Downloading sphinx_tabs-3.4.0-py3-none-any.whl (10.0 kB)
  Downloading sphinx_tabs-3.3.1-py3-none-any.whl (10.0 kB)
  Downloading sphinx_tabs-3.3.0-py3-none-any.whl (10 kB)
  Downloading sphinx_tabs-3.2.0-py3-none-any.whl (9.8 kB)
  Downloading sphinx_tabs-3.1.0-py3-none-any.whl (9.7 kB)
  Downloading sphinx_tabs-3.0.0-py3-none-any.whl (9.7 kB)
INFO: pip is still looking at multiple versions of sphinx-tabs to determine which version is compatible with other requirements. This could take a while.
  Downloading sphinx_tabs-2.1.0-py3-none-any.whl (9.6 kB)
  Downloading sphinx_tabs-2.0.1-py3-none-any.whl (9.4 kB)
  Downloading sphinx_tabs-2.0.0-py3-none-any.whl (9.3 kB)
  Downloading sphinx_tabs-1.3.0-py3-none-any.whl (22 kB)
  Downloading sphinx_tabs-1.2.1-py3-none-any.whl (22 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
Collecting sphinx-prompt>=1.1.0 (from sphinx-toolbox)
  Downloading sphinx_prompt-1.7.0-py3-none-any.whl.metadata (3.4 kB)
  Downloading sphinx_prompt-1.6.0-py3-none-any.whl (5.2 kB)
INFO: pip is looking at multiple versions of sphinx-prompt to determine which version is compatible with other requirements. This could take a while.
  Downloading sphinx_prompt-1.5.0-py3-none-any.whl (4.5 kB)
  Downloading sphinx_prompt-1.4.0-py3-none-any.whl (4.1 kB)
  Downloading sphinx_prompt-1.3.0-py3-none-any.whl (3.8 kB)
  Downloading sphinx_prompt-1.2.0-py3-none-any.whl (3.8 kB)
  Downloading sphinx-prompt-1.1.0.tar.gz (7.9 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Collecting sphinx-autodoc-typehints>=1.11.1 (from sphinx-toolbox)
  Downloading sphinx_autodoc_typehints-1.25.1-py3-none-any.whl.metadata (7.8 kB)
INFO: pip is still looking at multiple versions of sphinx-prompt to determine which version is compatible with other requirements. This could take a while.
  Downloading sphinx_autodoc_typehints-1.25.0-py3-none-any.whl.metadata (7.8 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
  Downloading sphinx_autodoc_typehints-1.24.1-py3-none-any.whl.metadata (7.8 kB)
  Downloading sphinx_autodoc_typehints-1.24.0-py3-none-any.whl.metadata (7.8 kB)
  Downloading sphinx_autodoc_typehints-1.23.3-py3-none-any.whl.metadata (8.5 kB)
  Downloading sphinx_autodoc_typehints-1.23.2-py3-none-any.whl.metadata (8.5 kB)
  Downloading sphinx_autodoc_typehints-1.23.1-py3-none-any.whl.metadata (8.6 kB)
  Downloading sphinx_autodoc_typehints-1.23.0-py3-none-any.whl (17 kB)
Collecting sphinx
  Downloading sphinx-6.2.1-py3-none-any.whl (3.0 MB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 3.0/3.0 MB 140.5 MB/s eta 0:00:00
INFO: pip is looking at multiple versions of sphinx to determine which version is compatible with other requirements. This could take a while.
  Downloading sphinx-6.2.0-py3-none-any.whl (3.0 MB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 3.0/3.0 MB 143.3 MB/s eta 0:00:00
  Downloading sphinx-6.1.3-py3-none-any.whl (3.0 MB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 3.0/3.0 MB 128.3 MB/s eta 0:00:00
  Downloading sphinx-6.1.2-py3-none-any.whl (3.0 MB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 3.0/3.0 MB 129.5 MB/s eta 0:00:00
  Downloading sphinx-6.1.1-py3-none-any.whl (3.0 MB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 3.0/3.0 MB 143.6 MB/s eta 0:00:00
  Downloading sphinx-6.1.0-py3-none-any.whl (3.0 MB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 3.0/3.0 MB 142.9 MB/s eta 0:00:00
  Downloading sphinx-6.0.1-py3-none-any.whl (3.0 MB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 3.0/3.0 MB 142.4 MB/s eta 0:00:00
  Downloading sphinx-6.0.0-py3-none-any.whl (3.0 MB)
     โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 3.0/3.0 MB 144.1 MB/s eta 0:00:00
INFO: pip is still looking at multiple versions of sphinx to determine which version is compatible with other requirements. This could take a while.
Collecting sphinx-autodoc-typehints>=1.11.1 (from sphinx-toolbox)
  Downloading sphinx_autodoc_typehints-1.22-py3-none-any.whl (17 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
  Downloading sphinx_autodoc_typehints-1.21.8-py3-none-any.whl (17 kB)
  Downloading sphinx_autodoc_typehints-1.21.7-py3-none-any.whl (16 kB)
  Downloading sphinx_autodoc_typehints-1.21.6-py3-none-any.whl (16 kB)
  Downloading sphinx_autodoc_typehints-1.21.5-py3-none-any.whl (16 kB)
  Downloading sphinx_autodoc_typehints-1.21.4-py3-none-any.whl (16 kB)
  Downloading sphinx_autodoc_typehints-1.21.3-py3-none-any.whl (15 kB)
  Downloading sphinx_autodoc_typehints-1.21.2-py3-none-any.whl (13 kB)
  Downloading sphinx_autodoc_typehints-1.21.1-py3-none-any.whl (13 kB)
  Downloading sphinx_autodoc_typehints-1.21.0-py3-none-any.whl (13 kB)
  Downloading sphinx_autodoc_typehints-1.20.2-py3-none-any.whl (12 kB)
  Downloading sphinx_autodoc_typehints-1.20.1-py3-none-any.whl (12 kB)
  Downloading sphinx_autodoc_typehints-1.20.0-py3-none-any.whl (12 kB)
  Downloading sphinx_autodoc_typehints-1.19.5-py3-none-any.whl (12 kB)
  Downloading sphinx_autodoc_typehints-1.19.4-py3-none-any.whl (12 kB)
  Downloading sphinx_autodoc_typehints-1.19.3-py3-none-any.whl (12 kB)
  Downloading sphinx_autodoc_typehints-1.19.2-py3-none-any.whl (12 kB)
  Downloading sphinx_autodoc_typehints-1.19.1-py3-none-any.whl (12 kB)
  Downloading sphinx_autodoc_typehints-1.19.0-py3-none-any.whl (12 kB)
  Downloading sphinx_autodoc_typehints-1.18.3-py3-none-any.whl (12 kB)
  Downloading sphinx_autodoc_typehints-1.18.2-py3-none-any.whl (12 kB)
  Downloading sphinx_autodoc_typehints-1.18.1-py3-none-any.whl (12 kB)
  Downloading sphinx_autodoc_typehints-1.18.0-py3-none-any.whl (12 kB)
  Downloading sphinx_autodoc_typehints-1.17.1-py3-none-any.whl (12 kB)
  Downloading sphinx_autodoc_typehints-1.17.0-py3-none-any.whl (12 kB)
  Downloading sphinx_autodoc_typehints-1.16.0-py3-none-any.whl (12 kB)
  Downloading sphinx_autodoc_typehints-1.15.3-py3-none-any.whl (11 kB)
  Downloading sphinx_autodoc_typehints-1.15.2-py3-none-any.whl (11 kB)
  Downloading sphinx_autodoc_typehints-1.15.1-py3-none-any.whl (11 kB)
  Downloading sphinx_autodoc_typehints-1.15.0-py3-none-any.whl (11 kB)
  Downloading sphinx_autodoc_typehints-1.14.1-py3-none-any.whl (11 kB)
  Downloading sphinx_autodoc_typehints-1.14.0-py3-none-any.whl (11 kB)
  Downloading sphinx_autodoc_typehints-1.13.1-py3-none-any.whl (10 kB)
  Downloading sphinx_autodoc_typehints-1.13.0-py3-none-any.whl (10 kB)
  Downloading sphinx_autodoc_typehints-1.12.0-py3-none-any.whl (9.4 kB)
  Downloading sphinx_autodoc_typehints-1.11.1-py3-none-any.whl (8.7 kB)
Collecting readme-renderer>=35.0 (from twine)
  Downloading readme_renderer-41.0-py3-none-any.whl.metadata (2.7 kB)
  Downloading readme_renderer-40.0-py3-none-any.whl.metadata (2.7 kB)
  Downloading readme_renderer-37.3-py3-none-any.whl (14 kB)
  Downloading readme_renderer-37.2-py3-none-any.whl (14 kB)
  Downloading readme_renderer-37.1-py3-none-any.whl (14 kB)
  Downloading readme_renderer-37.0-py3-none-any.whl (14 kB)
  Downloading readme_renderer-36.0-py3-none-any.whl (14 kB)
  Downloading readme_renderer-35.0-py3-none-any.whl (14 kB)
Collecting pybtex-docutils>=1.0.0 (from sphinxcontrib-bibtex)
  Downloading pybtex_docutils-1.0.2-py3-none-any.whl (6.3 kB)
  Downloading pybtex_docutils-1.0.1-py3-none-any.whl (4.8 kB)


Command killed due to timeout or excessive memory consumption

It becomes interestng in the line mentioning Collecting sphinx-tabs<3.5.0,>=1.2.1 (from sphinx-toolbox)

Expected result:

In the best case, pip would not try out so many different versions.

Reproduces how often:

Each time I try to run this on RTD.

Version

  • Operating System: ubuntu-20.04
  • Python: 3.10
  • sphinx-toolbox: 3.5.0

Installation source

pip, or to be more precise:
python -m pip install --upgrade --upgrade-strategy only-if-needed --no-cache-dir

Other Additional Information:

A failed build can be seen here:
https://readthedocs.org/projects/conflowgen/builds/22803641/

Unable to get `more_autodoc.genericalias` to work.

Description

I am trying to use sphinx_toolbox.more_autodoc.genericalias in my project to document the type alias in my project.

See the PR where I try to integrate it: jmlemetayer/python-inotify-watcher#25

Steps to Reproduce

  1. I have added sphinx_toolbox.more_autodoc.genericalias to the extensions list in conf.py:
    jmlemetayer/python-inotify-watcher@6a15656

Actual result:

The generated docs does not have any sign of type alias:
https://python-inotify-watcher--25.org.readthedocs.build/en/25/_autosummary/inotify_watcher.html

Expected result:

My type alias arfe documented somewhere (eg. UserPathType: Alias of Union[pathlib.Path, str]).

Version

Example Issue

This is an example issue to demonstrate sphinx-toolbox's tooltips.

Styling lost with jupyter-book and automodule/autonamedtuple

Hi!
Writing some documentation using jupyter-book, I decided to use this package for better looking api documention. (using sphinx ext.autodoc). However, some styling was lost when using autonamedtuple. The same applies for other packages like enum_tools , and pydantic models with autodoc_pydantic. However, authors of autodoc_pydantic was able to fix this by using sphinx events to add missing css classes. I.e "py namedtuple" does not render ok, but "py class namedtuple" does.

Please see JB for the issue, and autodoc_pydantic . Would you be willing to implement such a fix? Currently I do a post documentation build step, where I add "class" to all html elements with "py namedtuple".

Support sphinx-tabs <= 3.4.0

๐Ÿž Problem
While trying to update to sphinx-tabs==3.4.0, I got the following error:

The user requested sphinx-tabs==3.4.0
sphinx-toolbox 3.1.1 depends on sphinx-tabs<3.4.0 and >=1.2.1

๐Ÿ’ก Solution
I am not aware about the reasons behind sphinx-tabs<3.4.0 in this project, but I wonder if it is possible to update this requirement to sphinx-tabs<3.5.0.

2.18.0: pytest is failing

Description

  • I'm trying to package your module as an rpm package. So I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.
  • Temporary I'm on pyton 3.8.13 but soon will move to 3.9.x so I've ignored those tests which have been tryng to import pprint36

Steps to Reproduce

  • python3 -sBm build -w --no-isolation
  • because I'm calling build with --no-isolation I'm using during all processes only locally installed modules
  • install .whl file in </install/prefix>
  • run pytest with PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>

Expected result:

pytest should not fail.

Reproduces how often:

N/A

Version

  • Operating System: Linux x86/64
  • Python: 3.8.13
  • sphinx-toolbox: 2.18.0

Installation source

I'm using as input autogenerated from git tag tar ball.

Other Additional Information:

List of modules installed in build env

Package                       Version
----------------------------- -----------------
alabaster                     0.7.12
apeye                         1.1.0
appdirs                       1.4.4
asttokens                     2.0.5
attrs                         21.4.0
autodocsumm                   0.2.7
Babel                         2.9.1
beautifulsoup4                4.10.0
build                         0.7.0
CacheControl                  0.12.10
certifi                       2021.10.8
cffi                          1.15.0
charset-normalizer            2.0.12
click                         8.0.4
coincidence                   0.6.1
consolekit                    1.3.1
cryptography                  36.0.2
cssutils                      2.4.0
cycler                        0.11.0
deprecation                   2.1.0
deprecation-alias             0.3.1
dict2css                      0.3.0
dist-meta                     0.3.4
distro                        1.7.0
docutils                      0.17.1
dom_toml                      0.5.1
domdf-python-tools            3.2.2
extras                        1.0.0
first                         2.0.2
fixtures                      3.0.0
flake8                        4.0.1
flake8-dunder-all             0.1.8
fonttools                     4.31.2
gpg                           1.17.1-unknown
handy-archives                0.1.2
html5lib                      1.1
hypothesis                    6.41.0
idna                          3.3
imagesize                     1.3.0
importlib-metadata            4.11.3
importlib-resources           5.6.0
iniconfig                     1.1.1
jeepney                       0.8.0
Jinja2                        3.1.1
jsonschema                    4.4.0
kiwisolver                    1.3.2
libcomps                      0.1.18
lockfile                      0.12.2
MarkupSafe                    2.1.1
matplotlib                    3.5.1
mccabe                        0.7.0
mistletoe                     0.8.2
msgpack                       1.0.3
natsort                       8.0.2
nocaselist                    1.0.5
numpy                         1.22.3
olefile                       0.46
packaging                     21.3
pbr                           5.8.1
pep517                        0.12.0
Pillow                        9.1.0
pip                           22.0.4
pluggy                        1.0.0
ply                           3.11
py                            1.11.0
pycodestyle                   2.8.0
pycparser                     2.21
pyflakes                      2.4.0
Pygments                      2.11.2
PyGObject                     3.42.0
pyparsing                     3.0.7
pyproject-parser              0.4.2
pyrsistent                    0.18.1
pytest                        7.1.1
pytest-datadir                1.3.1
pytest-httpserver             1.0.4
pytest-regressions            2.3.1
pytest-timeout                2.1.0
python-dateutil               2.8.2
pytz                          2022.1
PyYAML                        6.0
requests                      2.27.1
rpm                           4.17.0
ruamel.yaml                   0.17.19
ruamel.yaml.clib              0.2.6
shippinglabel                 1.0.1
six                           1.16.0
snowballstemmer               2.2.0
sortedcontainers              2.4.0
soupsieve                     2.3.1
Sphinx                        4.5.0.dev20220404
sphinx-autodoc-typehints      1.12.0
sphinx-prompt                 1.4.0
sphinx-tabs                   3.3.1
sphinxcontrib-applehelp       1.0.2.dev20220108
sphinxcontrib-devhelp         1.0.2.dev20220108
sphinxcontrib-htmlhelp        2.0.0
sphinxcontrib-jsmath          1.0.1.dev20220108
sphinxcontrib-qthelp          1.0.3.dev20220108
sphinxcontrib-serializinghtml 1.1.5
sphobjinv                     2.2.2
tabulate                      0.8.9
testtools                     2.5.0
toml                          0.10.2
tomli                         2.0.1
trove-classifiers             2022.3.30
typing_extensions             4.0.1
urllib3                       1.26.8
webencodings                  0.5.1
Werkzeug                      2.0.3
wheel                         0.37.1
whey                          0.0.17
zipp                          3.8.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.