summaryrefslogtreecommitdiff
path: root/dev-python/sphinx/sphinx-7.3.7-r1.ebuild
blob: 4151e90e6efce5e3d9b3a622363c337b066f9632 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

DISTUTILS_USE_PEP517=flit
PYTHON_COMPAT=( python3_{10..12} pypy3 )
PYTHON_REQ_USE="threads(+)"

inherit distutils-r1

DESCRIPTION="Python documentation generator"
HOMEPAGE="
	https://www.sphinx-doc.org/
	https://github.com/sphinx-doc/sphinx/
	https://pypi.org/project/Sphinx/
"
SRC_URI="
	https://github.com/sphinx-doc/sphinx/archive/v${PV}.tar.gz
		-> ${P}.gh.tar.gz
"

LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="doc latex"

RDEPEND="
	>=dev-python/alabaster-0.7.14[${PYTHON_USEDEP}]
	>=dev-python/Babel-2.9[${PYTHON_USEDEP}]
	<dev-python/docutils-0.22[${PYTHON_USEDEP}]
	>=dev-python/docutils-0.18.1[${PYTHON_USEDEP}]
	>=dev-python/imagesize-1.3[${PYTHON_USEDEP}]
	>=dev-python/jinja-3.0[${PYTHON_USEDEP}]
	>=dev-python/pygments-2.14[${PYTHON_USEDEP}]
	>=dev-python/requests-2.25.0[${PYTHON_USEDEP}]
	>=dev-python/snowballstemmer-2.0[${PYTHON_USEDEP}]
	dev-python/sphinxcontrib-applehelp[${PYTHON_USEDEP}]
	dev-python/sphinxcontrib-devhelp[${PYTHON_USEDEP}]
	dev-python/sphinxcontrib-jsmath[${PYTHON_USEDEP}]
	>=dev-python/sphinxcontrib-htmlhelp-2.0.0[${PYTHON_USEDEP}]
	>=dev-python/sphinxcontrib-serializinghtml-1.1.9[${PYTHON_USEDEP}]
	dev-python/sphinxcontrib-qthelp[${PYTHON_USEDEP}]
	>=dev-python/packaging-21.0[${PYTHON_USEDEP}]
	$(python_gen_cond_dep '
		>=dev-python/tomli-2[${PYTHON_USEDEP}]
	' 3.10)
	latex? (
		dev-texlive/texlive-latexextra
		dev-texlive/texlive-luatex
		app-text/dvipng
	)
	!dev-python/namespace-sphinxcontrib
"
# added temporarily because of unconditional import in sphinx.testing.util
# until we figure out how to deal with it better
RDEPEND+="
	dev-python/defusedxml[${PYTHON_USEDEP}]
"
BDEPEND="
	doc? (
		dev-python/sphinxcontrib-websupport[${PYTHON_USEDEP}]
		media-gfx/graphviz
	)
	test? (
		app-text/dvipng
		>=dev-python/cython-3.0.0[${PYTHON_USEDEP}]
		>=dev-python/defusedxml-0.7.1[${PYTHON_USEDEP}]
		>=dev-python/setuptools-67.0[${PYTHON_USEDEP}]
		dev-texlive/texlive-fontsextra
		dev-texlive/texlive-latexextra
		dev-texlive/texlive-luatex
		virtual/imagemagick-tools[jpeg,png,svg]
	)
"

PATCHES=(
	"${FILESDIR}/sphinx-3.2.1-doc-link.patch"
	"${FILESDIR}/sphinx-4.3.2-doc-link.patch"
)

distutils_enable_tests pytest

python_prepare_all() {
	# disable internet access
	sed -i -e 's:^intersphinx_mapping:disabled_&:' \
		doc/conf.py || die

	distutils-r1_python_prepare_all
}

python_compile_all() {
	# we can't use distutils_enable_sphinx because it would
	# introduce a dep on itself
	use doc && build_sphinx doc
}

python_test() {
	mkdir -p "${BUILD_DIR}/sphinx_tempdir" || die
	local -x SPHINX_TEST_TEMPDIR="${BUILD_DIR}/sphinx_tempdir"

	local EPYTEST_DESELECT=()
	case ${EPYTHON} in
		pypy3)
			EPYTEST_DESELECT+=(
				tests/test_extensions/test_ext_autodoc.py::test_autodoc_exception
				tests/test_extensions/test_ext_autodoc.py::test_autodoc_ignore_module_all
				tests/test_extensions/test_ext_autodoc.py::test_autodoc_inherited_members_None
				tests/test_extensions/test_ext_autodoc.py::test_autodoc_subclass_of_builtin_class
				tests/test_extensions/test_ext_autodoc.py::test_automethod_for_builtin
				tests/test_extensions/test_ext_autodoc.py::test_cython
				tests/test_extensions/test_ext_autodoc.py::test_format_signature
				tests/test_extensions/test_ext_autodoc.py::test_partialfunction
				tests/test_extensions/test_ext_autodoc_autoclass.py::test_autodoc_process_bases
				tests/test_extensions/test_ext_autodoc_autoclass.py::test_show_inheritance_for_decendants_of_generic_type
				tests/test_extensions/test_ext_autodoc_autoclass.py::test_show_inheritance_for_subclass_of_generic_type
				tests/test_extensions/test_ext_autodoc_autofunction.py::test_builtin_function
				tests/test_extensions/test_ext_autodoc_autofunction.py::test_methoddescriptor
				tests/test_extensions/test_ext_autodoc_automodule.py::test_automodule_inherited_members
				tests/test_extensions/test_ext_autodoc_preserve_defaults.py::test_preserve_defaults_special_constructs
				tests/test_extensions/test_ext_autosummary.py::test_autosummary_generate_content_for_module
				tests/test_extensions/test_ext_autosummary.py::test_autosummary_generate_content_for_module_skipped
				tests/test_util/test_util_inspect.py::test_isattributedescriptor
				tests/test_util/test_util_inspect.py::test_signature
				tests/test_util/test_util_typing.py::test_is_invalid_builtin_class
			)
			;;
	esac

	# note: pytest-xdist causes random test failures
	local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
	epytest
}