pyhf
pyhf copied to clipboard
Click v8.2.X breaks docs build with unexpected keyword argument 'ctx'
For click v8.1.8
https://github.com/scikit-hep/pyhf/blob/c30e3376e7aeaff1499a6510adbfa3feb469f377/.github/workflows/docs.yml#L76-L77
runs successfully, but for click v8.2.0+
cd docs
uv pip install --upgrade 'click<8.2.1' && make clean && make html
it fails with
updating environment: [new config] 165 added, 0 changed, 0 removed
reading sources... [ 76%] cli
Exception occurred:
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/click/core.py", line 3075, in make_metavar
var = self.type.get_metavar(param=self, ctx=ctx)
TypeError: DocumentedChoice.get_metavar() got an unexpected keyword argument 'ctx'
The full traceback has been saved in /tmp/sphinx-err-q7wbz8va.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!
make: *** [Makefile:57: html] Error 2
$ uv pip show click
Using Python 3.13.6 environment at: /home/feickert/Code/GitHub/scikit-hep/pyhf/.venv
Name: click
Version: 8.2.0
Location: /home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages
Requires:
Required-by: click-completion, papermill, pyhf, sphinx-click
where the full traceback mentioned in the logs is
Traceback
# Platform: linux; (Linux-6.8.0-79-generic-x86_64-with-glibc2.39)
# Sphinx version: 8.1.3
# Python version: 3.13.6 (CPython)
# Docutils version: 0.21.2
# Jinja2 version: 3.1.6
# Pygments version: 2.19.2
# Last messages:
# babel
#
#
# reading sources... [ 76%]
# citations
#
#
# reading sources... [ 76%]
# cli
#
# Loaded extensions:
# sphinx.ext.mathjax (8.1.3)
# alabaster (1.0.0)
# sphinxcontrib.applehelp (2.0.0)
# sphinxcontrib.devhelp (2.0.0)
# sphinxcontrib.htmlhelp (2.1.0)
# sphinxcontrib.serializinghtml (2.0.0)
# sphinxcontrib.qthelp (2.0.0)
# sphinx.ext.autodoc.preserve_defaults (8.1.3)
# sphinx.ext.autodoc.type_comment (8.1.3)
# sphinx.ext.autodoc.typehints (8.1.3)
# sphinx.ext.autodoc (8.1.3)
# sphinx.ext.autosummary (8.1.3)
# sphinx.ext.coverage (8.1.3)
# sphinx.ext.ifconfig (8.1.3)
# sphinx.ext.viewcode (8.1.3)
# sphinx.ext.githubpages (8.1.3)
# sphinx.ext.intersphinx (8.1.3)
# sphinxcontrib.bibtex (2.6.5)
# sphinx.ext.napoleon (8.1.3)
# sphinx_click.ext (unknown version)
# nbsphinx (0.9.7)
# sphinx_issues (5.0.1)
# sphinx_copybutton (0.5.2)
# xref (unknown version)
# jupyterlite_sphinx (unknown version)
# pydata_sphinx_theme (unknown version)
# Traceback:
Traceback (most recent call last):
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/sphinx/cmd/build.py", line 514, in build_main
app.build(args.force_all, args.filenames)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/sphinx/application.py", line 381, in build
self.builder.build_update()
~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/sphinx/builders/__init__.py", line 358, in build_update
self.build(
~~~~~~~~~~^
to_build,
^^^^^^^^^
summary=__('targets for %d source files that are out of date')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
% len(to_build),
^^^^^^^^^^^^^^^^
)
^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/sphinx/builders/__init__.py", line 385, in build
updated_docnames = set(self.read())
~~~~~~~~~^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/sphinx/builders/__init__.py", line 502, in read
self._read_serial(docnames)
~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/sphinx/builders/__init__.py", line 567, in _read_serial
self.read_doc(docname)
~~~~~~~~~~~~~^^^^^^^^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/sphinx/builders/__init__.py", line 630, in read_doc
publisher.publish()
~~~~~~~~~~~~~~~~~^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/docutils/core.py", line 234, in publish
self.document = self.reader.read(self.source, self.parser,
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
self.settings)
^^^^^^^^^^^^^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/sphinx/io.py", line 106, in read
self.parse()
~~~~~~~~~~^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/docutils/readers/__init__.py", line 76, in parse
self.parser.parse(self.input, document)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/sphinx/parsers.py", line 85, in parse
self.statemachine.run(inputlines, document, inliner=self.inliner)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 169, in run
results = StateMachineWS.run(self, input_lines, input_offset,
input_source=document['source'])
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/docutils/statemachine.py", line 233, in run
context, next_state, result = self.check_line(
~~~~~~~~~~~~~~~^
context, state, transitions)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/docutils/statemachine.py", line 445, in check_line
return method(match, context, next_state)
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2790, in underline
self.section(title, source, style, lineno - 1, messages)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 325, in section
self.new_subsection(title, lineno, messages)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 391, in new_subsection
newabsoffset = self.nested_parse(
self.state_machine.input_lines[offset:], input_offset=absoffset,
node=section_node, match_titles=True)
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 279, in nested_parse
state_machine.run(block, input_offset, memo=self.memo,
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
node=node, match_titles=match_titles)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 195, in run
results = StateMachineWS.run(self, input_lines, input_offset)
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/docutils/statemachine.py", line 233, in run
context, next_state, result = self.check_line(
~~~~~~~~~~~~~~~^
context, state, transitions)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/docutils/statemachine.py", line 445, in check_line
return method(match, context, next_state)
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2357, in explicit_markup
nodelist, blank_finish = self.explicit_construct(match)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2369, in explicit_construct
return method(self, expmatch)
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2106, in directive
return self.run_directive(
~~~~~~~~~~~~~~~~~~^
directive_class, match, type_name, option_presets)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2156, in run_directive
result = directive_instance.run()
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/sphinx_click/ext.py", line 590, in run
return self._generate_nodes(prog_name, command, None, nested, commands)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/sphinx_click/ext.py", line 553, in _generate_nodes
self._generate_nodes(
~~~~~~~~~~~~~~~~~~~~^
command.name, command, parent=parent, nested=nested
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/sphinx_click/ext.py", line 528, in _generate_nodes
for line in lines:
^^^^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/sphinx_click/ext.py", line 361, in _format_command
for line in _format_usage(ctx):
~~~~~~~~~~~~~^^^^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/sphinx_click/ext.py", line 43, in process_lines
lines = list(func(ctx))
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/sphinx_click/ext.py", line 174, in _format_usage
for line in _get_usage(ctx).splitlines():
~~~~~~~~~~^^^^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/sphinx_click/ext.py", line 67, in _get_usage
pieces = ctx.command.collect_usage_pieces(ctx)
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/click/core.py", line 1012, in collect_usage_pieces
rv.extend(param.get_usage_pieces(ctx))
~~~~~~~~~~~~~~~~~~~~~~^^^^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/click/core.py", line 3104, in get_usage_pieces
return [self.make_metavar(ctx)]
~~~~~~~~~~~~~~~~~^^^^^
File "/home/feickert/Code/GitHub/scikit-hep/pyhf/.venv/lib/python3.13/site-packages/click/core.py", line 3075, in make_metavar
var = self.type.get_metavar(param=self, ctx=ctx)
TypeError: DocumentedChoice.get_metavar() got an unexpected keyword argument 'ctx'
The last working build of the docs on CI had the environment of
Package Version
----------------------------- --------------
accessible-pygments 0.0.5
aiohappyeyeballs 2.6.1
aiohttp 3.13.0
aiosignal 1.4.0
alabaster 1.0.0
ansicolors 1.1.8
anyio 4.11.0
argcomplete 3.6.2
argon2-cffi 25.1.0
argon2-cffi-bindings 25.1.0
arrow 1.3.0
asttokens 3.0.0
async-lru 2.0.5
attrs 25.4.0
awkward 2.8.9
awkward_cpp 50
babel 2.17.0
beautifulsoup4 4.14.2
bleach 6.2.0
certifi 2025.10.5
cffi 2.0.0
charset-normalizer 3.4.3
click 8.3.0
cloudpickle 3.1.1
comm 0.2.3
contourpy 1.3.3
coverage 7.10.7
cramjam 2.11.0
cycler 0.12.1
debugpy 1.8.17
decorator 5.2.1
defusedxml 0.7.1
docutils 0.21.2
doit 0.36.0
entrypoints 0.4
executing 2.2.1
fastjsonschema 2.21.2
fonttools 4.60.1
fqdn 1.5.1
frozenlist 1.8.0
fsspec 2025.9.0
graphviz 0.21
h11 0.16.0
httpcore 1.0.9
httpx 0.28.1
idna 3.10
imagesize 1.4.1
importlib_metadata 8.7.0
iniconfig 2.1.0
intersphinx_registry 0.2510.5
ipykernel 6.30.1
ipympl 0.9.7
ipython 9.6.0
ipython_pygments_lexers 1.1.1
ipywidgets 8.1.7
isoduration 20.11.0
jedi 0.19.2
Jinja2 3.1.6
json5 0.12.1
jsonpatch 1.33
jsonpointer 3.0.0
jsonschema 4.25.1
jsonschema-specifications 2025.9.1
jupyter_client 8.6.3
jupyter_core 5.8.1
jupyter-events 0.12.0
jupyter-lsp 2.3.0
jupyter_server 2.17.0
jupyter_server_terminals 0.5.3
jupyterlab 4.4.9
jupyterlab_pygments 0.3.0
jupyterlab_server 2.27.3
jupyterlab_widgets 3.0.15
jupyterlite-core 0.6.4
jupyterlite-pyodide-kernel 0.6.1
jupyterlite-sphinx 0.22.0
jupytext 1.17.3
kiwisolver 1.4.9
lark 1.3.0
latexcodec 3.0.1
markdown-it-py 4.0.0
MarkupSafe 3.0.3
matplotlib 3.10.6
matplotlib-inline 0.1.7
mdit-py-plugins 0.5.0
mdurl 0.1.2
mistune 3.1.4
multidict 6.7.0
nbclient 0.10.2
nbconvert 7.16.6
nbformat 5.10.4
nbsphinx 0.9.7
nest-asyncio 1.6.0
notebook 7.4.7
notebook_shim 0.2.4
numpy 2.3.3
packaging 25.0
pandas 2.3.3
pandocfilters 1.5.1
papermill 2.6.0
parso 0.8.5
pexpect 4.9.0
pillow 11.3.0
pip 25.2
pkginfo 1.12.1.2
platformdirs 4.4.0
pluggy 1.6.0
prometheus_client 0.23.1
prompt_toolkit 3.0.52
propcache 0.4.0
psutil 7.1.0
ptyprocess 0.7.0
pure_eval 0.2.3
py-cpuinfo 9.0.0
pyarrow 21.0.0
pybtex 0.25.1
pybtex-docutils 1.0.3
pycparser 2.23
pydata-sphinx-theme 0.16.1
pydocstyle 6.3.0
pygal 3.0.5
pygaljs 1.0.2
Pygments 2.19.2
pyhf 0.7.1.dev294
pyparsing 3.2.5
pytest 8.4.2
pytest-benchmark 5.1.0
pytest-console-scripts 1.4.1
pytest-mock 3.15.1
pytest-mpl 0.17.0
pytest-socket 0.7.0
python-dateutil 2.9.0.post0
python-json-logger 4.0.0
pytz 2025.2
PyYAML 6.0.3
pyzmq 27.1.0
referencing 0.36.2
requests 2.32.5
requests-mock 1.12.1
rfc3339-validator 0.1.4
rfc3986-validator 0.1.1
rfc3987-syntax 1.1.0
rpds-py 0.27.1
scikit_hep_testdata 0.5.8
scipy 1.15.3
scrapbook 0.5.0
Send2Trash 1.8.3
setuptools 80.9.0
six 1.17.0
sniffio 1.3.1
snowballstemmer 3.0.1
soupsieve 2.8
Sphinx 8.1.3
sphinx-click 6.1.0
sphinx-copybutton 0.5.2
sphinx-issues 5.0.1
sphinxcontrib-applehelp 2.0.0
sphinxcontrib-bibtex 2.6.5
sphinxcontrib-devhelp 2.0.0
sphinxcontrib-htmlhelp 2.1.0
sphinxcontrib-jsmath 1.0.1
sphinxcontrib-qthelp 2.0.0
sphinxcontrib-serializinghtml 2.0.0
stack-data 0.6.3
tenacity 9.1.2
terminado 0.18.1
tinycss2 1.4.0
tomlkit 0.13.3
tornado 6.5.2
tqdm 4.67.1
traitlets 5.14.3
types-python-dateutil 2.9.0.20250822
typing_extensions 4.15.0
tzdata 2025.2
uproot 5.6.6
uri-template 1.3.0
urllib3 2.5.0
uv 0.8.24
wcwidth 0.2.14
webcolors 24.11.1
webencodings 0.5.1
websocket-client 1.8.0
widgetsnbextension 4.0.14
xmltodict 1.0.2
xxhash 3.6.0
yarl 1.22.0
yq 3.4.3
zipp 3.23.0
with
$ grep click
click 8.3.0
sphinx-click 6.1.0
$ grep 'sphinx\|Sphinx'
intersphinx_registry 0.2510.5
jupyterlite-sphinx 0.22.0
nbsphinx 0.9.7
pydata-sphinx-theme 0.16.1
Sphinx 8.1.3
sphinx-click 6.1.0
sphinx-copybutton 0.5.2
sphinx-issues 5.0.1
sphinxcontrib-applehelp 2.0.0
sphinxcontrib-bibtex 2.6.5
sphinxcontrib-devhelp 2.0.0
sphinxcontrib-htmlhelp 2.1.0
sphinxcontrib-jsmath 1.0.1
sphinxcontrib-qthelp 2.0.0
sphinxcontrib-serializinghtml 2.0.0
Seems like maybe a bit of a non-issue given that if a seperate docs environment is made with
uv pip install --upgrade ".[docs,test]"
then things build as expected with
$ uv pip list
Using Python 3.13.7 environment at: .docs
Package Version
----------------------------- --------------
accessible-pygments 0.0.5
alabaster 1.0.0
ansicolors 1.1.8
anyio 4.11.0
argon2-cffi 25.1.0
argon2-cffi-bindings 25.1.0
arrow 1.3.0
asttokens 3.0.0
async-lru 2.0.5
attrs 25.4.0
awkward 2.8.9
awkward-cpp 50
babel 2.17.0
beautifulsoup4 4.14.2
bleach 6.2.0
certifi 2025.10.5
cffi 2.0.0
charset-normalizer 3.4.4
click 8.3.0
cloudpickle 3.1.1
comm 0.2.3
contourpy 1.3.3
coverage 7.10.7
cramjam 2.11.0
cycler 0.12.1
debugpy 1.8.17
decorator 5.2.1
defusedxml 0.7.1
docutils 0.21.2
doit 0.36.0
entrypoints 0.4
executing 2.2.1
fastjsonschema 2.21.2
fonttools 4.60.1
fqdn 1.5.1
fsspec 2025.9.0
graphviz 0.21
h11 0.16.0
httpcore 1.0.9
httpx 0.28.1
idna 3.11
imagesize 1.4.1
importlib-metadata 8.7.0
iniconfig 2.1.0
intersphinx-registry 0.2510.9
ipykernel 7.0.0
ipympl 0.9.8
ipython 9.6.0
ipython-pygments-lexers 1.1.1
ipywidgets 8.1.7
isoduration 20.11.0
jedi 0.19.2
jinja2 3.1.6
json5 0.12.1
jsonpatch 1.33
jsonpointer 3.0.0
jsonschema 4.25.1
jsonschema-specifications 2025.9.1
jupyter-client 8.6.3
jupyter-core 5.8.1
jupyter-events 0.12.0
jupyter-lsp 2.3.0
jupyter-server 2.17.0
jupyter-server-terminals 0.5.3
jupyterlab 4.4.9
jupyterlab-pygments 0.3.0
jupyterlab-server 2.27.3
jupyterlab-widgets 3.0.15
jupyterlite-core 0.6.4
jupyterlite-pyodide-kernel 0.6.1
jupyterlite-sphinx 0.22.0
jupytext 1.17.3
kiwisolver 1.4.9
lark 1.3.0
latexcodec 3.0.1
markdown-it-py 4.0.0
markupsafe 3.0.3
matplotlib 3.10.7
matplotlib-inline 0.1.7
mdit-py-plugins 0.5.0
mdurl 0.1.2
mistune 3.1.4
nbclient 0.10.2
nbconvert 7.16.6
nbformat 5.10.4
nbsphinx 0.9.7
nest-asyncio 1.6.0
notebook 7.4.7
notebook-shim 0.2.4
numpy 2.3.3
packaging 25.0
pandas 2.3.3
pandocfilters 1.5.1
papermill 2.6.0
parso 0.8.5
pexpect 4.9.0
pillow 11.3.0
pkginfo 1.12.1.2
platformdirs 4.5.0
pluggy 1.6.0
prometheus-client 0.23.1
prompt-toolkit 3.0.52
psutil 7.1.0
ptyprocess 0.7.0
pure-eval 0.2.3
py-cpuinfo 9.0.0
pyarrow 21.0.0
pybtex 0.25.1
pybtex-docutils 1.0.3
pycparser 2.23
pydata-sphinx-theme 0.16.1
pydocstyle 6.3.0
pygal 3.0.5
pygaljs 1.0.2
pygments 2.19.2
pyhf 0.7.1.dev294
pyparsing 3.2.5
pytest 8.4.2
pytest-benchmark 5.1.0
pytest-console-scripts 1.4.1
pytest-mock 3.15.1
pytest-mpl 0.17.0
pytest-socket 0.7.0
python-dateutil 2.9.0.post0
python-json-logger 4.0.0
pytz 2025.2
pyyaml 6.0.3
pyzmq 27.1.0
referencing 0.37.0
requests 2.32.5
requests-mock 1.12.1
rfc3339-validator 0.1.4
rfc3986-validator 0.1.1
rfc3987-syntax 1.1.0
rpds-py 0.27.1
scikit-hep-testdata 0.5.8
scipy 1.15.3
scrapbook 0.5.0
send2trash 1.8.3
setuptools 80.9.0
six 1.17.0
sniffio 1.3.1
snowballstemmer 3.0.1
soupsieve 2.8
sphinx 8.1.3
sphinx-click 6.1.0
sphinx-copybutton 0.5.2
sphinx-issues 5.0.1
sphinxcontrib-applehelp 2.0.0
sphinxcontrib-bibtex 2.6.5
sphinxcontrib-devhelp 2.0.0
sphinxcontrib-htmlhelp 2.1.0
sphinxcontrib-jsmath 1.0.1
sphinxcontrib-qthelp 2.0.0
sphinxcontrib-serializinghtml 2.0.0
stack-data 0.6.3
tenacity 9.1.2
terminado 0.18.1
tinycss2 1.4.0
tornado 6.5.2
tqdm 4.67.1
traitlets 5.14.3
types-python-dateutil 2.9.0.20251008
typing-extensions 4.15.0
tzdata 2025.2
uproot 5.6.6
uri-template 1.3.0
urllib3 2.5.0
wcwidth 0.2.14
webcolors 24.11.1
webencodings 0.5.1
websocket-client 1.9.0
widgetsnbextension 4.0.14
xxhash 3.6.0
zipp 3.23.0
with
$ uv pip list | grep 'click'
click 8.3.0
sphinx-click 6.1.0
$ uv pip list | grep 'sphinx\|Sphinx'
intersphinx-registry 0.2510.9
jupyterlite-sphinx 0.22.0
nbsphinx 0.9.7
pydata-sphinx-theme 0.16.1
sphinx 8.1.3
sphinx-click 6.1.0
sphinx-copybutton 0.5.2
sphinx-issues 5.0.1
sphinxcontrib-applehelp 2.0.0
sphinxcontrib-bibtex 2.6.5
sphinxcontrib-devhelp 2.0.0
sphinxcontrib-htmlhelp 2.1.0
sphinxcontrib-jsmath 1.0.1
sphinxcontrib-qthelp 2.0.0
sphinxcontrib-serializinghtml 2.0.0