projects/guix·blob python-team · refs

1944 lines · 71.9 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2014 David Thompson <[email protected]>
3;;; Copyright © 2015, 2017, 2019, 2020, 2021, 2023, 2024, 2025 Ricardo Wurmus <[email protected]>
4;;; Copyright © 2015, 2016, 2017 Leo Famulari <[email protected]>
5;;; Copyright © 2016 Hartmut Goebel <[email protected]>
6;;; Copyright © 2016-2019, 2022, 2023 Marius Bakke <[email protected]>
7;;; Copyright © 2017 Danny Milosavljevic <[email protected]>
8;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice <[email protected]>
9;;; Copyright © 2017 Frederick M. Muriithi <[email protected]>
10;;; Copyright © 2017 Christine Lemmer-Webber <[email protected]>
11;;; Copyright © 2017 Julien Lepiller <[email protected]>
12;;; Copyright © 2019, 2021, 2022 Efraim Flashner <[email protected]>
13;;; Copyright © 2019, 2021, 2023, 2025 Nicolas Goaziou <[email protected]>
14;;; Copyright © 2019 Alexandros Theodotou <[email protected]>
15;;; Copyright © 2019 Brett Gilio <[email protected]>
16;;; Copyright © 2020 Giacomo Leidi <[email protected]>
17;;; Copyright © 2021 Eric Bavier <[email protected]>
18;;; Copyright © 2021, 2022, 2024 Vinicius Monego <[email protected]>
19;;; Copyright © 2021 Hugo Lecomte <[email protected]>
20;;; Copyright © 2021-2022, 2024-2026 Maxim Cournoyer <[email protected]>
21;;; Copyright © 2024 Troy Figiel <[email protected]>
22;;; Copyright © 2021 Maxime Devos <[email protected]>
23;;; Copyright © 2026 Yan Abu Arab <[email protected]>
24;;; Copyright © 2026 Julian Flake <[email protected]>
25;;;
26;;; This file is part of GNU Guix.
27;;;
28;;; GNU Guix is free software; you can redistribute it and/or modify it
29;;; under the terms of the GNU General Public License as published by
30;;; the Free Software Foundation; either version 3 of the License, or (at
31;;; your option) any later version.
32;;;
33;;; GNU Guix is distributed in the hope that it will be useful, but
34;;; WITHOUT ANY WARRANTY; without even the implied warranty of
35;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
36;;; GNU General Public License for more details.
37;;;
38;;; You should have received a copy of the GNU General Public License
39;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
40
41(define-module (gnu packages sphinx)
42 #:use-module (guix packages)
43 #:use-module (guix download)
44 #:use-module (guix git-download)
45 #:use-module (guix hg-download)
46 #:use-module (guix gexp)
47 #:use-module (guix utils)
48 #:use-module (guix build-system pyproject)
49 #:use-module ((guix licenses) #:prefix license:)
50 #:use-module (gnu packages)
51 #:use-module (gnu packages build-tools)
52 #:use-module (gnu packages check)
53 #:use-module (gnu packages documentation)
54 #:use-module (gnu packages fonts)
55 #:use-module (gnu packages fontutils)
56 #:use-module (gnu packages graph)
57 #:use-module (gnu packages graphviz)
58 #:use-module (gnu packages haskell-xyz)
59 #:use-module (gnu packages image)
60 #:use-module (gnu packages imagemagick)
61 #:use-module (gnu packages jupyter)
62 #:use-module (gnu packages nss)
63 #:use-module (gnu packages python)
64 #:use-module (gnu packages python-build)
65 #:use-module (gnu packages python-check)
66 #:use-module (gnu packages python-crypto)
67 #:use-module (gnu packages python-science)
68 #:use-module (gnu packages python-web)
69 #:use-module (gnu packages python-xyz)
70 #:use-module (gnu packages time)
71 #:use-module (gnu packages statistics)
72 #:use-module (gnu packages tex)
73 #:use-module (gnu packages web)
74 #:use-module (gnu packages xml))
75
76(define-public python-intersphinx-registry
77 (package
78 (name "python-intersphinx-registry")
79 (version "0.2705.27")
80 (source
81 (origin
82 (method git-fetch)
83 (uri
84 (git-reference
85 (url "https://github.com/Quansight-Labs/intersphinx_registry")
86 (commit version)))
87 (file-name (git-file-name name version))
88 (sha256
89 (base32 "02qrdhlhl4wpwvcags46kqs32dkc5kxmldwyp2ij1njfsvf68nn8"))))
90 (build-system pyproject-build-system)
91 ;; XXX: Many tests try to access the network.
92 (arguments (list #:tests? #f))
93 (native-inputs
94 (list python-flit-core))
95 (propagated-inputs
96 (list python-requests))
97 (home-page "https://github.com/Quansight-Labs/intersphinx_registry")
98 (synopsis "Convenient utilities and data to write a Sphinx config file")
99 (description
100 "A simple utility package that provides a default intersphinx mapping for
101a large chunk of the Python ecosystem.")
102 (license license:expat)))
103
104(define-public python-sphinx
105 (package
106 (name "python-sphinx")
107 (version "9.1.0")
108 (source
109 (origin
110 (method url-fetch)
111 (uri (pypi-uri "sphinx" version))
112 (sha256
113 (base32 "1nqdjfaxl12lvzadgljdqw8w5gfkzrqn14k60wczhxfxawip4hbp"))))
114 (build-system pyproject-build-system)
115 (arguments
116 (list
117 #:test-flags
118 #~(list "--numprocesses" (number->string (min 8 (parallel-job-count))))
119 #:phases
120 #~(modify-phases %standard-phases
121 (add-before 'check 'pre-check
122 (lambda _
123 ;; for test_cython
124 (setenv "HOME" "/tmp"))))))
125 (propagated-inputs
126 (list python-babel
127 python-docutils
128 python-imagesize
129 python-jinja2
130 python-packaging
131 python-pygments
132 python-requests
133 python-roman-numerals
134 python-snowballstemmer
135 python-sphinx-alabaster-theme
136 python-sphinxcontrib-applehelp
137 python-sphinxcontrib-devhelp
138 python-sphinxcontrib-htmlhelp
139 python-sphinxcontrib-jsmath
140 python-sphinxcontrib-qthelp
141 python-sphinxcontrib-serializinghtml
142
143 ;; The Sphinx LaTeX library '\RequirePackage' or \\usepackage
144 ;; these:
145 texlive-amsfonts ;amsmath, amssymb, amstext
146 texlive-amsmath
147 texlive-anyfontsize
148 texlive-booktabs
149 texlive-capt-of
150 texlive-carlisle ;remreset
151 texlive-cmap
152 texlive-etoolbox
153 texlive-fancyhdr
154 texlive-fancyvrb
155 texlive-float
156 texlive-fncychap
157 texlive-framed
158 texlive-geometry
159 texlive-hyperref
160 texlive-kvoptions
161 texlive-latex-bin
162 texlive-ltxcmds
163 texlive-needspace
164 texlive-oberdiek ;hypcap
165 texlive-parskip
166 texlive-preview
167 texlive-tabulary
168 texlive-titlesec
169 texlive-tools ;multicol, longtable
170 texlive-upquote
171 texlive-varwidth
172 texlive-wrapfig
173 texlive-xcolor))
174 (native-inputs
175 (list imagemagick ;for "convert"
176 nss-certs-for-test
177 python-cython
178 python-defusedxml
179 python-flit-core
180 python-pytest
181 python-pytest-xdist
182 (texlive-local-tree
183 (list texlive-anyfontsize texlive-cm-super texlive-tex-gyre))))
184 (home-page "https://www.sphinx-doc.org")
185 (synopsis "Python documentation generator")
186 (description "Sphinx is a tool that makes it easy to create documentation
187for Python projects or other documents consisting of multiple reStructuredText
188sources.")
189 (license license:bsd-2)))
190
191(define-public python-sphinx-6
192 (package
193 (inherit python-sphinx)
194 (version "6.2.1")
195 (source
196 (origin
197 (method url-fetch)
198 (uri (pypi-uri "Sphinx" version))
199 (sha256
200 (base32
201 "0sycp5qx7py75fvmjz0av5awfdlqn72azzjj07x9yx5vjx3a6mkd"))))
202 (build-system pyproject-build-system)
203 (arguments
204 (list
205 ;; tests: 1815 passed, 24 skipped, 4451 warnings
206 #:test-flags
207 #~(list "--numprocesses" (number->string (min 8 (parallel-job-count)))
208 "-k" (string-join
209 ;; AttributeError: module 'alabaster' has no
210 ;; attribute 'version'
211 (list "not test_theme_api"
212 ;; The alabaster extension used by this project
213 ;; needs at least Sphinx v3.4; it therefore cannot
214 ;; be built with this version.
215 "test_needs_sphinx"
216 ;; Various assertion errors.
217 "test_additional_targets_should_be_translated"
218 "test_additional_targets_should_not_be_translated"
219 "test_autodoc_default_options"
220 "test_autodoc_type_aliases"
221 "test_enum_class"
222 "test_html_code_role"
223 "test_latex_code_role"
224 "test_latex_images"
225 "test_linenothreshold"
226 "test_literal_include_linenos"
227 "test_viewcode"
228 ;; ModuleNotFoundError: No module named 'target'
229 "test_attrgetter_using")
230 " and not "))
231 #:phases
232 #~(modify-phases %standard-phases
233 (add-before 'check 'pre-check
234 (lambda _
235 ;; for test_cython
236 (setenv "HOME" "/tmp"))))))
237 (propagated-inputs
238 (list python-babel
239 python-colorama
240 python-docutils-0.19
241 python-filelock
242 python-html5lib
243 python-imagesize
244 python-jinja2
245 python-packaging
246 python-pygments
247 python-requests
248 python-snowballstemmer
249 python-sphinx-alabaster-theme
250 python-sphinxcontrib-applehelp
251 python-sphinxcontrib-devhelp
252 python-sphinxcontrib-htmlhelp
253 python-sphinxcontrib-jsmath
254 python-sphinxcontrib-qthelp
255 python-sphinxcontrib-serializinghtml
256 python-sphinxcontrib-websupport
257 python-types-requests
258
259 ;; The Sphinx LaTeX library '\RequirePackage' or \\usepackage
260 ;; these:
261 texlive-amsfonts ;amsmath, amssymb, amstext
262 texlive-amsmath
263 texlive-anyfontsize
264 texlive-booktabs
265 texlive-capt-of
266 texlive-carlisle ;remreset
267 texlive-cmap
268 texlive-etoolbox
269 texlive-fancyhdr
270 texlive-fancyvrb
271 texlive-float
272 texlive-fncychap
273 texlive-framed
274 texlive-geometry
275 texlive-hyperref
276 texlive-kvoptions
277 texlive-latex-bin
278 texlive-ltxcmds
279 texlive-needspace
280 texlive-oberdiek ;hypcap
281 texlive-parskip
282 texlive-preview
283 texlive-tabulary
284 texlive-titlesec
285 texlive-tools ;multicol, longtable
286 texlive-upquote
287 texlive-varwidth
288 texlive-wrapfig
289 texlive-xcolor))
290 (native-inputs
291 (list imagemagick ;for "convert"
292 nss-certs-for-test
293 python-cython
294 python-flit-core
295 python-pytest
296 python-pytest-xdist
297 (texlive-local-tree
298 (list texlive-anyfontsize texlive-cm-super texlive-tex-gyre))))))
299
300(define-public python-sphinx-multitoc-numbering
301 (package
302 (name "python-sphinx-multitoc-numbering")
303 (version "0.1.3")
304 (source
305 (origin
306 (method git-fetch)
307 (uri (git-reference
308 (url "https://github.com/executablebooks/sphinx-multitoc-numbering")
309 (commit (string-append "v" version))))
310 (file-name (git-file-name name version))
311 (sha256
312 (base32
313 "1vpdc19jl0y2lxhpgq4d42wvmd3by6sga6zybfxm09dm557wq0p6"))))
314 (build-system pyproject-build-system)
315 ;; The tests currently rely on an obsolete sphinx.testing version (see:
316 ;; <https://github.com/executablebooks/sphinx-multitoc-numbering/issues/28>).
317 (arguments (list #:tests? #f))
318 (native-inputs (list python-pytest python-setuptools))
319 (propagated-inputs (list python-sphinx))
320 (home-page "https://sphinx-multitoc-numbering.readthedocs.io/en/latest")
321 (synopsis "Sphinx extension for continuous HTML section numbering")
322 (description "This package provides a Sphinx extension adding support for
323continuous HTML section numbering.")
324 (license license:expat)))
325
326(define-public python-sphinx-plantuml
327 (let ((commit "69033c29c5baa6571039c368a73fa2629f08dfa5")
328 (revision "0"))
329 (package
330 (name "python-sphinx-plantuml")
331 (version (git-version "1.0.0" revision commit))
332 (source
333 (origin
334 (method git-fetch)
335 (uri (git-reference
336 (url "https://github.com/zqmillet/sphinx-plantuml")
337 (commit commit)))
338 (file-name (git-file-name name version))
339 (sha256
340 (base32
341 "0aj62x3jkjx1bb05zbddgk8cbi7gvimvr5bcsm7jmr2rhryarawy"))))
342 (build-system pyproject-build-system)
343 (arguments
344 (list
345 #:tests? #f ;no substantial test suite
346 #:phases
347 #~(modify-phases %standard-phases
348 (add-after 'unpack 'relax-requirements
349 (lambda _
350 (substitute* "sphinxcontrib/requirements.txt"
351 (("==") ">=")))))))
352 (propagated-inputs (list python-docutils python-sphinx))
353 (native-inputs (list python-setuptools))
354 (home-page "https://github.com/zqmillet/sphinx-plantuml")
355 (synopsis "Sphinx extension to render plantuml in Sphinx documents")
356 (description "This package provides an extension for Sphinx to render
357plantuml in Sphinx documents.")
358 (license license:expat))))
359
360(define-public python-sphinx-tags
361 (package
362 (name "python-sphinx-tags")
363 (version "0.4")
364 (source
365 (origin
366 (method url-fetch)
367 (uri (pypi-uri "sphinx_tags" version))
368 (sha256
369 (base32 "179mlmql7nmwd12lqyrncx8klbxjcmb7s8zj0v3nfxglmjdj2r9h"))))
370 (build-system pyproject-build-system)
371 (propagated-inputs (list python-sphinx))
372 (native-inputs
373 (list pandoc
374 python-beautifulsoup4
375 python-flit-core
376 python-myst-parser
377 python-nbsphinx
378 python-pytest
379 python-sphinx-design))
380 (home-page "https://sphinx-tags.readthedocs.io/en/latest/")
381 (synopsis "Sphinx extension to create tags")
382 (description "This package provides a Sphinx extension to
383create tags for documentation pages.")
384 (license license:expat)))
385
386(define-public python-sphinx-toml
387 (let ((commit "095a4d193a7fd046317b9f15074a5f70d6b1fd38")
388 (revision "0"))
389 (package
390 (name "python-sphinx-toml")
391 ;; version number from untagged commit
392 ;; 1dc4121cbec4247ae931165c2b22727705cf0caa
393 (version (git-version "0.0.4" revision commit))
394 (source
395 (origin
396 (method git-fetch)
397 (uri
398 (git-reference
399 (url "https://github.com/Carreau/sphinx_toml")
400 (commit commit)))
401 (sha256
402 (base32 "0f5vm8m8gbjl963mgw4r3yq5k9npyiyp80c785f73sh8z9zhq485"))))
403 (build-system pyproject-build-system)
404 (arguments (list #:tests? #f)) ; No tests upstream.
405 (native-inputs
406 (list python-flit-core))
407 (propagated-inputs
408 (list python-intersphinx-registry
409 python-pydantic
410 python-tomli))
411 (home-page "https://github.com/Carreau/sphinx_toml")
412 (synopsis "Load data from a sphinx.toml file next to a conf.py file")
413 (description
414 "This package implements a functionality of partially load Sphinx
415configuration from @code{sphinx.toml} situated in the same dir as
416@code{conf.py}.")
417 (license license:expat))))
418
419(define-public python-sphinxcontrib-apidoc
420 (package
421 (name "python-sphinxcontrib-apidoc")
422 (version "0.6.0")
423 (source
424 (origin
425 (method url-fetch)
426 (uri (pypi-uri "sphinxcontrib_apidoc" version))
427 (sha256
428 (base32
429 "13fqkbs8lwrm39lv9pmq436x3fzgr26d2svs2a7g9239sq89i6rj"))))
430 (build-system pyproject-build-system)
431 (native-inputs
432 (list python-pytest
433 python-setuptools
434 python-wheel))
435 (propagated-inputs
436 (list python-pbr
437 python-sphinx))
438 (home-page "https://github.com/sphinx-contrib/apidoc")
439 (synopsis "Sphinx extension for running @code{sphinx-apidoc}")
440 (description "This package provides Sphinx extension for running
441@code{sphinx-apidoc} on each build.")
442 (license license:bsd-2)))
443
444(define-public python-sphinxcontrib-applehelp
445 (package
446 (name "python-sphinxcontrib-applehelp")
447 (version "2.0.0")
448 (source
449 (origin
450 (method url-fetch)
451 (uri (pypi-uri "sphinxcontrib_applehelp" version))
452 (sha256
453 (base32 "1l863hp1pikrn04082f6jh49fha910zqfd27za79bkim2wryya9g"))))
454 (build-system pyproject-build-system)
455 (arguments
456 `(#:tests? #f)) ;XXX: circular dependency on Sphinx
457 (native-inputs
458 (list python-flit-core))
459 (home-page "https://github.com/sphinx-doc/sphinxcontrib-applehelp")
460 (synopsis "Sphinx extension for creating Apple help books")
461 (description
462 "@code{sphinxcontrib-applehelp} is a Sphinx extension which outputs
463Apple help books.")
464 (license license:bsd-2)))
465
466(define-public python-sphinxcontrib-bibtex
467 (package
468 (name "python-sphinxcontrib-bibtex")
469 (version "2.7.0")
470 (source
471 (origin
472 (method git-fetch)
473 (uri (git-reference
474 (url "https://github.com/mcmtroffaes/sphinxcontrib-bibtex/")
475 (commit version)))
476 (file-name (git-file-name name version))
477 (sha256
478 (base32 "18h68vj535fxy80b3jdyazn375lg7xi5q5fsdza99y35px78nngi"))))
479 (build-system pyproject-build-system)
480 (native-inputs
481 (list python-pytest
482 python-setuptools))
483 (propagated-inputs
484 (list python-pybtex-docutils
485 python-sphinx-autoapi))
486 (home-page "https://github.com/mcmtroffaes/sphinxcontrib-bibtex/")
487 (synopsis "Sphinx extension for bibtex style references")
488 (description "This package allows bibtex citations to be inserted into
489documentation generated by sphinx, via a bibliography directive.")
490 (license license:bsd-2)))
491
492(define-public python-sphinx-click
493 (package
494 (name "python-sphinx-click")
495 (version "6.0.0")
496 (source
497 (origin
498 (method url-fetch)
499 (uri (pypi-uri "sphinx-click" version))
500 (sha256
501 (base32
502 "0ns6mfiw4q6g0kh11dfyzpn0rkjq9v4f3w8ry0pn5in03lr69mpm"))))
503 (build-system pyproject-build-system)
504 (arguments
505 (list
506 #:phases
507 #~(modify-phases %standard-phases
508 (add-after 'unpack 'fix-build-system
509 (lambda _
510 ;; The build system is confused about this top level directory,
511 ;; so we delete it.
512 (delete-file-recursively "releasenotes"))))))
513 (native-inputs (list python-pytest python-setuptools python-wheel))
514 (propagated-inputs (list python-click python-docutils python-sphinx))
515 (home-page "https://github.com/click-contrib/sphinx-click")
516 (synopsis "Sphinx extension that documents click applications")
517 (description "This package provide sphinx extension that automatically
518documents click applications.")
519 (license license:expat)))
520
521(define-public python-sphinx-copybutton
522 (package
523 (name "python-sphinx-copybutton")
524 (version "0.5.2")
525 ;; XXX: PyPI bundles <https://github.com/zenorocha/clipboard.js>.
526 (source
527 (origin
528 (method url-fetch)
529 (uri (pypi-uri "sphinx-copybutton" version))
530 (sha256
531 (base32 "1g8zxq1l258kk7yja4j2iifn0frsh60c4am9kjyd2ilnzf17rwac"))))
532 (build-system pyproject-build-system)
533 (arguments
534 (list #:tests? #f)) ;no tests in PyPI, there are in Git
535 (native-inputs
536 (list python-setuptools
537 python-wheel))
538 (propagated-inputs
539 (list python-sphinx))
540 (home-page "https://github.com/executablebooks/sphinx-copybutton")
541 (synopsis "Sphinx extension to add \"copy\" buttons to code blocks")
542 (description
543 "This package provides a small sphinx extension to add \"copy\" buttons
544to code blocks.")
545 (license license:expat)))
546
547(define-public python-sphinx-design
548 (package
549 (name "python-sphinx-design")
550 (version "0.7.0")
551 (source
552 (origin
553 (method git-fetch)
554 (uri (git-reference
555 (url "https://github.com/executablebooks/sphinx-design")
556 (commit (string-append "v" version))))
557 (file-name (git-file-name name version))
558 (sha256
559 (base32 "0565y4nfpdgjbi49d7m0lfbwjgn6dg0iv4ipgav0bnhp1wih0l1n"))))
560 (build-system pyproject-build-system)
561 (native-inputs
562 (list python-flit-core
563 python-pytest
564 python-pytest-regressions))
565 (propagated-inputs
566 (list python-sphinx))
567 (home-page "https://sphinx-design.readthedocs.io/en/furo-theme/")
568 (synopsis "Sphinx extension to designing responsive web components")
569 (description
570 "This package provides a sphinx extension for designing beautiful, view
571size responsive web components.")
572 (license license:expat)))
573
574(define-public python-sphinxcontrib-devhelp
575 (package
576 (name "python-sphinxcontrib-devhelp")
577 (version "2.0.0")
578 (source
579 (origin
580 (method url-fetch)
581 (uri (pypi-uri "sphinxcontrib_devhelp" version))
582 (sha256
583 (base32 "1bfi9m5hg7p5vgkkqyawvdwyqj22gcvk68fmnlxxgla5sjb5s7s1"))))
584 (build-system pyproject-build-system)
585 (arguments
586 `(#:tests? #f)) ;XXX: circular dependency on Sphinx
587 (native-inputs
588 (list python-flit-core))
589 (home-page "https://github.com/sphinx-doc/sphinxcontrib-devhelp")
590 (synopsis "Sphinx extension for creating Devhelp documents")
591 (description
592 "@code{sphinxcontrib-devhelp} is a Sphinx extension which outputs
593@url{Devhelp,https://wiki.gnome.org/Apps/Devhelp} documents.")
594 (license license:bsd-2)))
595
596(define-public python-sphinxcontrib-doxylink
597 (package
598 (name "python-sphinxcontrib-doxylink")
599 (version "1.13.0")
600 (source
601 (origin
602 (method git-fetch)
603 (uri (git-reference
604 (url "https://github.com/sphinx-contrib/doxylink")
605 (commit version)))
606 (file-name (git-file-name name version))
607 (sha256
608 (base32 "1jl019g65jfnam1pqqw0r95iaary8xyqqx797v9qq6r17vp141dy"))))
609 (build-system pyproject-build-system)
610 (propagated-inputs (list python-dateutil python-pyparsing))
611 (native-inputs (list doxygen python-poetry-core python-testfixtures
612 python-sphinx python-pytest))
613 (home-page "https://github.com/sphinx-contrib/doxylink")
614 (synopsis "Sphinx extension for linking to Doxygen documentation")
615 (description
616 "Doxylink is a Sphinx extension to link to external Doxygen API
617documentation. It allows you to specify C++ symbols and it will convert them
618into links to the HTML page of their Doxygen documentation.")
619 (license license:bsd-3)))
620
621(define-public python-sphinxcontrib-github-alt
622 (package
623 (name "python-sphinxcontrib-github-alt")
624 (version "1.2")
625 (source
626 (origin
627 (method url-fetch)
628 (uri (pypi-uri "sphinxcontrib_github_alt" version))
629 (sha256
630 (base32
631 "1x9af78vamjjcdrrhiah3wg613jv7gm8yh9vvqfrmf4vam6mimyg"))))
632 (build-system pyproject-build-system)
633 (arguments
634 `(#:tests? #f)) ;no tests
635 (native-inputs
636 (list python-flit-core))
637 (propagated-inputs
638 (list python-docutils
639 python-sphinx))
640 (home-page "https://github.com/jupyter/sphinxcontrib_github_alt")
641 (synopsis "Link to GitHub pages from Sphinx docs")
642 (description
643 "This package lets you link to GitHub issues, pull requests, commits and
644users from Sphinx docs.")
645 (license license:bsd-2)))
646
647(define-public python-sphinxcontrib-htmlhelp
648 (package
649 (name "python-sphinxcontrib-htmlhelp")
650 (version "2.1.0")
651 (source
652 (origin
653 (method url-fetch)
654 (uri (pypi-uri "sphinxcontrib-htmlhelp" version))
655 (sha256
656 (base32 "1sc2f368bacz4jak5kxr4n82nzri4bp37lm02g669bcarrm93qn9"))))
657 (build-system pyproject-build-system)
658 (arguments
659 `(#:tests? #f)) ;XXX: circular dependency on Sphinx
660 (native-inputs
661 (list python-flit-core))
662 (home-page "https://github.com/sphinx-doc/sphinxcontrib-htmlhelp")
663 (synopsis "Sphinx extension for rendering HTML help files")
664 (description
665 "@code{sphinxcontrib-htmlhelp} is a Sphinx extension which renders
666HTML help files.")
667 (license license:bsd-2)))
668
669(define-public python-sphinxcontrib-httpdomain
670 (package
671 (name "python-sphinxcontrib-httpdomain")
672 (version "2.0.0")
673 (source
674 (origin
675 (method git-fetch)
676 (uri (git-reference
677 (url "https://github.com/sphinx-contrib/httpdomain")
678 (commit version)))
679 (file-name (git-file-name name version))
680 (sha256
681 (base32 "056l5h5ykmdh1nlrxsqp548m6fdky6638w9vfc8c1g911xhvjc8c"))
682 (patches
683 (search-patches "python-sphinxcontrib-httpdomain-texinfo.patch"))))
684 (arguments (list #:tests? #f)) ;no real tests
685 (build-system pyproject-build-system)
686 (propagated-inputs (list python-sphinx))
687 (native-inputs (list python-uv-build))
688 (home-page "https://github.com/sphinx-contrib/httpdomain")
689 (synopsis "Sphinx extension for documenting HTTP APIs")
690 (description "The @code{sphinxcontrib.httpdomain} extension provides a
691Sphinx domain for documenting RESTful HTTP APIs.")
692 (license license:bsd-3)))
693
694(define-public python-sphinxcontrib-jsmath
695 (package
696 (name "python-sphinxcontrib-jsmath")
697 (version "1.0.1")
698 (source
699 (origin
700 (method url-fetch)
701 (uri (pypi-uri "sphinxcontrib-jsmath" version))
702 (sha256
703 (base32 "1f64w19j33sp151jimibraw6qrbhd5gxy8hs3797w9478m55x4m9"))))
704 (build-system pyproject-build-system)
705 (arguments
706 `(#:tests? #f)) ;XXX: circular dependency on Sphinx
707 (native-inputs
708 (list python-setuptools))
709 (home-page "https://github.com/sphinx-doc/sphinxcontrib-jsmath")
710 (synopsis "Sphinx extension to render math equations")
711 (description
712 "@code{sphinxcontrib-jsmath} is a Sphinx extension which renders display
713math in HTML via JavaScript.")
714 (license license:bsd-2)))
715
716(define-public python-sphinxcontrib-jquery
717 (package
718 (name "python-sphinxcontrib-jquery")
719 ;; Tests of 4.1 (released in 2024) fail with sphinx 9.
720 (properties '((commit . "80d1d3925c17c1860283323972680690f81d7b18")
721 (revision . "0")))
722 (version (git-version "4.1"
723 (assoc-ref properties 'revision)
724 (assoc-ref properties 'commit)))
725 (source
726 (origin
727 (method git-fetch)
728 (uri (git-reference
729 (url "https://github.com/sphinx-contrib/jquery")
730 (commit (assoc-ref properties 'commit))))
731 (file-name (git-file-name name version))
732 (sha256
733 (base32 "0la7qasz5xlyzpx20ldcc62vkwg4xk2dd39j27dqz7zv1m8mjg0c"))
734 ;; Delete pre-minified JavaScript.
735 (snippet '(delete-file "sphinxcontrib/jquery/jquery.js"))))
736 (build-system pyproject-build-system)
737 (arguments
738 (list #:tests? #f ;no tests
739 #:phases
740 #~(modify-phases %standard-phases
741 (add-after 'unpack 'minify-jquery
742 (lambda _
743 (with-directory-excursion "sphinxcontrib/jquery"
744 (invoke "esbuild" "jquery-3.6.0.js" "--minify"
745 (string-append "--outfile=jquery.js"))))))))
746 (propagated-inputs (list python-sphinx))
747 (native-inputs (list esbuild python-flit-core python-pytest))
748 (home-page "https://github.com/sphinx-contrib/jquery")
749 (synopsis "Extension to include jQuery on newer Sphinx releases")
750 (description
751 "This package provide an extension to include @code{jQuery} on newer
752Sphinx releases.")
753 (license license:bsd-0)))
754
755(define-public python-sphinxcontrib-mermaid
756 (package
757 (name "python-sphinxcontrib-mermaid")
758 (version "2.1.1")
759 (source
760 (origin
761 (method git-fetch) ;no tests in pypi archive
762 (uri (git-reference
763 (url "https://github.com/mgaitan/sphinxcontrib-mermaid")
764 (commit version)))
765 (file-name (git-file-name name version))
766 (sha256
767 (base32
768 "1j90xyrrka2w96a5bj6wlhyx292pv5ngr6h310qhxb33y46xj4wm"))))
769 (build-system pyproject-build-system)
770 (propagated-inputs (list python-pyyaml python-sphinx))
771 (native-inputs
772 (list python-hatchling
773 python-myst-parser
774 python-pytest
775 python-setuptools
776 python-wheel))
777 (home-page "https://github.com/mgaitan/sphinxcontrib-mermaid")
778 (synopsis "Sphinx extension for drawing Mermaid diagrams")
779 (description "This extension makes it possible to draw Mermaid diagrams in
780Sphinx documentation.")
781 (license license:bsd-2)))
782
783(define-public python-sphinxcontrib-newsfeed
784 (package
785 (name "python-sphinxcontrib-newsfeed")
786 (version "0.1.4")
787 (source
788 (origin
789 (method git-fetch)
790 (uri (git-reference
791 (url
792 "https://github.com/prometheusresearch/sphinxcontrib-newsfeed")
793 (commit version)))
794 (file-name (git-file-name name version))
795 (sha256
796 (base32 "09hdafir3ba5p8bmwny8r8fvgv0sgvzvw43zq85hb57lwd4prbxg"))))
797 (build-system pyproject-build-system)
798 ;; TODO: demo directory, but no standard test system.
799 (arguments (list #:tests? #f))
800 (native-inputs (list python-setuptools))
801 (propagated-inputs (list python-sphinx))
802 (synopsis "News Feed extension for Sphinx")
803 (description "Sphinxcontrib-newsfeed is an extension for adding a simple
804Blog, News or Announcements section to a Sphinx website.")
805 (home-page "https://github.com/prometheusresearch/sphinxcontrib-newsfeed")
806 (license license:bsd-2)))
807
808(define-public python-sphinx-inline-tabs
809 (package
810 (name "python-sphinx-inline-tabs")
811 ;; Tests of latest release are not compatible with Sphinx 9.
812 (properties '((commit . "cd6ba391a3e9a0f0917c483c0a9aa27f3655adc7")
813 (revision . "0")))
814 (version (git-version "2025.12.21.14"
815 (assoc-ref properties 'revision)
816 (assoc-ref properties 'commit)))
817 (source
818 (origin
819 (method git-fetch)
820 (uri (git-reference
821 (url "https://github.com/pradyunsg/sphinx-inline-tabs")
822 (commit (assoc-ref properties 'commit))))
823 (file-name (git-file-name name version))
824 (sha256
825 (base32 "0ckp5hsxy1fdf5scrkc4fbymqh5awbcpq0y8acv2pnyrb4ga3hdx"))))
826 (build-system pyproject-build-system)
827 (arguments
828 (list
829 #:test-flags
830 #~(list
831 ;; All xml related tests fail with this difference:
832 ;; - <container classes="tab-content" is_div="True">
833 ;; + <container classes="tab-content" is_div="1">
834 "-k not basic-xml and not multiple-xml")))
835 (native-inputs (list python-beautifulsoup4
836 python-flit-core
837 python-myst-parser
838 python-pytest
839 python-pytest-regressions
840 python-sphinx))
841 (home-page "https://github.com/pradyunsg/sphinx-inline-tabs")
842 (synopsis "Add inline tabbed content to your Sphinx documentation")
843 (description "This package provides a Sphinx plugin to add inline tabbed
844content to your Sphinx documentation.")
845 (license license:expat)))
846
847(define-public python-sphinx-issues
848 (package
849 (name "python-sphinx-issues")
850 (version "5.0.1")
851 (source
852 (origin
853 (method git-fetch)
854 (uri (git-reference
855 (url "https://github.com/sloria/sphinx-issues")
856 (commit version)))
857 (file-name (git-file-name name version))
858 (sha256
859 (base32 "0jyd47ihs2wldzzq49bd8db1zwvswja9327m63i5q4svss13jxzy"))))
860 (build-system pyproject-build-system)
861 (arguments
862 (list
863 #:phases
864 #~(modify-phases %standard-phases
865 (add-before 'check 'patch-sphinx-build-path
866 (lambda* (#:key inputs #:allow-other-keys)
867 ;; The path to the sphinx-build binary is hardcoded to be in the
868 ;; same directory as the python executable. That does not work
869 ;; when building the package.
870 (substitute* "tests/test_sphinx_issues.py"
871 (((string-append "Path\\(sys\\.executable\\)"
872 "\\.parent\\.joinpath\\"
873 "(\"sphinx-build\"\\)"))
874 (format #f "~s" (search-input-file
875 inputs "/bin/sphinx-build")))))))))
876 (native-inputs
877 (list python-flit-core
878 python-pytest
879 python-sphinx))
880 (home-page "https://github.com/sloria/sphinx-issues")
881 (synopsis "Sphinx extension for linking to a project's issue tracker")
882 (description
883 "This package provides a Sphinx extension for linking to a project's
884issue tracker. This includes roles for linking to issues, pull requests and
885user profiles. Support for GitHub is built-in, but other services can also be
886supported with @code{sphinx-issues}.")
887 (license license:expat)))
888
889(define-public python-sphinxfeed
890 (package
891 (name "python-sphinxfeed")
892 (version "0.3.6")
893 (home-page "https://github.com/lsaffre/sphinxfeed")
894 (source
895 (origin
896 (method git-fetch)
897 (uri (git-reference
898 (url "https://github.com/lsaffre/sphinxfeed")
899 (commit (string-append "v" version))))
900 (file-name (git-file-name name version))
901 (sha256
902 (base32 "1wqrh01pbqlrm1kixyzaqdjggs02339y849x0lm115wl6q9vq56s"))))
903 (build-system pyproject-build-system)
904 (native-inputs (list python-hatchling python-pytest))
905 (propagated-inputs (list python-dateutil python-feedgen python-sphinx))
906 (synopsis "Sphinx extension for generating RSS feeds")
907 (description
908 "This Sphinx extension is a fork of Fergus Doyle's sphinxfeed package
909which itself is derived from Dan Mackinlay's sphinxcontrib.feed package. It
910relies on Lars Kiesow's python-feedgen package instead of the defunct
911feedformatter package or of Django utils to generate the feed.")
912 (license license:bsd-2)))
913
914(define-public python-sphinx-tabs
915 (package
916 (name "python-sphinx-tabs")
917 (version "3.4.7")
918 (home-page "https://github.com/executablebooks/sphinx-tabs")
919 (source
920 (origin
921 (method git-fetch)
922 (uri (git-reference
923 (url "https://github.com/executablebooks/sphinx-tabs")
924 (commit (string-append "v" version))))
925 (file-name (git-file-name name version))
926 (sha256
927 (base32 "0mck1as0w8j1dhnmyxgic56i5r832hhqld20m76jxmqklggfd5bc"))))
928 (build-system pyproject-build-system)
929 (arguments
930 (list
931 #:tests? #f ;TODO: requires sphinx-testing and rinohtype
932 #:phases
933 #~(modify-phases %standard-phases
934 (add-after 'unpack 'loosen-docutils-requirement
935 (lambda _
936 (substitute* "setup.py"
937 (("docutils~=0\\.18\\.0")
938 "docutils>=0.17.0")))))))
939 (native-inputs (list python-setuptools))
940 (propagated-inputs (list python-docutils python-pygments python-sphinx))
941 (synopsis "Tabbed views for Sphinx")
942 (description
943 "Create tabbed content in Sphinx documentation when building HTML.")
944 (license license:expat)))
945
946(define-public python-sphinxcontrib-programoutput
947 (package
948 (name "python-sphinxcontrib-programoutput")
949 (version "0.17")
950 (source
951 (origin
952 (method git-fetch)
953 (uri (git-reference
954 (url "https://github.com/OpenNTI/sphinxcontrib-programoutput")
955 (commit version)))
956 (file-name (git-file-name name version))
957 (sha256
958 (base32 "02hpx6jnsx0cb1d1kk56gpj69x51m2d0prwwhsyhpwv257s64kz3"))))
959 (build-system pyproject-build-system)
960 (arguments
961 (list
962 #:phases
963 #~(modify-phases %standard-phases
964 (add-before 'check 'cleanup
965 (lambda* (#:key inputs outputs #:allow-other-keys)
966 ;; XXX: AssertionError: SphinxWarning not raised
967 (substitute* (string-append "src/sphinxcontrib/programoutput/"
968 "tests/test_directive.py")
969 (("test_shell_with_unexpected_return_code")
970 "__off_test_shell_with_unexpected_return_code")
971 (("test_unexpected_return_code")
972 "__off_test_unexpected_return_code"))
973 (delete-file-recursively
974 (string-append (site-packages inputs outputs)
975 "/sphinxcontrib/programoutput/tests"))
976 (delete-file "src/sphinxcontrib/programoutput/__init__.py"))))))
977 (propagated-inputs (list python-sphinx))
978 (native-inputs (list python-pytest python-setuptools python-wheel))
979 (home-page "https://github.com/OpenNTI/sphinxcontrib-programoutput")
980 (synopsis "Sphinx extension to include program output")
981 (description "A Sphinx extension to literally insert the output of arbitrary
982commands into documents, helping you to keep your command examples up to date.")
983 (license license:bsd-2)))
984
985(define-public python-sphinxcontrib-qthelp
986 (package
987 (name "python-sphinxcontrib-qthelp")
988 (version "2.0.0")
989 (source
990 (origin
991 (method url-fetch)
992 (uri (pypi-uri "sphinxcontrib_qthelp" version))
993 (sha256
994 (base32 "1axvp4bcw3p4n8xiby9i4xlgh4znm3ia7ar3wrdh8wf1iynd1rsg"))))
995 (build-system pyproject-build-system)
996 (arguments
997 `(#:tests? #f)) ;XXX: circular dependency on Sphinx
998 (native-inputs
999 (list python-flit-core))
1000 (home-page "https://github.com/sphinx-doc/sphinxcontrib-qthelp")
1001 (synopsis "Sphinx extension to output QtHelp documents")
1002 (description
1003 "@code{sphinxcontrib-qthelp} is a Sphinx extension which outputs QtHelp
1004documents.")
1005 (license license:bsd-2)))
1006
1007(define-public python-sphinxcontrib-serializinghtml
1008 (package
1009 (name "python-sphinxcontrib-serializinghtml")
1010 (version "2.0.0")
1011 (source
1012 (origin
1013 (method url-fetch)
1014 (uri (pypi-uri "sphinxcontrib_serializinghtml" version))
1015 (sha256
1016 (base32 "0k8x0dq8p3kskwi8fg6jgwzpqchb33r0wgx52y804b47gy115ng9"))))
1017 (build-system pyproject-build-system)
1018 (arguments
1019 `(#:tests? #f)) ;XXX: circular dependency on Sphinx
1020 (native-inputs
1021 (list python-flit-core))
1022 (home-page "https://github.com/sphinx-doc/sphinxcontrib-serializinghtml")
1023 (synopsis "Sphinx extension to serialize HTML files")
1024 (description
1025 "@code{sphinxcontrib-serializinghtml} is a Sphinx extension which outputs
1026\"serialized\" HTML files.")
1027 (license license:bsd-2)))
1028
1029(define-public python-sphinxcontrib-svg2pdfconverter
1030 (package
1031 (name "python-sphinxcontrib-svg2pdfconverter")
1032 (version "1.2.0")
1033 (home-page
1034 "https://github.com/missinglinkelectronics/sphinxcontrib-svg2pdfconverter")
1035 (source
1036 (origin
1037 (method git-fetch)
1038 (uri (git-reference
1039 (url home-page)
1040 (commit (string-append "v" version))))
1041 (file-name (git-file-name name version))
1042 (sha256
1043 (base32 "0ygsdhczq1vh79m42xxpxmls648crwr54pn8vvc64qv754s0wi0l"))))
1044 (build-system pyproject-build-system)
1045 (arguments (list #:tests? #f)) ; No tests.
1046 (native-inputs (list python-setuptools))
1047 (propagated-inputs (list python-sphinx))
1048 (synopsis "Sphinx SVG to PDF converter extension")
1049 (description "A Sphinx extension to convert SVG images to PDF in case the
1050builder does not support SVG images natively (e.g. LaTeX).")
1051 (license license:bsd-2)))
1052
1053(define-public python-sphinxcontrib-video
1054 (package
1055 (name "python-sphinxcontrib-video")
1056 (version "0.4.1")
1057 (source
1058 (origin
1059 (method url-fetch)
1060 (uri (pypi-uri "sphinxcontrib_video" version))
1061 (sha256
1062 (base32 "192wbnljj8wzgv802r5yfz1wd88qm1xhnhq2b7629qbx3gkk783m"))))
1063 (build-system pyproject-build-system)
1064 ;; There is an error not finding the Pytest 'app' fixture causing all the
1065 ;; tests to error (see:
1066 ;; <https://github.com/sphinx-contrib/video/issues/62>).
1067 (arguments (list #:tests? #f))
1068 (propagated-inputs (list python-sphinx))
1069 (native-inputs (list python-beautifulsoup4
1070 python-defusedxml
1071 python-pytest
1072 python-setuptools
1073 python-wheel))
1074 (home-page "https://sphinxcontrib-video.readthedocs.io/")
1075 (synopsis "Allows embedding of HTML5 videos in sphinx")
1076 (description "Allows embedding of HTML5 videos in sphinx.")
1077 (license license:asl2.0)))
1078
1079(define-public python-sphinxcontrib-websupport
1080 (package
1081 (name "python-sphinxcontrib-websupport")
1082 (version "2.0.0")
1083 (source
1084 (origin
1085 (method url-fetch)
1086 (uri (pypi-uri "sphinxcontrib_websupport" version))
1087 (sha256
1088 (base32 "1kbr7q1iwmz5pdp75z15smbbg8flsk2ahap4jwglnif6pb9nfwqb"))))
1089 (build-system pyproject-build-system)
1090 (arguments
1091 `(#:tests? #f)) ;XXX: circular dependency on Sphinx@6
1092 (native-inputs
1093 (list python-flit-core))
1094 (propagated-inputs
1095 (list python-jinja2
1096 python-sphinx
1097 python-sphinxcontrib-serializinghtml))
1098 (home-page "https://sphinx-doc.org/")
1099 (synopsis "Sphinx API for web applications")
1100 (description
1101 "This package provides a Python API to easily integrate Sphinx
1102documentation into your web application. It provides tools to integrate
1103Sphinx documents in web templates and to handle searches.")
1104 (license license:bsd-3)))
1105
1106(define-public python-sphinx-gallery
1107 (package
1108 (name "python-sphinx-gallery")
1109 (version "0.20.0")
1110 (source
1111 (origin
1112 (method url-fetch)
1113 (uri (pypi-uri "sphinx_gallery" version))
1114 (sha256
1115 (base32 "0dfp12zjasnidh7l21zjjfkwamgmrh2p15cm6lnq2g8qqq81aa3h"))))
1116 (build-system pyproject-build-system)
1117 (arguments
1118 (list
1119 #:test-flags
1120 #~(list "-k" (string-join
1121 ;; sphinx.errors.ConfigError: 'matplotlib_animations'
1122 ;; specifies file format: mp4; this requires the
1123 ;; sphinxcontrib.video package.
1124 (list "not test_dummy_image"
1125 ;; urllib.error.URLError: <urlopen error [Errno -3]
1126 ;; Temporary failure in name resolution>
1127 "test_embed_code_links_get_data")
1128 " and not "))))
1129 (native-inputs
1130 (list python-absl-py
1131 python-graphviz
1132 ;;python-intersphinx-registry TODO: package me!
1133 python-ipython
1134 python-joblib
1135 python-jupyterlite-sphinx
1136 python-lxml
1137 python-matplotlib
1138 python-numpy
1139 python-packaging
1140 python-plotly
1141 python-pydata-sphinx-theme
1142 python-pytest
1143 python-seaborn
1144 python-setuptools
1145 python-setuptools-scm
1146 python-sphinxcontrib-video
1147 python-sphinx-design
1148 python-statsmodels
1149 python-wheel))
1150 (propagated-inputs
1151 ;; Propagate joblib as it's needed when building Sphinx doc in parallel
1152 ;; (otherwise the error "joblib must be importable when parallel mode is
1153 ;; enabled" is thrown).
1154 (list python-joblib
1155 python-pillow
1156 python-sphinx))
1157 (home-page "https://sphinx-gallery.github.io/stable/index.html")
1158 (synopsis "Generate an examples gallery automatically")
1159 (description
1160 "@code{sphinx_gallery} is a Sphinx extension that builds an HTML version
1161from any set of Python scripts and puts it into an examples gallery.")
1162 (license license:bsd-3)))
1163
1164(define-public python-sphinx-me
1165 (package
1166 (name "python-sphinx-me")
1167 (version "0.3")
1168 (source
1169 (origin
1170 (method url-fetch)
1171 (uri (pypi-uri "sphinx-me" version))
1172 (sha256
1173 (base32 "06jzgp213zihnvpcy2y5jy3ykid3apc2ncp2pg6a2g05lhiziglq"))))
1174 (build-system pyproject-build-system)
1175 (arguments (list #:tests? #f)) ; No tests.
1176 (native-inputs (list python-setuptools))
1177 (home-page "https://github.com/stephenmcd/sphinx-me")
1178 (synopsis "Create a Sphinx documentation shell")
1179 (description
1180 "Create a Sphinx documentation shell for your project and include the
1181README file as the documentation index. It handles extracting the required
1182meta data such as the project name, author and version from your project for
1183use in your Sphinx docs.")
1184 (license license:bsd-2)))
1185
1186(define-public python-sphinx-repoze-autointerface
1187 (package
1188 (name "python-sphinx-repoze-autointerface")
1189 (version "1.0.0")
1190 (source
1191 (origin
1192 (method url-fetch)
1193 (uri (pypi-uri "repoze.sphinx.autointerface" version))
1194 (sha256
1195 (base32 "18981v34cyw8r6q19syx2vy6yjbc6afyz3287qavk5j6791g2ss8"))))
1196 (build-system pyproject-build-system)
1197 (arguments '(#:tests? #f)) ; No tests.
1198 (native-inputs
1199 (list python-setuptools))
1200 (propagated-inputs
1201 (list python-sphinx
1202 python-zope-interface))
1203 (home-page "https://github.com/repoze/repoze.sphinx.autointerface")
1204 (synopsis "Auto-generate Sphinx API docs from Zope interfaces")
1205 (description "This package defines an extension for the Sphinx documentation
1206system. The extension allows generation of API documentation by
1207introspection of @code{zope.interface} instances in code.")
1208 (license license:repoze)))
1209
1210(define-public python-sphinx-reredirects
1211 (package
1212 (name "python-sphinx-reredirects")
1213 (version "1.1.0")
1214 (source
1215 (origin
1216 (method git-fetch)
1217 (uri (git-reference
1218 (url "https://github.com/documatt/sphinx-reredirects")
1219 (commit (string-append "v" version))))
1220 (file-name (git-file-name name version))
1221 (sha256
1222 (base32 "06nflh7j7q7g1vr5pzj1a98y2mdr394l4khcgr72b2smyf7mvpiz"))))
1223 (build-system pyproject-build-system)
1224 (arguments
1225 (list
1226 ;; Test requires network access
1227 #:test-flags #~(list "-k" "not test_linkcheck")))
1228 (native-inputs (list python-pytest python-sphinx python-flit-core))
1229 (propagated-inputs (list python-linkify-it-py
1230 python-myst-parser
1231 python-sphinx-copybutton
1232 python-sphinx-design
1233 python-sphinx-sitemap
1234 python-sphinxcontrib-mermaid
1235 python-sphinxext-opengraph))
1236 (home-page "https://documatt.com/sphinx-reredirects/")
1237 (synopsis "Extension for sphinx to handle redirects")
1238 (description
1239 "The extension for Sphinx documentation projects that handle redirects for
1240moved pages. It generates HTML pages with meta refresh redirects to the new
1241page location to prevent 404 errors if you rename or move your documents.")
1242 (license license:expat)))
1243
1244(define-public python-sphinx-prompt
1245 (package
1246 (name "python-sphinx-prompt")
1247 (version "1.9.0")
1248 (source
1249 (origin
1250 (method url-fetch)
1251 (uri (pypi-uri "sphinx_prompt" version))
1252 (sha256
1253 (base32 "18cmx6d5582jdaq32vnl1slfkm2zhr0raz8nkc57ikkd8rnkq6s7"))))
1254 (build-system pyproject-build-system)
1255 (arguments (list #:tests? #f)) ;no tests in pypi sdist
1256 (native-inputs (list python-poetry-core))
1257 (propagated-inputs
1258 (list python-certifi
1259 python-docutils
1260 python-idna
1261 python-pygments
1262 python-sphinx
1263 python-urllib3))
1264 (home-page "https://github.com/sbrunner/sphinx-prompt")
1265 (synopsis "Sphinx directive to add unselectable prompt")
1266 (description
1267 "This package provides a Sphinx directive to add unselectable prompt.")
1268 (license license:bsd-3)))
1269
1270(define-public python-sphinx-alabaster-theme
1271 (package
1272 (name "python-sphinx-alabaster-theme")
1273 (version "0.7.16")
1274 (source
1275 (origin
1276 (method url-fetch)
1277 (uri (pypi-uri "alabaster" version))
1278 (sha256
1279 (base32 "0rcdsl333jjwrb8m77nsj8wdn78jg92dvk7qsw6xbnm552fbka3m"))))
1280 (build-system pyproject-build-system)
1281 (arguments
1282 (list #:tests? #f)) ; no tests provided in PyPI or Git
1283 (propagated-inputs
1284 (list python-pygments))
1285 (native-inputs (list python-flit-core))
1286 (home-page "https://alabaster.readthedocs.io/")
1287 (synopsis "Configurable sidebar-enabled Sphinx theme")
1288 (description
1289 "Alabaster is a visually (c)lean, responsive, configurable theme for the
1290Sphinx documentation system. It's the default theme of Sphinx.")
1291 (license license:bsd-3)))
1292
1293(define-public python-sphinx-argparse
1294 (package
1295 (name "python-sphinx-argparse")
1296 (version "0.5.2")
1297 (source
1298 (origin
1299 (method url-fetch)
1300 (uri (pypi-uri "sphinx-argparse" version))
1301 (sha256
1302 (base32 "0cph8iv4whf6r6kc3fzl3sbkbm7qm4lbm604v9pzpdllm27jydg5"))))
1303 (build-system pyproject-build-system)
1304 (propagated-inputs
1305 (list python-docutils python-sphinx))
1306 (native-inputs
1307 (list python-flit-core
1308 python-lxml
1309 python-pytest
1310 python-setuptools
1311 python-typing-extensions))
1312 (home-page "https://github.com/ribozz/sphinx-argparse")
1313 (synopsis "Sphinx extension for documenting argparse commands and options")
1314 (description
1315 "This package is a sphinx extension that automatically documents
1316argparse commands and options")
1317 (license license:expat)))
1318
1319(define-public python-guzzle-sphinx-theme
1320 (package
1321 (name "python-guzzle-sphinx-theme")
1322 (version "0.7.11")
1323 (source
1324 (origin
1325 ;; TODO Unbundle.
1326 (method git-fetch)
1327 (uri (git-reference
1328 (url "https://github.com/guzzle/guzzle_sphinx_theme")
1329 (commit version)))
1330 (file-name (git-file-name name version))
1331 (sha256
1332 (base32 "18mgk1rl1345zf9i7nihfw2mr609ylxcksrklyz6m2xbh19bbrja"))))
1333 (build-system pyproject-build-system)
1334 (arguments (list #:tests? #f)) ; No tests upstream.
1335 (native-inputs (list python-setuptools))
1336 (propagated-inputs (list python-sphinx))
1337 (home-page "https://github.com/guzzle/guzzle_sphinx_theme")
1338 (synopsis "Sphinx theme used by Guzzle")
1339 (description
1340 "This package provides guzzle_sphinx_theme, a theme for the Sphinx
1341documentation system, used by @uref{http://docs.guzzlephp.org, Guzzle} and
1342several other projects.")
1343 (license license:expat)))
1344
1345(define-public python-mpl-sphinx-theme
1346 (package
1347 (name "python-mpl-sphinx-theme")
1348 (version "3.5.0")
1349 (source
1350 (origin
1351 (method git-fetch)
1352 (uri (git-reference
1353 (url "https://github.com/matplotlib/mpl-sphinx-theme")
1354 (commit version)))
1355 (file-name (git-file-name name version))
1356 (sha256
1357 (base32 "0sgax26779sl5fna8lim340j588id820nh2j64rmim17bn5vr19x"))))
1358 (build-system pyproject-build-system)
1359 (arguments (list #:tests? #f)) ; No tests.
1360 (native-inputs (list python-setuptools))
1361 (propagated-inputs (list python-pydata-sphinx-theme))
1362 (home-page "https://github.com/matplotlib/mpl-sphinx-theme")
1363 (synopsis "Matplotlib theme for Sphinx")
1364 (description "This package provides a Matplotlib theme for Sphinx.")
1365 (license license:bsd-3)))
1366
1367(define-public python-myst-parser
1368 (package
1369 (name "python-myst-parser")
1370 (version "5.0.0")
1371 (source
1372 (origin
1373 (method git-fetch)
1374 (uri (git-reference
1375 (url "https://github.com/executablebooks/MyST-Parser")
1376 (commit (string-append "v" version))))
1377 (file-name (git-file-name name version))
1378 (sha256
1379 (base32 "0ijlxls1v0qwn9z1wwfgpqqcjz45sfxha3vvmxdgcmlms66rwlfj"))))
1380 (build-system pyproject-build-system)
1381 (arguments
1382 (list
1383 ;; tests: 138 passed, 2 skipped
1384 #:test-flags
1385 ;; Run pytest for docutils-only tests.
1386 ;; See: <https://github.com/executablebooks/MyST-Parser/pull/1076>,
1387 ;; <https://github.com/executablebooks/MyST-Parser/issues/1030>.
1388 #~(list "tests/test_docutils.py"
1389 "tests/test_renderers/test_fixtures_docutils.py"
1390 "tests/test_renderers/test_include_directive.py"
1391 "tests/test_renderers/test_myst_config.py")))
1392 (native-inputs
1393 (list python-flit-core
1394 python-pytest
1395 python-pytest-param-files))
1396 (propagated-inputs
1397 (list python-docutils
1398 python-jinja2
1399 python-markdown-it-py
1400 python-linkify-it-py
1401 python-mdit-py-plugins
1402 python-pyyaml
1403 python-sphinx))
1404 (home-page "https://myst-parser.readthedocs.io/en/latest/")
1405 (synopsis "Sphinx and Docutils extension to parse MyST")
1406 (description
1407 "This package provides a Sphinx and Docutils extension to parse MyST, a
1408rich and extensible flavour of Markdown for authoring technical and scientific
1409documentation.")
1410 (license license:expat)))
1411
1412(define-public python-sphinx-rtd-theme
1413 (package
1414 (name "python-sphinx-rtd-theme")
1415 (version "3.1.0")
1416 (source
1417 (origin
1418 (method url-fetch)
1419 (uri (pypi-uri "sphinx_rtd_theme" version))
1420 (sha256
1421 (base32 "0k4fnxnwgaqbqsqj6yarg3mszak7lrd9av2gk8ihksbnqbr7chml"))))
1422 (build-system pyproject-build-system)
1423 (native-inputs
1424 (list python-pytest
1425 python-setuptools))
1426 (propagated-inputs
1427 (list python-docutils
1428 python-sphinx
1429 python-sphinxcontrib-jquery))
1430 (home-page "https://github.com/snide/sphinx_rtd_theme/")
1431 (synopsis "ReadTheDocs.org theme for Sphinx")
1432 (description "A theme for Sphinx used by ReadTheDocs.org.")
1433 (license license:expat)))
1434
1435(define-public python-breathe
1436 (package
1437 (name "python-breathe")
1438 (version "4.36.0")
1439 (source (origin
1440 (method git-fetch) ;git repo has tests
1441 (uri (git-reference
1442 (url "https://github.com/breathe-doc/breathe")
1443 (commit (string-append "v" version))))
1444 (file-name (git-file-name name version))
1445 (sha256
1446 (base32
1447 "1jzljqiqyb0jdndakyc69l0as1hhp23ipsbqk4i2giknypqbi8ph"))))
1448 (build-system pyproject-build-system)
1449 (native-inputs
1450 (list python-flit-core
1451 python-pytest))
1452 (propagated-inputs
1453 (list python-docutils
1454 python-sphinx))
1455 (home-page "https://www.breathe-doc.org")
1456 (synopsis "ReStructuredText and Sphinx bridge to Doxygen")
1457 (description "This package is an extension to reStructuredText and Sphinx
1458to be able to read and render the Doxygen xml output.")
1459 (license license:bsd-3)))
1460
1461(define-public python-sphinx-intl
1462 (package
1463 (name "python-sphinx-intl")
1464 (version "2.3.2")
1465 (source
1466 (origin
1467 (method git-fetch)
1468 (uri (git-reference
1469 (url "https://github.com/sphinx-doc/sphinx-intl")
1470 (commit version)))
1471 (file-name (git-file-name name version))
1472 (sha256
1473 (base32 "1hdn7d15kdh9vppa9wwvs6rzi8vb4wmwin57wxx0mhv9dx83w6p5"))))
1474 (build-system pyproject-build-system)
1475 (arguments
1476 (list
1477 #:test-flags
1478 ;; These tests require the transifex_client library.
1479 #~(list "--ignore=tests/test_cmd_transifex.py"
1480 "--ignore=tests/test_transifex.py")))
1481 (native-inputs
1482 (list python-mock
1483 python-pytest
1484 python-setuptools))
1485 (propagated-inputs
1486 (list python-sphinx
1487 python-click))
1488 (home-page "https://github.com/sphinx-doc/sphinx-intl")
1489 (synopsis
1490 "Sphinx utility that makes it easy to translate and to apply translation")
1491 (description
1492 "A utility tool that provides several features that make it easy to
1493translate and to apply translation to Sphinx generated document.")
1494 (license license:bsd-2)))
1495
1496(define-public python-sphinxext-opengraph
1497 (package
1498 (name "python-sphinxext-opengraph")
1499 (version "0.13.0")
1500 (source
1501 (origin
1502 (method git-fetch)
1503 (uri (git-reference
1504 (url "https://github.com/wpilibsuite/sphinxext-opengraph")
1505 (commit (string-append "v" version))))
1506 (file-name (git-file-name name version))
1507 (sha256
1508 (base32 "0bif02izlzbra3mzghxrc5ngl6b3sr9sh7q22s9kydnzc5fpmmdd"))))
1509 (build-system pyproject-build-system)
1510 (native-inputs
1511 (list python-beautifulsoup4
1512 python-flit-core
1513 python-pytest
1514 python-sphinx))
1515 (home-page "https://github.com/wpilibsuite/sphinxext-opengraph")
1516 (synopsis "Sphinx Extension to enable OpenGraph support")
1517 (description
1518 "This package provides a Sphinx Extension to generate OG metadata.")
1519 (license license:bsd-3)))
1520
1521(define-public python-sphinxext-rediraffe
1522 (package
1523 (name "python-sphinxext-rediraffe")
1524 (version "0.2.7")
1525 (source
1526 (origin
1527 (method url-fetch)
1528 (uri (pypi-uri "sphinxext-rediraffe" version))
1529 (sha256
1530 (base32 "0pbjkwmqc8q08bsk66panvpya831ycjq1ysdagyrznpzwpxcn7b5"))))
1531 (build-system pyproject-build-system)
1532 (arguments
1533 (list
1534 #:tests? #f ; No tests.
1535 #:phases
1536 #~(modify-phases %standard-phases
1537 (add-after 'unpack 'patch-version
1538 (lambda _
1539 (substitute* "setup.py"
1540 (("version = \"main\"")
1541 (string-append "version = \"" #$version "\""))))))))
1542 (propagated-inputs (list python-sphinx))
1543 (native-inputs (list python-setuptools))
1544 (home-page "https://github.com/wpilibsuite/sphinxext-rediraffe")
1545 (synopsis
1546 "Sphinx Extension that redirects non-existent pages to working pages")
1547 (description
1548 "This sphinx extension redirects non-existent pages to working
1549pages. Rediraffe can also check that deleted/renamed files in your git repo
1550are redirected.")
1551 (license license:expat)))
1552
1553(define-public python-sphinx-autobuild
1554 (package
1555 (name "python-sphinx-autobuild")
1556 (version "2025.08.25")
1557 (source
1558 (origin
1559 (method git-fetch)
1560 (uri (git-reference
1561 (url "https://github.com/GaretJax/sphinx-autobuild")
1562 (commit version)))
1563 (file-name (git-file-name name version))
1564 (sha256
1565 (base32 "1mnhqjvr9ikr938hgy2jm32p2rqldq4n7s1ba4svbqbnbw5lpy15"))))
1566 (build-system pyproject-build-system)
1567 (propagated-inputs
1568 (list python-colorama
1569 python-sphinx
1570 python-starlette
1571 python-uvicorn
1572 python-watchfiles
1573 python-websockets))
1574 (native-inputs (list python-flit-core python-httpx python-pytest))
1575 (home-page "https://github.com/GaretJax/sphinx-autobuild")
1576 (synopsis "Rebuild Sphinx documentation when a change is detected")
1577 (description
1578 "This package lets you watch a Sphinx directory and rebuild the
1579documentation when a change is detected. It also includes a livereload
1580enabled web server.")
1581 (license license:expat)))
1582
1583(define-public python-sphinx-autodoc-typehints
1584 (package
1585 (name "python-sphinx-autodoc-typehints")
1586 (version "3.5.2")
1587 (source
1588 (origin
1589 (method git-fetch)
1590 (uri (git-reference
1591 (url "https://github.com/tox-dev/sphinx-autodoc-typehints")
1592 (commit version)))
1593 (file-name (git-file-name name version))
1594 (sha256
1595 (base32 "0ab4s7g47dcbyvqwmdwb6q6aha42zwj3zrnwf0221lsh1j5z08bf"))))
1596 (build-system pyproject-build-system)
1597 (arguments
1598 (list
1599 ;; tests: 226 passed, 89 deselected, 15622 warnings
1600 #:test-flags
1601 #~(cons*
1602 ;; This test requires to download an objects.inv file from the Sphinx
1603 ;; website.
1604 "--deselect=tests/test_sphinx_autodoc_typehints.py::test_format_annotation"
1605 ;; Assertions are not equal.
1606 "--deselect=tests/test_sphinx_autodoc_typehints.py::test_always_use_bars_union"
1607 (map (lambda (fixture)
1608 (string-append "--deselect=tests/test_integration.py::test_integration["
1609 fixture "]"))
1610 (list
1611 ;; These tests fail with meaningless string differences,
1612 ;; try running them with [email protected]
1613 "default_conf-TestClassAttributeDocs"
1614 "default_conf-ParamAndAttributeHaveSameName"
1615 "prolog_conf-TestClassAttributeDocs"
1616 "prolog_conf-ParamAndAttributeHaveSameName"
1617 "epilog_conf-TestClassAttributeDocs"
1618 "epilog_conf-ParamAndAttributeHaveSameName"
1619 "bothlog_conf-TestClassAttributeDocs"
1620 "bothlog_conf-ParamAndAttributeHaveSameName"
1621 ;; These tests suggest that function overloading doesn't work
1622 ;; as expected.
1623 "default_conf-func_with_overload"
1624 "prolog_conf-func_with_overload"
1625 "epilog_conf-func_with_overload"
1626 "bothlog_conf-func_with_overload")))))
1627 (native-inputs
1628 (list python-hatch-vcs
1629 python-hatchling
1630 python-pytest
1631 python-setuptools-scm
1632 python-sphobjinv))
1633 (propagated-inputs
1634 (list python-sphinx))
1635 (home-page "https://pypi.org/project/sphinx-autodoc-typehints/")
1636 (synopsis "Type hints for the Sphinx autodoc extension")
1637 (description "This extension allows you to use Python 3 annotations for
1638documenting acceptable argument types and return value types of functions.")
1639 (license license:expat)))
1640
1641(define-public python-sphinx-pytest
1642 (package
1643 (name "python-sphinx-pytest")
1644 (version "0.2.0")
1645 (source (origin
1646 (method url-fetch)
1647 (uri (pypi-uri "sphinx_pytest" version))
1648 (sha256
1649 (base32
1650 "0w16w7zjhb6pxv7py7q13882r58ly4s71l2lyns0wq6qkv1za9iw"))))
1651 (build-system pyproject-build-system)
1652 ;; The 'test_no_transforms' test started failing with Sphinx 9 (see:
1653 ;; <https://github.com/sphinx-extensions2/sphinx-pytest/issues/28>).
1654 (arguments (list #:test-flags #~(list "-k" "not test_no_transforms")))
1655 (native-inputs (list python-flit-core))
1656 (propagated-inputs (list python-pytest python-sphinx))
1657 (home-page "https://github.com/chrisjsewell/sphinx-pytest")
1658 (synopsis "Pytest fixtures for Sphinx extensions")
1659 (description "This Pytest extension mainly provides some Pytest fixtures
1660to simulate converting some source text to Docutils @acronym{AST, Abstract
1661Syntax Tree} at different stages: before transforms, after transforms, etc.")
1662 (license license:expat)))
1663
1664(define-public python-nbsphinx
1665 (package
1666 (name "python-nbsphinx")
1667 (version "0.9.8")
1668 (source
1669 (origin
1670 (method git-fetch)
1671 (uri (git-reference
1672 (url "https://github.com/spatialaudio/nbsphinx")
1673 (commit version)))
1674 (file-name (git-file-name name version))
1675 (sha256
1676 (base32 "13z9mcycc7frg45w8sy2lfgzb51h407d38r1y63p4jyjnpfzic02"))))
1677 (build-system pyproject-build-system)
1678 (arguments
1679 (list #:tests? #f)) ; No tests upstream.
1680 (propagated-inputs
1681 (list python-docutils
1682 python-jinja2
1683 python-nbconvert
1684 python-nbformat
1685 python-sphinx
1686 python-traitlets))
1687 (native-inputs
1688 (list python-setuptools))
1689 (home-page "https://nbsphinx.readthedocs.io/")
1690 (synopsis "Jupyter Notebook Tools for Sphinx")
1691 (description "@code{python-nbsphinx} is a Sphinx extension that
1692provides a source parser for @code{*.ipynb} files. Custom Sphinx
1693directives are used to show Jupyter Notebook code cells (and of course
1694their results) in both HTML and LaTeX output. Un-evaluated notebooks
1695- i.e. notebooks without stored output cells - will be automatically
1696executed during the Sphinx build process.")
1697 (license license:expat)))
1698
1699(define-public python-sphobjinv
1700 (package
1701 (name "python-sphobjinv")
1702 (version "2.3.1.3")
1703 (source
1704 (origin
1705 (method git-fetch)
1706 (uri (git-reference
1707 (url "https://github.com/bskinn/sphobjinv")
1708 (commit (string-append "v" version))))
1709 (file-name (git-file-name name version))
1710 (sha256
1711 (base32 "0cgnxadwjijpqyragbz0ibinhpbaw8l56az4a3i1m2x9hh589jbi"))
1712 (patches (search-patches "python-sphobjinv-defer-ssl-import.patch"))))
1713 (build-system pyproject-build-system)
1714 (native-inputs
1715 (list python-dictdiffer
1716 python-pytest
1717 python-pytest-check
1718 python-pytest-retry
1719 python-setuptools
1720 python-sphinx
1721 python-stdio-mgr))
1722 (propagated-inputs
1723 (list python-attrs python-certifi python-jsonschema))
1724 (home-page "https://github.com/bskinn/sphobjinv")
1725 (synopsis "Sphinx cross-reference tool")
1726 (description "Sphinx objects.inv inspection/manipulation tool.")
1727 (license license:expat)))
1728
1729(define-public python-jupyter-sphinx
1730 (package
1731 (name "python-jupyter-sphinx")
1732 (version "0.5.3")
1733 (source
1734 (origin
1735 ;; Pypi tarball doesn't contain tests.
1736 (method git-fetch)
1737 (uri (git-reference
1738 (url "https://github.com/jupyter/jupyter-sphinx")
1739 (commit (string-append "v" version))))
1740 (file-name (git-file-name name version))
1741 (sha256
1742 (base32
1743 "1l8skhjir7j9jr4xdmwzj5lk5w31jn21ydpcxvgr6adgnrdbgy53"))))
1744 (build-system pyproject-build-system)
1745 (arguments
1746 (list
1747 #:test-flags
1748 #~(list "-W" "ignore::DeprecationWarning")
1749 #:phases
1750 #~(modify-phases %standard-phases
1751 (add-after 'unpack 'ignore-warnings
1752 (lambda _
1753 (substitute* "pyproject.toml"
1754 (("\"error\",") ""))))
1755 (add-after 'unpack 'fix-tests
1756 ;; See: <https://github.com/jupyter/jupyter-sphinx/issues/280>
1757 ;; Tests are rewritten after 0.5.3, so undo when refreshing.
1758 (lambda _
1759 (substitute* "tests/test_execute.py"
1760 (("python\\.tex") "projectnamenotset.tex"))))
1761 (add-before 'check 'set-home
1762 (lambda _
1763 ;; UserWarning: IPython parent '/homeless-shelter' is not
1764 ;; a writable location, using a temp directory.
1765 (setenv "HOME" "/tmp"))))))
1766 (propagated-inputs
1767 (list python-ipython
1768 python-ipywidgets
1769 python-nbconvert
1770 python-nbformat))
1771 (native-inputs
1772 (list python-bash-kernel ;for tests
1773 python-hatchling
1774 python-ipykernel
1775 python-pytest
1776 python-sphinx))
1777 (home-page "https://github.com/jupyter/jupyter-sphinx/")
1778 (synopsis "Jupyter Sphinx Extensions")
1779 (description
1780 "Jupyter-sphinx is a Sphinx extension that executes embedded code in a
1781Jupyter kernel, and embeds outputs of that code in the document. It has
1782support for rich output such as images, LaTeX math and even JavaScript
1783widgets, and supports thebelab for live code execution with minimal effort.")
1784 (license license:bsd-3)))
1785
1786(define-public python-sphinxcontrib-autoprogram
1787 (package
1788 (name "python-sphinxcontrib-autoprogram")
1789 (version "0.1.9")
1790 (source
1791 (origin
1792 (method git-fetch)
1793 (uri (git-reference
1794 (url "https://github.com/sphinx-contrib/autoprogram")
1795 (commit version)))
1796 (file-name (git-file-name name version))
1797 (sha256
1798 (base32 "1nyc5qk01z7kp48iablz059kxvkpm6m5q9wrnj9v3zsphpx3lxgj"))))
1799 (build-system pyproject-build-system)
1800 (arguments (list #:tests? #f)) ; No tests despite tox.ini.
1801 (native-inputs (list python-setuptools))
1802 (propagated-inputs (list python-six python-sphinx))
1803 (home-page "https://github.com/sphinx-contrib/autoprogram")
1804 (synopsis "Documenting CLI programs")
1805 (description
1806 "This Sphinx extension, @code{sphinxcontrib.autoprogram}, provides an
1807automated way to document command-line programs. It scans
1808@code{argparse.ArgumentParser} object, and then expands it into a set of
1809@code{.. program::} and @code{.. option::} directives.")
1810 (license license:bsd-2)))
1811
1812(define-public python-sphinx-theme-builder
1813 (package
1814 (name "python-sphinx-theme-builder")
1815 (version "0.3.2")
1816 (source
1817 (origin
1818 (method git-fetch)
1819 (uri (git-reference
1820 (url "https://github.com/pradyunsg/sphinx-theme-builder")
1821 (commit version)))
1822 (file-name (git-file-name name version))
1823 (sha256
1824 (base32 "100v659ngafxr4lsylac5m2ci7qkjd7h5lg4p7nq8pkj6x2fxql2"))))
1825 (build-system pyproject-build-system)
1826 (native-inputs (list python-flit-core python-pytest))
1827 (propagated-inputs
1828 (list python-pypa-build
1829 python-click
1830 python-diagnostic
1831 python-nodeenv
1832 python-packaging
1833 python-pyproject-metadata
1834 python-rich
1835 python-sphinx-autobuild
1836 python-tomli))
1837 (home-page "https://github.com/pradyunsg/sphinx-theme-builder")
1838 (synopsis "Tool for authoring Sphinx themes")
1839 (description "This package provides a tool for authoring Sphinx themes
1840with a simple (opinionated) workflow.")
1841 (license license:expat)))
1842
1843(define-public python-sphinx-sitemap
1844 (package
1845 (name "python-sphinx-sitemap")
1846 ;; 2.7.0 requires sphinx-git-last-updated-by-git
1847 (version "2.6.0")
1848 (source
1849 (origin
1850 (method git-fetch)
1851 (uri (git-reference
1852 (url "https://github.com/jdillard/sphinx-sitemap")
1853 (commit (string-append "v" version))))
1854 (file-name (git-file-name name version))
1855 (sha256
1856 (base32 "03zaxgm50nf7q6mns89fw7hw209r1cp5sh7i8f70vfhmygxmli24"))))
1857 (build-system pyproject-build-system)
1858 (arguments (list #:tests? #f)) ;No tests despite tox.ini.
1859 (native-inputs (list python-setuptools))
1860 (propagated-inputs (list python-sphinx))
1861 (home-page "https://github.com/jdillard/sphinx-sitemap")
1862 (synopsis "Sitemap generator for Sphinx")
1863 (description
1864 "A Sphinx extension to generate multiversion and multilanguage
1865sitemaps.org compliant sitemaps for the HTML version of your Sphinx
1866documentation.")
1867 (license license:expat)))
1868
1869(define-public python-pydata-sphinx-theme
1870 (package
1871 (name "python-pydata-sphinx-theme")
1872 ;; TODO: This is not the latest release, but the 0.8.x series introduced a
1873 ;; new Sphinx theme build system that complicate things (see:
1874 ;; https://github.com/pydata/pydata-sphinx-theme/issues/628 and
1875 ;; https://src.fedoraproject.org/rpms/python-pydata-sphinx-theme
1876 ;; /blob/rawhide/f/prepare_vendor.sh).
1877 (version "0.7.2")
1878 (source
1879 (origin
1880 (method url-fetch)
1881 (uri (pypi-uri "pydata-sphinx-theme" version))
1882 (sha256
1883 (base32
1884 "0ph69bnnw9w8vksc7rk45q5yknsrsgk9a19xsbxym46jrmgz67b7"))))
1885 (build-system pyproject-build-system)
1886 (arguments
1887 (list
1888 #:test-flags
1889 ;; Fails due to inscrutable differences in the generated HTML
1890 '(list "-k" "not test_logo")))
1891 (propagated-inputs
1892 (list python-beautifulsoup4
1893 python-docutils-0.19
1894 python-jinja2
1895 python-sphinx-6))
1896 (native-inputs
1897 (list python-pytest python-pytest-regressions
1898 python-setuptools python-wheel))
1899 (home-page "https://github.com/pydata/pydata-sphinx-theme")
1900 (synopsis "Bootstrap-based Sphinx theme")
1901 (description
1902 "This package provides a Bootstrap-based Sphinx theme from the PyData
1903community.")
1904 (license license:bsd-3)))
1905
1906(define-public python-sphinx-autoapi
1907 (package
1908 (name "python-sphinx-autoapi")
1909 (version "3.6.1")
1910 (source
1911 (origin
1912 (method git-fetch)
1913 (uri (git-reference
1914 (url "https://github.com/readthedocs/sphinx-autoapi")
1915 (commit (string-append "v" version))))
1916 (file-name (git-file-name name version))
1917 (sha256
1918 (base32 "194qvzzlzdwb8vwv95adjzb81d2n1wi4q8d00m0vbqg5njzfp9vm"))))
1919 (build-system pyproject-build-system)
1920 (arguments
1921 (list
1922 ;; tests: 318 passed, 1 skipped, 1 deselected
1923 ;; Deselect test that requires internet connection.
1924 #:test-flags
1925 #~(list"-k" "not TestPipeUnionModule")))
1926 (native-inputs
1927 (list nss-certs-for-test
1928 python-beautifulsoup4
1929 python-flit-core
1930 python-pytest))
1931 (propagated-inputs
1932 (list python-astroid
1933 python-jinja2
1934 python-pyyaml
1935 python-sphinx))
1936 (home-page "https://github.com/readthedocs/sphinx-autoapi")
1937 (synopsis "Sphinx API documentation generator")
1938 (description
1939 "Sphinx AutoAPI is a Sphinx extension for generating complete
1940API documentation without needing to load, run, or import the project being
1941documented. In contrast to the traditional Sphinx @code{autodoc}, which
1942requires manual authoring and uses code imports, AutoAPI finds and generates
1943documentation by parsing source code.")
1944 (license license:expat)))