dev-python/docutils: Sync with Gentoo

It's from Gentoo commit 13dd8db9617ea3013e152d1be0438117b5357dd9.
This commit is contained in:
Flatcar Buildbot 2024-04-22 07:11:50 +00:00 committed by Krzesimir Nowak
parent 963e45ce24
commit a51bff0b06
3 changed files with 129 additions and 0 deletions

View File

@ -1,2 +1,3 @@
DIST docutils-0.19.tar.gz 2056383 BLAKE2B 9983a905642de4e81ca118578671b503ddfda4bef1afcc0524de40543e1f9617fd8d768ef467da49d2f01076683400bad6a0fe15f6b5a3a1e202c42b2e34ab1b SHA512 fb904a899f2b6f3c07c5079577bd7c52a3182cb85f6a4149391e523498df15bfa317f0c04095b890beeb3f89c2b444875a2a609d880ac4d7fbc3125e46b37ea5
DIST docutils-0.20.1.tar.gz 2058365 BLAKE2B 73fb8302599ffe57b0840c898b0b2e3ccd39ff9ea6eec2b5d345d02c950e1a8357bd821e62733b0484e82bc30e71d30fab381390b0edaef4375b02bcd9eeeb40 SHA512 a0ddca315d03677003036d6a8052ac96fbd3fcc4508564938ea684d79bedb4d322d83449c7b26e55b19b0aadd6e46ca9ac409bb16279a20f06c70e9c15ef5eb0
DIST docutils-0.21.1.tar.gz 2201080 BLAKE2B a89792a69a7faa0eda7b2470e5e3a3d3cf8250a3577553a8f8f8d3d86d2693394e97dca6c75c1b4815748d2ce126ccd3f71dead5763ec8b70aee7be183165473 SHA512 2816fe074b12d7f15fb6730339f3af5f459f50af0cd2a4922194887f48bfd9931c2f2054a17a5418585b586502b96e05ed18600d31c523084537dc72707ab0ee

View File

@ -0,0 +1,86 @@
# 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 )
inherit distutils-r1 optfeature pypi
DESCRIPTION="Python Documentation Utilities (reference reStructuredText impl.)"
HOMEPAGE="
https://docutils.sourceforge.io/
https://pypi.org/project/docutils/
"
# GPL-3+ only for emacs/rst.el
LICENSE="BSD BSD-2 GPL-3+ PSF-2.4 public-domain"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
RDEPEND="
dev-python/pillow[${PYTHON_USEDEP}]
dev-python/pygments[${PYTHON_USEDEP}]
"
BDEPEND="
${RDEPEND}
"
PATCHES=(
# minimal backport of upstream r9637, r9641
"${FILESDIR}/${P}-test.patch"
)
python_compile_all() {
# Generate html docs from reStructured text sources.
# Place html4css1.css in base directory to ensure that the generated reference to it is correct.
cp docutils/writers/html4css1/html4css1.css . || die
cd tools || die
"${EPYTHON}" buildhtml.py --input-encoding=utf-8 --no-datestamp \
--stylesheet-path=../html4css1.css, --traceback ../docs || die
}
src_test() {
cd test || die
mkdir functional/output || die
distutils-r1_src_test
}
python_test() {
"${EPYTHON}" alltests.py -v || die "Testing failed with ${EPYTHON}"
}
python_install() {
distutils-r1_python_install
# Install tools.
python_doscript tools/buildhtml.py
}
install_txt_doc() {
local doc="${1}"
local dir="txt/$(dirname ${doc})"
docinto "${dir}"
dodoc "${doc}"
}
python_install_all() {
local DOCS=( *.txt )
local HTML_DOCS=( docs tools docutils/writers/html4css1/html4css1.css )
distutils-r1_python_install_all
local doc
while IFS= read -r -d '' doc; do
install_txt_doc "${doc}"
done < <(find docs tools -name '*.txt' -print0)
}
pkg_postinst() {
optfeature \
"auto-detecting the image dimensions when using the 'scale' option" \
dev-python/pillow
}

View File

@ -0,0 +1,42 @@
diff --git a/test/test_writers/test_html5_polyglot_parts.py b/test/test_writers/test_html5_polyglot_parts.py
index fb2792ee7..cb03fea2f 100644
--- a/test/test_writers/test_html5_polyglot_parts.py
+++ b/test/test_writers/test_html5_polyglot_parts.py
@@ -24,11 +24,20 @@ if __name__ == '__main__':
import docutils
import docutils.core
+from docutils.parsers.rst.directives.images import PIL
from docutils.utils.code_analyzer import with_pygments
ROOT_PREFIX = (Path(__file__).parent.parent/'functional'/'input').as_posix()
DATA_ROOT = os.path.abspath(os.path.join(__file__, '..', '..', 'data'))
+with_pygments = False
+PIL_NOT_FOUND_PATH = 'dummy.png'
+try:
+ if PIL and (tuple(int(i) for i in PIL.__version__.split('.')) >= (10, 3)):
+ PIL_NOT_FOUND_PATH = Path('dummy.png').resolve()
+except:
+ PIL = None
+
class Html5WriterPublishPartsTestCase(unittest.TestCase):
"""Test case for HTML writer via the publish_parts interface."""
@@ -642,14 +651,14 @@ totest['system_messages'] = ({'stylesheet_path': '',
.. image:: dummy.mp4
:scale: 100%
""",
-{'fragment': """\
+{'fragment': f"""\
<img alt="dummy.png" src="dummy.png" />
<aside class="system-message">
<p class="system-message-title">System Message: WARNING/2 \
(<span class="docutils literal">&lt;string&gt;</span>, line 1)</p>
<p>Cannot scale image!
Could not get size from &quot;dummy.png&quot;:
- [Errno 2] No such file or directory: 'dummy.png'</p>
+ [Errno 2] No such file or directory: '{PIL_NOT_FOUND_PATH}'</p>
</aside>
<aside class="system-message">
<p class="system-message-title">System Message: ERROR/3 \